multiple definition of `__i686.get_pc_thunk.bx'

Charlie Kester corky1951 at
Mon Feb 28 01:46:17 UTC 2011

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?

I've seen a similar problem with py-numpy. It seems to occur when
there's a compiler/linker mismatch.  In py-numpy's case, I was able to
resolve it by defining LDSHARED to an appropriate value:

MAKE_ENV+= LDSHARED="gcc45 -shared"

Otherwise, the build was trying to use /usr/local/bin/gcc45 to compiler
and /usr/bin/cc to link, resulting in the two different thunk

More information about the freebsd-ports mailing list