ports/178377: Regression: numerous build failures creating shlibs with clang

Matthew Seaman m.seaman at infracaninophile.co.uk
Mon May 6 21:00:02 UTC 2013


>Number:         178377
>Category:       ports
>Synopsis:       Regression: numerous build failures creating shlibs with clang
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 06 21:00:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Matthew Seaman
>Release:        FreeBSD 9.1-STABLE amd64
>Organization:
>Environment:
System: FreeBSD lucid-nonsense.infracaninophile.co.uk 9.1-STABLE FreeBSD 9.1-STABLE #24 r250290: Mon May 6 14:45:00 BST 2013 root at lucid-nonsense.infracaninophile.co.uk:/usr/obj/usr/src/sys/LUCID-NONSENSE amd64

I'm getting a large number of build failures in my poudriere setup due
to a common problem.  These 31 ports have all failed in a similar way:

====>> Failed ports: security/cracklib:build x11/libXdmcp:build science/hdf5-18:build devel/libdaemon:build graphics/lcms2:build x11-fonts/libfontenc:build net/openldap24-client:build devel/libffi:build devel/libpciaccess:build graphics/ilmbase:build x11/libICE:build math/gmp:build audio/alsa-lib:build graphics/jbig2dec:build x11/pixman:build devel/pth:build databases/sqlite3:build devel/oniguruma4:build security/libntlm:build textproc/expat2:build archivers/lzo2:build archivers/libzip:build devel/libltdl:build print/libpaper:build devel/libsigsegv:build graphics/jpeg:build x11/libXau:build devel/cppunit:build devel/atf:build converters/libiconv:build security/libmcrypt:build

All of them show essentially the same error in the build logs: this is
from security/libmcrypt:

libtool: link: clang -shared   .libs/3-way.o     -O2 -march=native   -Wl,-soname -Wl,threeway.so -o .libs/threeway.so
/usr/bin/ld: .libs/3-way.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
.libs/3-way.o: could not read symbols: Bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)
*** [threeway.la] Error code 1


It's always when trying to create a shared library.  Only occurs when
using clang as the compiler (well, ccache calling clang).  Also seems
to need either cmake or libtool involved to trigger the effect.

These ports all used to build just fine.  I can't say precisely when
this regression was introduced: some time after the end of the ports
freeze and about a week ago.  Switching to gcc as a compiler avoids
the problem.

	
>Description:
	
>How-To-Repeat:

Just the system version of clang:

lucid-nonsense:...bulk/stable9amd64/default:# clang -v 
FreeBSD clang version 3.2 (tags/RELEASE_32/final 170710) 20121221
Target: x86_64-unknown-freebsd9.1
Thread model: posix

Interesting settings from make.conf:

CPUTYPE?=       native
WITH_CCACHE_BUILD=      yes

#
# Clang!
#
.if !defined(NOCLANG)
.if !defined(CC) || ${CC} == "cc"
CC=clang
.endif
.if !defined(CXX) || ${CXX} == "c++"
CXX=clang++
.endif
.if !defined(CPP) || ${CPP} == "cpp"
CPP=clang-cpp
.endif
# Don't die on warnings
NO_WERROR=
WERROR=
# Don't forget this when using Jails!
NO_FSCHG=
.endif

>Fix:

	


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-ports-bugs mailing list