[Buildroot] [PATCH] binutils: add patch to fix AArch64 glibc build issue
Peter Korsgaard
jacmet at uclibc.org
Fri May 16 08:05:37 UTC 2014
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni at free-electrons.com> writes:
> The autobuilders are not able to build glibc on AArch64 since we moved
> to the internal toolchain backend as the default for AArch64. The
> reason is that the cross-ld segfaults while linking of the glibc
> utilities. Unfortunately, the issue has so far been impossible to
> reproduce outside of the autobuilder CI loop itself: even on the same
> machine, in the same chroot, the issue does not appear.
> Today, Will Newton helped me analyze a bit further the problem. In the
> logs of the build machine, we have found that the following segfault
> notification matched the dates of the autobuilder failures:
> /var/log/syslog:May 15 10:39:20 sd-56966 kernel: [767023.832598] ld[6846]: segfault at 1b2c002 ip 00000000004caf80 sp 00007fffaa308df8 error 4 in ld[400000+1b9000]
> /var/log/syslog.2.gz:May 13 07:58:24 sd-56966 kernel: [585094.434264] ld[17761]: segfault at 154b002 ip 00000000004caf80 sp 00007fff0d400168 error 4 in ld[400000+1b9000]
> /var/log/syslog.3.gz:May 12 20:24:08 sd-56966 kernel: [543558.227915] ld[14841]: segfault at 2706002 ip 00000000004caf80 sp 00007fffc08d41c8 error 4 in ld[400000+1b9000]
> /var/log/syslog.4.gz:May 11 19:51:59 sd-56966 kernel: [455484.523033] ld[50162]: segfault at 1f00002 ip 00000000004caf80 sp 00007fff14a02328 error 4 in ld[400000+1b9000]
> /var/log/syslog.4.gz:May 12 05:13:37 sd-56966 kernel: [489085.120089] ld[32067]: segfault at 2430002 ip 00000000004caf80 sp 00007fffc448db48 error 4 in ld[400000+1b9000]
> /var/log/syslog.6.gz:May 9 15:20:38 sd-56966 kernel: [266948.197141] ld[13483]: segfault at ff0002 ip 00000000004caf80 sp 00007fff7e4fe948 error 4 in ld[400000+1b9000]
> /var/log/syslog.7.gz:May 8 16:45:08 sd-56966 kernel: [185853.688607] ld[1757]: segfault at 20b1002 ip 00000000004caf80 sp 00007fffd07d5ae8 error 4 in ld[400000+1b9000]
> See
> http://autobuild.buildroot.org/?reason=glibc-2.18-svnr23787&arch=aarch64
> for the autobuilder results.
> So, the segfault always happens while accessing an address 2 bytes
> after the beginning of a page: it looks like a buffer overflow, which
> gets triggered because the object is placed towards the end of the
> previous page, and crosses over the next, unallocated page.
> Moreover, we looked at the 0x4caf80 address in an AArch64 cross-ld
> built by Buildroot, and it turns out that it is part of the
> iterative_hash() function. This nicely correlates with the patch that
> Will Newton had pointed in
> http://lists.busybox.net/pipermail/buildroot/2014-May/095881.html as a
> fix for invalid memory accesses reported by Valgrind in the AArch64
> cross-ld, specifically around the same area of 'ld'.
> Therefore, even though we have not been able to reproduce the issue
> outside of the autobuilders, and cannot confirm that the patch is
> fixing the issue, I propose to integrate this binutils patch into
> Buildroot. It is anyway an upstream binutils patch, which fixes a real
> problem.
Thanks for the investigations, both - Committed, thanks.
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list