[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: hidden symbol `__canonicalize_funcptr_for_compare' in



On Tue, Aug 17, 2010 at 4:55 PM, John David Anglin
<dave@hiauly1.hia.nrc.ca> wrote:
>> make[4]: Entering directory `/build/buildd-atlas_3.8.3-21-hppa-fWTDBW/atlas-3.8.3/build/atlas-base/lib'
>> ld  -shared -soname libblas.so.3gf -o atlas/libblas.so.3gf.0 \
>>        --whole-archive atlas/libblas.a \
>>            --no-whole-archive -L/usr/lib/gcc/hppa-linux-gnu/4.4.3/ -lgfortran -lgcc_s -lpthread -lm -lc
>
> I believe that the above command is the problem.  It needs -lgcc after
> -lgcc_s on hppa.  This will resolve __canonicalize_funcptr_for_compare,
> various millicode routines and __sync builtins.
>
> This would happen automatically if gcc/g++ was used to link the library
> instead of ld.

Linking with `ld` is the number one cause of these types of problems.
Users should not link with the linker directly, there is no need in
this day and age, you can pass -Wl,--whole-archive down the linker
from the compiler driver.

Cheers,
Carlos.


Reply to: