www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - 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
May 30 2013