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 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. Ian