|
From: | Yevgeniy Litvinenko |
Subject: | binutils-2.18 build error |
Date: | Sun, 30 Dec 2007 13:07:23 +0600 |
Hello.
When I try to build binutils-2.18 (when run "make") on Solaris 10 i386 I get an error.
(i386-gnu-solaris2.10)
I am using:
VMware Player 2.0.1 build-55017
$ uname -a
SunOS solaris 5.10 Generic_120012-14 i86pc i386 i86pc Solaris
$ ld --version
GNU ld version 2.17
Copyright 2005 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
$ gcc --version
gcc (GCC) 4.2.2
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Below the error:
...
make[4]: Entering directory `/home/unix/build/ld'
/usr/bin/ksh ./libtool --tag=CC --mode=link gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -g -O2 -o ld-new ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o sha1.o eelf_i386_ldso.o eelf_i386.o eelf_x86_64.o ../bfd/libbfd.la ../libiberty/libiberty.a ./../intl/libintl.a /usr/local/lib/libiconv.so -R/usr/local/lib
libtool: link: gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -g -O2 -o .libs/ld-new ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o sha1.o eelf_i386_ldso.o eelf_i386.o eelf_x86_64.o /usr/local/lib/libiconv.so ../bfd/.libs/libbfd.so ../libiberty/libiberty.a ./../intl/libintl.a -R/usr/local/lib
/usr/local/lib/gcc/i686-gnu-solaris2.10/4.2.2/../../../../i686-gnu-solaris2.10/bin/ld:ldscripts/elf_i386.xc:77: syntax error
collect2: ld returned 1 exit status
make[4]: *** [ld-new] Error 1
make[4]: Leaving directory `/home/unix/build/ld'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/unix/build/ld'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/unix/build/ld'
make[1]: *** [all-ld] Error 2
make[1]: Leaving directory `/home/unix/build'
make: *** [all] Error 2
...
Line 77 in file elf_i386.xc is:
. = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
The similar line in binutils-2.17 is
. = ALIGN (0x1000) - ((0x1000 - .) & (0x1000 - 1)); . = DATA_SEGMENT_ALIGN (0x1000, 0x1000);
As I found out the linker (GNU ld version 2.17) don't like CONSTANT and MAXPAGESIZE words.
I tried to compile binutils-2.18 using SunOS 5.10 native linker (/usr/ccs/bin/ld which is bundled
in the package SUNWbtool VERSION: 11.10.0,REV=2005.01.21.16.34)
but I got the same error.
P.S.In attachment the file elf_i386.xc
Best regards.
elf_i386.xc
Description: Binary data
[Prev in Thread] | Current Thread | [Next in Thread] |