www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Linker errors on OSX

reply Peter Alexander <peter.alexander.au gmail.com> writes:
I've been having strange linker errors recently and I have no ideas why 
they've started happening.

When compiling/linking:

   import std.stdio;
   void main() { writeln("Hello"); }

with DMD 2.053 I get linker error:

   Undefined symbols:
   "_D3std9exception7bailOutFAyaixAaZv", referenced from:
_D3std9exception148__T7enforceTbVAyaa60_2f4c6962726172792f436f6d70696c6572732f646d64322f6f73782f62696e2f2e2e2f2e2e2f7372632f70686f626f732f7374642f737464696f2e64Vi1481Z7enforceFbLAxaZb
   in test.o
   ld: symbol(s) not found
   collect2: ld returned 1 exit status


My first thought was that it isn't linking with phobos, but compiling 
with -v confirms that it is:

   gcc test.o -o test -m32 -Xlinker 
-L/Library/Compilers/dmd2/osx/bin/../lib -lphobos2 -lpthread -lm


My GCC version is 4.2.1

   $ gcc --version
   i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
   Copyright (C) 2007 Free Software Foundation, Inc.
   This is free software; see the source for copying conditions.  There 
   is NO
   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.


I've tried re-downloading DMD again, but this didn't work.

It appeared to start happening after running an update of all my 
outdated packages in MacPorts, but I can't be sure that that's the issue.

Any help tracking down the problem would be much appreciated. Thanks.
Jun 19 2011
next sibling parent "Daniel Murphy" <yebblies nospamgmail.com> writes:
"Peter Alexander" <peter.alexander.au gmail.com> wrote in message 
news:itlk5g$e7t$1 digitalmars.com...
 I've been having strange linker errors recently and I have no ideas why 
 they've started happening.

   Undefined symbols:
   "_D3std9exception7bailOutFAyaixAaZv", referenced from:
 _D3std9exception148__T7enforceTbVAyaa60_2f4c6962726172792f436f6d70696c6572732f646d64322f6f73782f62696e2f2e2e2f2e2e2f7372632f70686f626f732f7374642f737464696f2e64Vi1481Z7enforceFbLAxaZb
   in test.o
   ld: symbol(s) not found
   collect2: ld returned 1 exit status

Last time I got something like this it was from an outdated phobos.lib on my path. Could be what's happening to you.
Jun 19 2011
prev sibling parent Dmitry Olshansky <dmitry.olsh gmail.com> writes:
On 19.06.2011 23:52, Peter Alexander wrote:
 I've been having strange linker errors recently and I have no ideas 
 why they've started happening.

 When compiling/linking:

   import std.stdio;
   void main() { writeln("Hello"); }

 with DMD 2.053 I get linker error:

   Undefined symbols:
   "_D3std9exception7bailOutFAyaixAaZv", referenced from:
 _D3std9exception148__T7enforceTbVAyaa60_2f4c6962726172792f436f6d70696c6572732f646d64322f6f73782f62696e2f2e2e2f2e2e2f7372632f70686f626f732f7374642f737464696f2e64Vi1
81Z7enforceFbLAxaZb 

   in test.o
   ld: symbol(s) not found
   collect2: ld returned 1 exit status


 My first thought was that it isn't linking with phobos, but compiling 
 with -v confirms that it is:

   gcc test.o -o test -m32 -Xlinker 
 -L/Library/Compilers/dmd2/osx/bin/../lib -lphobos2 -lpthread -lm


 My GCC version is 4.2.1

   $ gcc --version
   i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
   Copyright (C) 2007 Free Software Foundation, Inc.
   This is free software; see the source for copying conditions.  There 
   is NO
   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
 PURPOSE.


 I've tried re-downloading DMD again, but this didn't work.

 It appeared to start happening after running an update of all my 
 outdated packages in MacPorts, but I can't be sure that that's the issue.

 Any help tracking down the problem would be much appreciated. Thanks.

I had a lot of undefined linker symbols on linux recently, in the end I had to rebuild dmd, druntime & phobos from the latest git master. -- Dmitry Olshansky
Jun 20 2011