digitalmars.D - Output absolute symbols in DMD
- Jacob Carlborg (22/22) May 30 2013 I'm doing some modifications t...
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
May 30 2013