This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: binutils 2.19.92 linker broke with --as-needed flag
- From: Vincent Wen <wenvincent90 at gmail dot com>
- To: Alan Modra <amodra at gmail dot com>, binutils at sourceware dot org
- Date: Tue, 9 Apr 2013 10:07:30 -0700
- Subject: Re: binutils 2.19.92 linker broke with --as-needed flag
- References: <5154E517 dot 4000409 at gmail dot com> <CALehDX77XzF6hGxT82y+Ofe+ypwG64uZmrfj+e4ZZm-nSEhgOA at mail dot gmail dot com> <CAF_=-cAo_+bni4N++ynNcYQ5RKkMBg1i7aNcXZ-aCJPVb3ub8Q at mail dot gmail dot com> <CALehDX5F_WXmKS9K+EipTw5uGkM37cOc2K+Zqxpe8XwBtzaTxg at mail dot gmail dot com> <CAF_=-cDsPpAs8=D3dH1ho1NRDJ+W5VVhug8HU1fJmusDq_aNAQ at mail dot gmail dot com> <CAF_=-cDJDPPzhh7TF2-rcro=PnL1iBkMv8jvV1BU7EO7En5zbg at mail dot gmail dot com> <20130402232743 dot GA23282 at bubble dot grove dot modra dot org> <CAF_=-cC7M0jhvSnsHA7xrPPedbWefQC0B9STpvQATP7nqZJg1g at mail dot gmail dot com> <20130403022010 dot GA27605 at bubble dot grove dot modra dot org> <CAF_=-cAYSgTU67tySGebDntQi1uMyANiuHGs0nWDHOC=GfPtOw at mail dot gmail dot com> <20130405003501 dot GA3208 at bubble dot grove dot modra dot org> <CAF_=-cB_uw9e++UmHwr+XSisgTAKRuAskvTuW0ZvGDd_z=6vkQ at mail dot gmail dot com>
Thank you Alan. It works.
Now I run the "make check" and it works.
But after I apply the patch to set the STV_HIDDEN to the
__GOT_OFFSET_TABLE__, the "make check" fails with 25 unexpected
errors.
I need to make some change to the patch.
Running /home/zwen/workshop/tc/binutils-2.23/ld/testsuite/ld-mips-elf/export-class.exp
...
Running /home/zwen/workshop/tc/binutils-2.23/ld/testsuite/ld-mips-elf/mips-elf-flags.exp
...
Running /home/zwen/workshop/tc/binutils-2.23/ld/testsuite/ld-mips-elf/mips-elf.exp
...
FAIL: MIPS16 PIC test 2
FAIL: MIPS JALX test 2
FAIL: MIPS rel32 o32
FAIL: MIPS rel32 n32
FAIL: MIPS rel64 n64
FAIL: PIC and non-PIC test 3 (shared library)
FAIL: PIC and non-PIC test 3 (executable)
FAIL: PIC and non-PIC test 4 (executable)
FAIL: PIC and non-PIC test 5 (executable)
FAIL: PIC and non-PIC test 6 (o32 executable)
FAIL: PIC and non-PIC test 6 (n32 executable)
FAIL: PIC and non-PIC test 6 (n64 executable)
FAIL: MIPS eh-frame 5
FAIL: Stub for dynsym 0x7fff
FAIL: Stub for dynsym 0x8000
FAIL: Stub for dynsym 0xfff0
FAIL: Stub for dynsym 0x10000
FAIL: Stub for dynsym 0x2fe80
FAIL: Shared library with TLS
FAIL: Dynamic executable with TLS
FAIL: Shared library with multiple GOTs and TLS
FAIL: Shared library with TLS and versioning
FAIL: Dynamic executable with TLS and versioning
FAIL: Dynamic executable with TLS and versioning (order 2)
FAIL: Dynamic executable with TLS and versioning (order 3)
Running /home/zwen/workshop/tc/binutils-2.23/ld/testsuite/ld-misc/defsym.exp ...
On 4/8/13, Vincent Wen <wenvincent90@gmail.com> wrote:
> Alan,
>
> I tested again the cross build for mipsel-linux-uclibc on the
> binutils-2.23 and binutils-2.22 and confirmed that the binutils-2.23
> "make" fails and the binutils-2.22 succeeds.
>
> Something is broken between binutils-2.22 and binutils-2.23.
>
> Thanks.
>
>
> The binutil-2.22.tar.gz succeed with "make" and "make check", with
> only one unexpected failing test.
>
> The binutil-2.23.tar.gz fails at "make". The configuration is
>
> [zwen@localhost binutils-2.23]$ configure --target=mipsel-linux-uclibc
>
> [zwen@localhost binutils-2.23]$ make
> ...
> libtool: compile: gcc -DHAVE_CONFIG_H -I. -I. -I. -I../bfd
> -I./../include -I./../bfd -W -Wall -Wstrict-prototypes
> -Wmissing-prototypes -Werror -g -O2 -MT disassemble.lo -MD -MP -MF
> .deps/disassemble.Tpo -c -DARCH_mips ./disassemble.c -o disassemble.o
> mv -f .deps/disassemble.Tpo .deps/disassemble.Plo
> /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
> -I. -I. -I../bfd -I./../include -I./../bfd -W -Wall
> -Wstrict-prototypes -Wmissing-prototypes -Werror -g -O2 -MT
> dis-init.lo -MD -MP -MF .deps/dis-init.Tpo -c -o dis-init.lo
> dis-init.c
> libtool: compile: gcc -DHAVE_CONFIG_H -I. -I. -I. -I../bfd
> -I./../include -I./../bfd -W -Wall -Wstrict-prototypes
> -Wmissing-prototypes -Werror -g -O2 -MT dis-init.lo -MD -MP -MF
> .deps/dis-init.Tpo -c dis-init.c -o dis-init.o
> mv -f .deps/dis-init.Tpo .deps/dis-init.Plo
> /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
> -I. -I. -I../bfd -I./../include -I./../bfd -W -Wall
> -Wstrict-prototypes -Wmissing-prototypes -Werror -g -O2 -MT
> mips-dis.lo -MD -MP -MF .deps/mips-dis.Tpo -c -o mips-dis.lo
> mips-dis.c
> libtool: compile: gcc -DHAVE_CONFIG_H -I. -I. -I. -I../bfd
> -I./../include -I./../bfd -W -Wall -Wstrict-prototypes
> -Wmissing-prototypes -Werror -g -O2 -MT mips-dis.lo -MD -MP -MF
> .deps/mips-dis.Tpo -c mips-dis.c -o mips-dis.o
> mips-dis.c: In function `print_insn_args':
> mips-dis.c:1251: warning: comparison between signed and unsigned
> make[4]: *** [mips-dis.lo] Error 1
> make[4]: Leaving directory `/home/zwen/workshop/tc/binutils-2.23/opcodes'
> Making all in po
> make[4]: Entering directory
> `/home/zwen/workshop/tc/binutils-2.23/opcodes/po'
> make[4]: Nothing to be done for `all'.
> make[4]: Leaving directory
> `/home/zwen/workshop/tc/binutils-2.23/opcodes/po'
> make[3]: *** [all-recursive] Error 1
> make[3]: Leaving directory `/home/zwen/workshop/tc/binutils-2.23/opcodes'
> make[2]: *** [all] Error 2
> make[2]: Leaving directory `/home/zwen/workshop/tc/binutils-2.23/opcodes'
> make[1]: *** [all-opcodes] Error 2
> make[1]: Leaving directory `/home/zwen/workshop/tc/binutils-2.23'
> make: *** [all] Error 2
> [zwen@localhost binutils-2.23]$
>
>
>
> On 4/4/13, Alan Modra <amodra@gmail.com> wrote:
>> On Thu, Apr 04, 2013 at 11:40:28AM -0700, Vincent Wen wrote:
>>> configure:4085: gcc -m64 conftest.c >&5
>>> conftest.c:1: sorry, unimplemented: 64-bit mode not compiled in
>>
>> I would have thought that someone who can figure out a fix for a
>> long-standing MIPS binutils bug could easily install 64-bit gcc and
>> development libraries!
>>
>> --
>> Alan Modra
>> Australia Development Lab, IBM
>>
>