clang and static linking?

Steve Kargl sgk at troutmask.apl.washington.edu
Thu Nov 8 23:25:03 UTC 2012


Upgraded my amd64 system, yesterday.  Needed to rebuild one
of my projects, and hit

/usr/local/openmpi-1.6.3/bin/mpif90 -static -O2 -pipe -march=native -mtune=native -funroll-loops -ftree-vectorize -Wall -rpath /usr/local/lib/gcc46 -I/home/kargl/modules -o sasmp sasmp.f90 -L/home/kargl/lib -L. -L/usr/local/lib -L. -loa -lm90 -llapack -lblas
//usr/lib/libc.a(isnan.o): In function `isnanf':
/usr/src/lib/libc/gen/isnan.c:(.text+0x40): multiple definition of `__isnanf'
//usr/lib/libm.a(s_isnan.o):/usr/src/lib/msun/src/s_isnan.c:(.text+0x0):
first defined here
collect2: ld returned 1 exit status
*** [sasmp] Error code 1

Stop in /usr/home/kargl/trunk/oa.

Can't rebuild gcc46 due to clang issue.
Rebuilding openmpi does not help as openmpi uses gfortran46.
Maybe there's a library problem.

Error   clang        base/gcc
yes    libc,libm
yes    libm          libc
no     libc          libm
no                   libc,libm

libm.a compiled with clang
% nm /usr/lib/libm.a | grep isnan
                 U __isnanl
                 U __isnanf
                 U __isnanl
                 U isnan
                 U __isnanf
                 U isnan
                 U isnanf
s_isnan.o:
0000000000000000 T __isnanf
0000000000000030 T __isnanl
0000000000000000 W isnanf
                 U isnan

libm.a compiled with /usr/lib/gcc
troutmask:fvwm:kargl[232] nm /usr/lib/libm.a | grep isnan
                 U __isnanl
                 U __isnanf
                 U __isnanl
                 U __isnanf
s_isnan.o:
0000000000000000 T __isnanf
0000000000000030 T __isnanl
0000000000000000 W isnanf

-- 
Steve


More information about the freebsd-current mailing list