On Wed, Jan 02, 2013 at 08:57:04AM -0800, Ian Lance Taylor wrote: > On Wed, Jan 2, 2013 at 1:16 AM, horseriver <horserivers@xxxxxxxxx> wrote: > > > > I am compiling 2.6.0 kernel with gcc 4.4.5 and link with ld 2.20 version. > > > > when linking .so , output this error : > > > > /usr/bin/ld: arch/i386/kernel/vsyscall-int80.so: Not enough room for program headers, try linking with -N > > > > does gcc generate the program headers ? why not enough room for it ? > > > > I guess it is because gcc version is not compitable with ld version > > > > is there some advice ? > > GCC does not generate the program headers. The linker does. This is > unlikely to be an issue of compatibility between GCC and ld. In fact > this probably has nothing to do with GCC at all. It is more likely to > be an issue of compatibility between the kernel's linker script and > the version of ld that you are using. I am using debian linux of 2.6.32 version , and I am compiling 2.6.0 kernel on its environment. > > I don't know why this fails for you, but since GNU binutils 2.23 has > been released, I would recommend trying that. Alternatively, since > 2.6.0 is relatively old, trying using an older version of the GNU > binutils. I have installed old biutils of 2.12 version . when linking , ld tell me this error : /usr/local/bin/ld: unrecognized option '--build-id' this option seem to be set by gcc . how can I do for this ? thanks! > > Ian