[distcc] handle gas .incbin like .include?

Alexandre Oliva oliva at lsd.ic.unicamp.br
Wed Dec 15 07:07:19 GMT 2004


I ran into a problem building a recent kernel the other day, because
the kernel uses incbin, when available, to include the contents of a
dynamic library (vsyscall) into a section of an object file, as a
binary blob.  distcc happily preprocesses vsyscall.S and ships it for
distccd to assemble, where the distccd-started gas won't be able to
perform the incbin, unless you're lucky to have its cwd in the kernel
build tree.

I don't quite remember what the decision was regarding handling
include (!= #include) directives in assembly sources, but I suggest
that the same behavior be applied to incbin.  If we don't do anything
about include directives, I guess we're already there :-)

I thought I'd share my misfortune with you.  It was quite a pain to
track it down because it only happened when building the smp kernel
(the non-smp kernel for x86_64 built fine; I was ``lucky´´).  At first
I thought it had something to do with the presence of -m64 in $CC,
breaking the ia32 vsyscall libs, but taking it out made no difference.
Only after a few retries (each one taking a few hours, because I had
other builds going on) did I realize what the problem was.

-- 
Alexandre Oliva             http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}


More information about the distcc mailing list