May 30, 2013 Output absolute symbols in DMD | ||||
|---|---|---|---|---|
| ||||
I'm doing some modifications to DMD where some symbols need to match what Clang outputs. I'm trying to figure out how to output absolute and lazy symbols. Running "nm -m" on the object file compiled with Clang results in this:
00000000 (absolute) external [no dead strip] .objc_class_name_Foo
(undefined [lazy bound]) external [no dead strip] .objc_class_name_NSObject
Foo is defined in the object file and NSObject is externally defined. I had a look at the LLVM source code how these symbols are outputted. LLVM uses file scope inline assembly for these symbols. The assembly Clang generates look like this:
.section __TEXT,__text,regular,pure_instructions
## Start of file scope inline assembly
.objc_class_name_Foo=0
.globl .objc_class_name_Foo
.lazy_reference .objc_class_name_NSObject
.lazy_reference .objc_class_name_Foo
## End of file scope inline assembly
The above code is the top of the assembly file.
Does anyone know how to generate the same symbols in DMD?
--
/Jacob Carlborg
| ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply