LC_SEGMENT command 0 filesize field greater than vmsize field

Michel Fortin michel.fortin at michelf.com
Fri Nov 12 05:41:41 PST 2010


On 2010-11-12 04:08:56 -0500, Jacob Carlborg <doob at me.com> said:

> Now this really starts to annoy me. I don't know if it's a bug in Mac 
> OS X or in DMD but I'm getting this error when building some libraries 
> (Tango, for example):
> 
> /usr/bin/ranlib: object: libtango.a(tango-coreBitArray-release.o) 
> malformed object (LC_SEGMENT command 0 filesize field greater than 
> vmsize field)
> ar: internal ranlib command failed

I've seen something similar too with some transitory test cases while 
playing with DMD to generate Objective-C data structures. I'd tend to 
believe there's a bug in the backend. I didn't know this bug could be 
trigged by compiling code with regular DMD, it could have been 
something I trigged playing with the compiler to make it generate extra 
Objectve-C segments/sections.

If you want to inspect the object file, I suggest you extract 
tango-coreBitArray-release.o from the libtango.a archive and play with 
otool, objdump, dumpobj, and perhaps obj2asm. The first two are 
provided with Apple's developer tools so they and tend to better 
reflect the linker in their understanding of the object file format; 
the later two come with DMD and better reflect Walter's implementation.


-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/



More information about the Digitalmars-d mailing list