Stephen Montgomery-Smith wrote:
b. f. wrote:
On Sun 27 Feb 2011 at 12:24:06 PST Stephen Montgomery-Smith wrote:
I am the maintainer of the port vis5d+. I just got this email (copied below)
saying that vis5d+ isn't building right now.
The issue seems to be that some reference to __i686.get_pc_thunk.bx is included
twice at some point. This variable seems to be part of an object file
crtbeginS.o that is created by gcc or gcc45, in what seem to me to be very
mysterious conditions. I am rather sure that the issue has nothing to do with
vis5d+, but rather is something to do with either gcc45, or libtools, neither
of which I understand.
Does anyone out there have any idea of what the problem is, or how it can be
solved?
From a relatively cursory examination, this appears to be a flaw in the
USE_FORTRAN=yes stanza. This will bring in gcc45 as a dependency but doesn't
appear to be setting CXX to g++45 though it does do CC=gcc45. Possibly the
same for LD, though I haven't checked that.
As is clear from bsd.gcc.mk, in almost every case now in use,
USE_FORTRAN sets _USE_GCC, which sets CC, CPP, and CXX to the proper
values. Also, it sets USE_BINUTILS where appropriate, which sets LD,
etc. The problem is rather with libtool, particularly in the link
mode, where it may not respect the choice of compiler and toolchain.
This problem has been remarked, for two years or more, in the mailing
lists and forums, when people discuss the use of compilers other than
the base system compiler. With the recent updates, it is more
obtrusive, and several ports that were building successfully with
default settings are now broken. This needs to be fixed, and it would
be better to fix libtool than to add a bunch of ad-hoc fixes to
individual ports.
b.
I agree. libtool is the real culprit. When you run it as
libtool -mode=link g++45 stuff and stuff
libtool uses c++ instead of g++45.
OK, this problem was more subtle than I originally thought. The error I
pointed out doesn't occur consistently, but it does occur in the context
of building vis5d+.
But I have a patch that definitely fixes libtool enough for me. What do
you guys think? This perhaps doesn't fix all the problems, but maybe it
can act as a model to fix them all.
--- configure.bak 2010-09-22 14:44:17.000000000 +0000
+++ configure 2011-03-01 04:23:35.000000000 +0000
@@ -27526,7 +27526,9 @@
old_archive_cmds=$lt_old_archive_cmds
# A language specific compiler.
-CC=$lt_compiler
+if test -z "\$CC"; then \\
+ CC=$lt_compiler
+fi
# Is the compiler the GNU compiler?
with_gcc=$GCC
@@ -27872,7 +27874,11 @@
old_archive_cmds=$lt_old_archive_cmds_CXX
# A language specific compiler.
-CC=$lt_compiler_CXX
+if test -z "\$CXX"; then \\
+ CC=$lt_compiler_CXX
+else
+ CC=\$CXX
+fi
# Is the compiler the GNU compiler?
with_gcc=$GCC_CXX
_______________________________________________
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"