[Bug 175605] devel/binutils: please fix build binutils-2.23.1 in raspberry pi

Andreas Tobler andreast-list at fgznet.ch
Sat Jul 12 20:01:10 UTC 2014


On 12.07.14 21:43, Anton Shterenlikht wrote:
>>> --- Comment #6 from mexas at bris.ac.uk ---
>>> Forgot to say that this was with Andreas Tobler's patchset.
>>> Also, it segfaults with the OS default ld too:
>>>
>>> $ cat z.c
>>> #include <stdio.h>
>>> int main(int argc, char **argv)
>>> {
>>>           printf("mumu\n");
>>>           return 0;
>>> }
>>> $ cc -c z.c -Wall
>>> $ /usr/local/bin/ld -o z /usr/lib/crt1.o /usr/lib/crti.o z.o -lc
>>> $ ldd z
>>> z:
>>>           libc.so.7 => /lib/libc.so.7 (0x2003c000)
>>> $ file z
>>> z: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses
>>> shared libs), for FreBSD 10.0 (1000710), not stripped
>>> $ ./z
>>> Segmentation fault (core dumped)
>>> $ /usr/bin/ld -o z /usr/lib/crt1.o /usr/lib/crti.o z.o -lc
>>> $ ldd z
>>> z:
>>>           libc.so.7 => /lib/libc.so.7 (0x2003c000)
>>> $ file z
>>> z: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses
>>> shared libs), for FreBSD 10.0 (1000710), not stripped
>>> $ ./z
>>> Segmentation fault (core dumped)
>>> $
>>>
>> Why are you using this strange invocation of the linker?  If I run
>> "cc -v -o z z.c", here is how it invokes ld:
>>
>>   "/usr/bin/ld" --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1
>> --hash-style=both --enable-new-dtags -o z /usr/lib/crt1.o
>> /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib /tmp/z-9530c3.o -lgcc
>> --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s
>> --no-as-needed /usr/lib/crtend.o /usr/lib/crtn.o
>>
>> The resulting program runs without difficulty.          -- George
>
> well, I copied my invocation from:
> http://people.freebsd.org/~rene/patches/binutils-rpi-bug.txt
>
> but you are right. I have now did just the same
> using /usr/local/bin/ld, and the executable worked.
>
> So probably Andreas Tobler's patchset should
> be committed?
>
> I'm building lang/gcc right now, will see how it goes.

You can save the time for gcc. Nothing else than the system gcc works.
I do some work on gcc-4.10 and it is hairy.
I can bootstrap gcc-4.10 but I have some issues with tls which blocks me 
to come out with my patch set. The overall view is good. I even have C++ 
exceptions working with EABI.

Also, the binutils patch set is not satisfying for me. I do not have 
feedback for arm*b nor for arm* < FreeBSD 10.0.

And last but not least, my time slot is shrinking, summer holidays ;)

Anton, thanks for your testing and feedback.

Andreas





More information about the freebsd-arm mailing list