compiling with clang33 on Pi - ld EABI issue

Stephen Woolerton direct727 at gmail.com
Wed Jul 23 00:50:53 UTC 2014


Hi everyone,

Two days later and I got llvm33 and clang33 compiled on my Raspberry Pi - the little engine that can.

I'm getting an error when I try to compile ports with clang33. And checking the config.log file, we see...
configure:3208: clang33 -O -pipe   conftest.c  >&5
/usr/bin/ld: ERROR: Source object /tmp/conftest-G27WNZ.o has EABI version 0, but target a.out has EABI version 5
 
/etc/make.conf is as follows:-
CC=clang33
CXX=clang++33
CPP=clang-cpp33

Can anyone advise how to work around the EABI issue referenced above...

Thank you
Stephen

-----------------
Here is more information...
# uname -a
FreeBSD raspberry-pi 10.0-STABLE FreeBSD 10.0-STABLE #0 r268038: Tue Jul  1 04:29:43 UTC 2014     root at grind.freebsd.org:/usr/obj/arm.armv6/usr/src/sys/RPI-B  arm

# clang33 -v
clang version 3.3 (tags/RELEASE_33/final)
Target: armv6-portbld-freebsd10.0
Thread model: posix


[root at raspberry-pi /usr/ports/devel/gmake]# make
===>  Configuring for gmake-3.82_1
===>   FreeBSD 10 autotools fix applied to /usr/ports/devel/gmake/work/make-3.82/config/config.rpath
===>   FreeBSD 10 autotools fix applied to /usr/ports/devel/gmake/work/make-3.82/configure
===>   FreeBSD 10 autotools fix applied to /usr/ports/devel/gmake/work/make-3.82/acinclude.m4
===>   FreeBSD 10 autotools fix applied to /usr/ports/devel/gmake/work/make-3.82/aclocal.m4
configure: loading site script /usr/ports/Templates/config.site
checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... (cached) /bin/mkdir -p
checking for gawk... (cached) /usr/bin/awk
checking whether make sets $(MAKE)... yes
checking for gcc... clang33
checking whether the C compiler works... no
configure: error: in `/usr/ports/devel/gmake/work/make-3.82':
configure: error: C compiler cannot create executables
See `config.log' for more details.
===>  Script "configure" failed unexpectedly.
Please report the problem to autotools at FreeBSD.org [maintainer] and attach
the "/usr/ports/devel/gmake/work/make-3.82/config.log" including the output
of the failure of your make command. Also, it might be a good idea to provide
an overview of all packages installed on your system (e.g. a
/usr/local/sbin/pkg-static info -g -Ea).
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/devel/gmake
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/gmake




-------------------------------------
# cat /usr/ports/devel/gmake/work/make-3.82/config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by GNU make configure 3.82, which was
generated by GNU Autoconf 2.65.  Invocation command line was

  $ ./configure --program-prefix=g --disable-nls --prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/ --build=armv6-portbld-freebsd10.0

## --------- ##
## Platform. ##
## --------- ##

hostname = raspberry-pi
uname -m = arm
uname -r = 10.0-STABLE
uname -s = FreeBSD
uname -v = FreeBSD 10.0-STABLE #0 r268038: Tue Jul  1 04:29:43 UTC 2014     root at grind.freebsd.org:/usr/obj/arm.armv6/usr/src/sys/RPI-B 

/usr/bin/uname -p = armv6
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /sbin
PATH: /bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /usr/games
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /root/bin

...
...
...
| 
configure:2378: checking for a BSD-compatible install
configure:2446: result: /usr/bin/install -c -o root -g wheel
configure:2457: checking whether build environment is sane
configure:2507: result: yes
configure:2648: checking for a thread-safe mkdir -p
configure:2687: result: /bin/mkdir -p
configure:2700: checking for gawk
configure:2727: result: /usr/bin/awk
configure:2738: checking whether make sets $(MAKE)
configure:2760: result: yes
configure:2890: checking for gcc
configure:2917: result: clang33
configure:3146: checking for C compiler version
configure:3155: clang33 --version >&5
clang version 3.3 (tags/RELEASE_33/final)
Target: armv6-portbld-freebsd10.0
Thread model: posix
configure:3166: $? = 0
configure:3155: clang33 -v >&5
clang version 3.3 (tags/RELEASE_33/final)
Target: armv6-portbld-freebsd10.0
Thread model: posix
configure:3166: $? = 0
configure:3155: clang33 -V >&5
clang: error: argument to '-V' is missing (expected 1 value)
clang: error: no input files
configure:3166: $? = 1
configure:3155: clang33 -qversion >&5
clang: error: no input files
configure:3166: $? = 1
configure:3186: checking whether the C compiler works
configure:3208: clang33 -O -pipe   conftest.c  >&5
/usr/bin/ld: ERROR: Source object /tmp/conftest-G27WNZ.o has EABI version 0, but target a.out has EABI version 5
/usr/bin/ld: failed to merge target specific data of file /tmp/conftest-G27WNZ.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure:3212: $? = 1
configure:3250: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU make"
| #define PACKAGE_TARNAME "make"
| #define PACKAGE_VERSION "3.82"
| #define PACKAGE_STRING "GNU make 3.82"
| #define PACKAGE_BUGREPORT "bug-make at gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/make/"
| #define PACKAGE "make"
| #define VERSION "3.82"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:3255: error: in `/usr/ports/devel/gmake/work/make-3.82':
configure:3259: error: C compiler cannot create executables
See `config.log' for more details.
...
...
ac_cv_member_HEADER_ad=yes
ac_cv_member_struct___res_state_retrans=yes
ac_cv_member_struct_sigaction_sa_sigaction=yes
ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
ac_cv_member_struct_stat_st_blksize=yes
ac_cv_path_BZIP2=/usr/bin/bzip2
ac_cv_path_EGREP=/usr/bin/egrep
ac_cv_path_FGREP=/usr/bin/fgrep
ac_cv_path_GREP=/usr/bin/grep
ac_cv_path_GZIP=/usr/bin/gzip
ac_cv_path_MKTEMP_COMMAND=/usr/bin/mktemp
ac_cv_path_SED=/usr/bin/sed
ac_cv_path_install=/usr/bin/install
ac_cv_path_mkdir=/bin/mkdir
ac_cv_prog_AWK=/usr/bin/awk
ac_cv_prog_SED=/usr/bin/sed
ac_cv_prog_ac_ct_CC=clang33
...
...

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /usr/ports/devel/gmake/work/make-3.82/config/missing --run aclocal-1.11'
ALLOCA=''
AMDEPBACKSLASH=''
AMDEP_FALSE=''
AMDEP_TRUE=''
AMTAR='${SHELL} /usr/ports/devel/gmake/work/make-3.82/config/missing --run tar'
AR=''
AUTOCONF='${SHELL} /usr/ports/devel/gmake/work/make-3.82/config/missing --run autoconf'
AUTOHEADER='${SHELL} /usr/ports/devel/gmake/work/make-3.82/config/missing --run autoheader'
AUTOMAKE='${SHELL} /usr/ports/devel/gmake/work/make-3.82/config/missing --run automake-1.11'
AWK='/usr/bin/awk'
CC='clang33'
CCDEPMODE=''
CFLAGS='-O -pipe'
CPP='clang-cpp33'
CPPFLAGS=''
CYGPATH_W='echo'
DEFS=''
DEPDIR=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
EXEEXT=''
GETLOADAVG_LIBS=''
GLOBINC=''
GLOBLIB=''
GMSGFMT=''
GREP=''
INSTALL_DATA='install  -o root -g wheel -m 444'
INSTALL_PROGRAM='install  -s -o root -g wheel -m 555'
INSTALL_SCRIPT='install  -o root -g wheel -m 555'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
INTLLIBS=''
KMEM_GROUP=''
LDFLAGS=''
LIBICONV=''
LIBINTL=''
LIBOBJS=''
LIBS=''
LTLIBICONV=''
LTLIBINTL=''
LTLIBOBJS=''
MAKEINFO='makeinfo --no-split'
MAKE_HOST=''
MKDIR_P='/bin/mkdir -p'
MKINSTALLDIRS=''
MSGFMT=''
MSGMERGE=''
NEED_SETGID=''
OBJEXT=''
PACKAGE='make'
PACKAGE_BUGREPORT='bug-make at gnu.org'
PACKAGE_NAME='GNU make'
PACKAGE_STRING='GNU make 3.82'
PACKAGE_TARNAME='make'
PACKAGE_URL='http://www.gnu.org/software/make/'
PACKAGE_VERSION='3.82'
PATH_SEPARATOR=':'
PERL=''
POSUB=''
RANLIB=''
REMOTE=''
SET_MAKE=''
SHELL='/bin/sh'
STRIP=''
USE_CUSTOMS_FALSE=''
USE_CUSTOMS_TRUE=''
USE_LOCAL_GLOB_FALSE=''
USE_LOCAL_GLOB_TRUE=''
USE_NLS=''
VERSION='3.82'
WINDOWSENV_FALSE=''
WINDOWSENV_TRUE=''
XGETTEXT=''
ac_ct_CC='clang33'
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE=''
am__fastdepCC_FALSE=''
am__fastdepCC_TRUE=''
am__include=''
am__isrc=''
am__leading_dot='.'
am__quote=''
am__tar='${AMTAR} chof - "$$tardir"'
am__untar='${AMTAR} xf -'
bindir='${exec_prefix}/bin'
build='armv6-portbld-freebsd10.0'
build_alias='armv6-portbld-freebsd10.0'
build_cpu=''
build_os=''
build_vendor=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host=''
host_alias=''
host_cpu=''
host_os=''
host_vendor=''
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='/usr/local/info'
install_sh='${SHELL} /usr/ports/devel/gmake/work/make-3.82/config/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='/usr/local/man'
mkdir_p='/bin/mkdir -p'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr/local'
program_transform_name='s&^&g&'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

## ------------------- ##
## File substitutions. ##
## ------------------- ##

MAINT_MAKEFILE=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "GNU make"
#define PACKAGE_TARNAME "make"
#define PACKAGE_VERSION "3.82"
#define PACKAGE_STRING "GNU make 3.82"
#define PACKAGE_BUGREPORT "bug-make at gnu.org"
#define PACKAGE_URL "http://www.gnu.org/software/make/"
#define PACKAGE "make"
#define VERSION "3.82"

configure: exit 77


More information about the freebsd-arm mailing list