Re: Compiling BETA2 with clang fails

From: Volodymyr Kostyrko <c.kworr_at_gmail.com>
Date: Sat, 03 Sep 2011 23:58:08 +0300
03.09.2011 23:43, Dimitry Andric написав(ла):
> On 2011-09-03 22:22, Volodymyr Kostyrko wrote:
>> Hi all.
>>
>> ===> libexec/bootpd (all)
> ...
>> /usr/local/libexec/ccache/world/clang -O2 -pipe -Qunused-arguments -fPIC
>> -march=native -DETC_ETHERS -DSYSLOG -DDEBUG -DVEND_CMU -std=gnu99
>> -fstack-protector -Wsystem-headers -Wall -Wno-format-y2k
>> -Wno-uninitialized -Wno-pointer-sign -Wformat=2 -Wno-format-extra-args
>> -o bootpd bootpd.o dovend.o readfile.o hash.o dumptab.o lookup.o getif.o
>> hwaddr.o report.o tzone.o rtmsg.o
>> /usr/obj/usr/src/tmp/usr/lib/crt1.o: In function `_start1':
>> /usr/src/lib/csu/i386-elf/crt1_c.c:(.text+0x94): undefined reference to
>> `atexit'
>> /usr/src/lib/csu/i386-elf/crt1_c.c:(.text+0x9d): undefined reference to
>> `_init_tls'
>> /usr/src/lib/csu/i386-elf/crt1_c.c:(.text+0xad): undefined reference to
>> `atexit'
>> /usr/src/lib/csu/i386-elf/crt1_c.c:(.text+0xd6): undefined reference to
>> `exit'
>> bootpd.o: In function `main':
>> /var/db/ccache/tmp/bootpd.tmp.limbo.lan.76586.i:(.text+0x31): undefined
>> reference to `strrchr'
>> /var/db/ccache/tmp/bootpd.tmp.limbo.lan.76586.i:(.text+0xa2): undefined
>> reference to `malloc'
>> /var/db/ccache/tmp/bootpd.tmp.limbo.lan.76586.i:(.text+0xe0): undefined
>> reference to `exit'
>> /var/db/ccache/tmp/bootpd.tmp.limbo.lan.76586.i:(.text+0x12a): undefined
>> reference to `__error'
>> /var/db/ccache/tmp/bootpd.tmp.limbo.lan.76586.i:(.text+0x150): undefined
>> reference to `getsockname'
>> /var/db/ccache/tmp/bootpd.tmp.limbo.lan.76586.i:(.text+0x1c7): undefined
>> reference to `gethostname'
>> bootpd.o: In function `.LBB0_31':
>> /var/db/ccache/tmp/bootpd.tmp.limbo.lan.76586.i:(.text+0x385): undefined
>> reference to `sscanf'
>> bootpd.o: In function `.LBB0_42':
>> /var/db/ccache/tmp/bootpd.tmp.limbo.lan.76586.i:(.text+0x44d): undefined
>> reference to `sscanf'
>> bootpd.o: In function `.LBB0_55':
>>
>> There may be some problems integrating clang into Makefiles, because if
>> I cd to /usr/src/libexec/bootpd and run make there everything works fine.
>
> Please post your make.conf/src.conf, and any other environmental
> settings which may influence the build. For starters, does it still
> fail if you remove ccache and the non-standard CFLAGS?

Yes it does. It's still not the clean tree so I'll try to retest without 
ccache.

I don't think ccache is really involved because as I said before when I 
issue the same command from /usr/obj/usr/src/libexec/bootpd it succeeds.

/etc/make.conf follows:

CPUTYPE?=native
INSTALL:=install -C

WITHOUT_NOUVEAU:=yes

KERNCONF?=MINIMAL #GENERIC

NO_CLEAN:=yes

.if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*))
. if !defined(NOCCACHE)
   # GCC 4.2
   #CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1}
   #CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1}
   # clang
   CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/clang,1}
   CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/clang++,1}
   CPP:=${CXX:C,^cpp,/usr/local/libexec/ccache/world/clang -E,1}
   # clang without ccache
   #CC:=${CC:C,^cc,clang,1}
   #CXX:=${CXX:C,^c\+\+,clang++,1}
   #CPP:=${CXX:C,^cpp,clang -E,1}
   # Don't die on warnings
   NO_WERROR=
   WERROR=
   # Don't forget this when using Jails!
   NO_FSCHG=
. endif
.else
. if (empty(.CURDIR:M*/java/openjdk6*) && 
empty(.CURDIR:M*/java/openjdk7*) && empty(.CURDIR:M*-kmod*) && 
empty(.CURDIR:M*/java/jdk16*))
   #CFLAGS+= -mfpmath=sse,387
   #COPTFLAGS+= -mfpmath=sse,387
. endif
.endif

WRKDIRPREFIX=/tmp/ports
DISABLE_MAKE_JOBS=true

.if ${CC:T} == "clang"
   CFLAGS+= -Qunused-arguments -fPIC
.endif

-- 
Sphinx of black quartz judge my vow.
Received on Sat Sep 03 2011 - 18:58:15 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:17 UTC