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.


_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to