Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Feb 2011 00:43:32 -0600
From:      Ade Lovett <ade@FreeBSD.org>
To:        FreeBSD Ports <freebsd-ports@freebsd.org>
Subject:   Re: multiple definition of `__i686.get_pc_thunk.bx'
Message-ID:  <DC1AA53E-8767-4F6B-A59C-4AD7738DDB3D@FreeBSD.org>
In-Reply-To: <20110228014612.GA72748@comcast.net>
References:  <20110225094102.GH21668@droso.net> <4D6AB2E6.1000107@missouri.edu> <20110228014612.GA72748@comcast.net>

next in thread | previous in thread | raw e-mail | index | archive | help
> 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.
>>=20
>> 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.
>>=20
>> Does anyone out there have any idea of what the problem is, or how it =
can be solved?
>>=20

=46rom a relatively cursory examination, this appears to be a flaw in =
the USE_FORTRAN=3Dyes 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=3Dgcc45.  Possibly the same for LD, though I haven't checked that.

With parts of the code being compiled against gcc45, and then an =
attempted link with the system compiler (CC/LD), then naturally things =
will go south, irrespective of whether libtool is being used.

I would hazard a guess that if ya'll added USE_GCC=3D45 to vis5d+'s =
Makefile, things will link properly.  If someone could test this, that'd =
be peachy.  If it turns out that this works, then it would be a minor =
tweak to bsd.gcc.mk to forcibly set USE_GCC if USE_FORTRAN is also set, =
to allow all of the environmental variables to be punched out for =
compilation.

-aDe






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DC1AA53E-8767-4F6B-A59C-4AD7738DDB3D>