gcc-clang issue

Koop Mast kwm at rainbow-runner.nl
Mon Jun 20 23:41:06 UTC 2011


On 6/21/2011 0:31 , Matthias Andree wrote:
> I'v commited this half an hour ago:
>
>> mandree     2011-06-20 22:02:53 UTC
>>
>>    FreeBSD ports repository
>>
>>    Modified files:
>>      sysutils/e2fsprogs   Makefile
>>    Log:
>>    [1] USE_GCC=4.2+, to avoid clang. Port needs -lgcc and -lgcc_s 
>> explicitly.
>>    [...]
>
> [1] is actually (a) a quick excuse and (b) based on the assumption 
> that USE_GCC will override a clang default ports compiler.
>
> I HAVE tried clang, and got a particular kind of linker errors, namely 
> that unrelated .o files redefine the same unrelated symbols - and a 
> crc32.o file redefining libext2fs symbols is curious, to put it mildly.
>
> I currently suspect that there are "inline" handling differences 
> between clang and gcc, combined with definitions ("implementations") 
> in .h files, and possibly either different linker behaviour with 
> clang, or actually different symbols.
>
Hey, could you try this patch? I try the USE_CSTD=gnu89 trick if I get 
symbol troubles when linking. This is because clang defaults to gnu99 
while gcc still defaults to gnu89. From what I remember the inline 
keyword has different meanings between the two, or how you use it 
atleast. Someone explained it to my last year but I can't remember all 
the gory details about it.

http://people.freebsd.org/~kwm/e2fsprogs-clang.diff

> Has anyone seen similar issues (duplicate symbol errors) after 
> switching to clang?
>
> Haven't had time to check things in detail, and thought I'd commit 
> USE_GCC right away to unwedge the build for future -exp runs.
>



More information about the freebsd-ports mailing list