Re: Building FreeBSD 9.0-CUR/amd64 with CLANG fails

From: O. Hartmann <ohartman_at_mail.zedat.fu-berlin.de>
Date: Wed, 04 May 2011 09:12:18 +0200
On 05/04/11 09:00, Dimitry Andric wrote:
> On 2011-05-03 20:53, O. Hartmann wrote:
> ...
>>>> ld -m elf_i386_fbsd -Y P,/usr/obj/usr/src/lib32/usr/lib32 �-o
>>>> gcrt1.o -r
>>>> crt1_s.o gcrt1_c.o
>>>> ld: Relocatable linking with relocations from format
>>>> elf64-x86-64-freebsd
>>>> (crt1_s.o) to format elf32-i386-freebsd (gcrt1.o) is not supported
> ...
>> Today, I tried again, after CLANG/LLVM has been updated to version 3.0.
>> Same error.
>>
>> This is the addendum I made to the /etc/make.conf:
>>
>> ##
>> ## CLANG
>> ##
>> .if defined(USE_CLANG)
>> .if !defined(CC) || ${CC} == "cc"
>> CC=clang
>> .endif
>> .if !defined(CXX) || ${CXX} == "c++"
>> CXX=clang++
>> .endif
>> # Don't die on warnings
>> NO_WERROR=
>> WERROR=
>> # Don't forget this when using Jails!
>> NO_FSCHG=
>> .endif
>
> Ok, that looks good, I use a similar construction. However, in my case
> it works fine, so there must be something special on your system that
> breaks the build.
>
> What happens here, is that the 32-bit stage on amd64 fails, because it
> tries to link together 64-bit and 32-bit object files, which is not
> allowed. This can occur if Makefile.inc1 cannot set CC to the correct
> value, but there might also be something else going on.
>
> To debug this further, can you please post:
> - Your full /etc/make.conf
> - Your full /etc/src.conf
> - Any modifications you made to your source tree
> - The specific procedure you use for buildworld
> - An url to a full build log (don't post it to the list, because it will
> be rather large)
>


When commenting out the wrapping
.if defined(USE_CLANG)
.endif
construct, as suffested by Olivier, it works. I gues I found my mistake: 
 From an earlier attempt of building FreeBSD with clang, I placed the 
WIKI suggestions into /etc/src.conf and I never recalled this. I delete 
it and try again ...
On my lab's box, same OS, same revision, nearly same hardware, building 
world/kernel worked fine even with the 'switch' - but there wasn't 
/etc/src.conf.

Thanks for the hints. I'll report again.

Regards,
Oliver
Received on Wed May 04 2011 - 05:12:20 UTC

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