The patch and a link to the bug report that generated it is here: https://dev.openwrt.org/browser/trunk/toolchain/binutils/patches/2.22/500-arm_ld_assert_fix.patch?rev=35812
On Sat, May 25, 2013 at 10:57 AM, Bruce Tulloch <pas...@causal.com> wrote: > Next step in my ARM cross compilation journey...this error... > > It's produced by arm-linux.ld which I've built from binutils upstream > source (2.23.1) and am using for cross compiling using FPC 2.7.1. > > It occurs when building a large project so I've not identified what may > be triggering it yet. The relevant part of the ld source is: > > if (may_need_local_target_p > && elf32_arm_get_plt_info (abfd, eh, r_symndx, &root_plt, &arm_plt)) > { > /* If PLT refcount book-keeping is wrong and too low, we'll > see a zero value (going to -1) for the root PLT reference > count. */ > if (root_plt->refcount >= 0) > { > BFD_ASSERT (root_plt->refcount != 0); > root_plt->refcount -= 1; > } > > which says the procedure linkage table reference count is already > zero when it should not be. > > An apparently relevant discussion about it is here: > > http://sourceware.org/ml/binutils/2012-04/msg00228.html > > according to which, this assert arises in arm-linux-gnueabi when: > > - There's a reference (call-reloc) to a symbol undefined at first > reference, preliminary requiring a PLT. > > - The symbols' definition is found in the linked objects and is > hidden (or forced local). > > - The referencing section (containing the call-reloc) is GC'd > (its global symbols are forced local by the version script and > found to be unused). > > Then, the gc_sweep function tries to balance the books by -= 1 > on the now-GC'd-away PLT (with refcount set to -1 from the > already forced-local symbol) which is guarded by a "BFD_ASSERT > (root_plt->refcount > 0)". So the assert strikes. > > I will try to isolate what part of my build triggers this but I thought > I'd post details in case anyone more familiar with GNU linking on > ARM can suggest anything. > > Bruce. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel