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:17:23 +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)
>


Sorry for the noise.
But when I tried to compile essential ports (essential to me), like 
x11-wm/windowmaker, mulitmedia/ffmpeg, for instance, I run into serious 
compiler/assembler error with LLVM/CLANG. I guess the ports- tree isn't 
mature for clang. So am I right in this thinking: leaving /etc/make.conf 
untouched in terms of not putting there the CLANG build construct and 
putting this instead into /etc/src.conf will only affect the OS' source 
tree to be build by clang and all ports are build by the antique 
system's gcc 4.2.1?

Oliver
Received on Wed May 04 2011 - 05:17:24 UTC

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