The SDL forums have moved to discourse.libsdl.org.
This is just a read-only archive of the previous forums, to keep old links working.


SDL Forum Index
SDL
Simple Directmedia Layer Forums
Problems with linking the static satellite libs on OS X
Dominus


Joined: 13 Oct 2009
Posts: 127
Hi all,
only now did I have time to test out the latest releases.
I only use SDL 1.2x, SDL_net and SDL_ttf for building OS X snapshots for Exult, Pentagram and Dosbox.
Exult only uses SDL and is fine.

Dosbox uses SDL_net and fails with claiming the compiled static lib is the wrong architecture, but it's not.
Code:
ld: warning: in /opt/exult.i386/lib/libSDL_net.a, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols:
  "_SDLNet_TCP_GetPeerAddress", referenced from:
      TCPClientSocket::GetRemoteAddressString(unsigned char*)in libserial.a(misc_util.o)
  "_SDLNet_CheckSockets", referenced from:
      TCPClientSocket::GetcharNonBlock()       in libserial.a(misc_util.o)
      TCPClientSocket::ReceiveArray(unsigned char*, unsigned int*)in libserial.a(misc_util.o)
  "_SDLNet_FreeSocketSet", referenced from:
      TCPClientSocket::~TCPClientSocket()in libserial.a(misc_util.o)
  "_SDLNet_UDP_Bind", referenced from:
      ConnectToServer(char const*)in libhardware.a(ipx.o)
  "_SDLNet_ResolveHost", referenced from:
      ConnectToServer(char const*)in libhardware.a(ipx.o)
      IPX_StartServer(unsigned short)in libhardware.a(ipxserver.o)
      TCPServerSocket::TCPServerSocket(unsigned short)in libserial.a(misc_util.o)
      TCPClientSocket::TCPClientSocket(char const*, unsigned short)in libserial.a(misc_util.o)
  "_SDLNet_TCP_Close", referenced from:
      TCPServerSocket::~TCPServerSocket()in libserial.a(misc_util.o)
      TCPClientSocket::~TCPClientSocket()in libserial.a(misc_util.o)
  "_SDLNet_Init", referenced from:
      IPX::IPX(Section*)   in libhardware.a(ipx.o)
      TCPServerSocket::TCPServerSocket(unsigned short)in libserial.a(misc_util.o)
      TCPClientSocket::TCPClientSocket(char const*, unsigned short)in libserial.a(misc_util.o)
      TCPClientSocket::TCPClientSocket(_TCPsocket*)in libserial.a(misc_util.o)
      TCPClientSocket::TCPClientSocket(int)in libserial.a(misc_util.o)
  "_SDLNet_UDP_Open", referenced from:
      ConnectToServer(char const*)in libhardware.a(ipx.o)
      IPX_StartServer(unsigned short)in libhardware.a(ipxserver.o)
  "_SDLNet_UDP_Recv", referenced from:
      ConnectToServer(char const*)in libhardware.a(ipx.o)
      IPX_ClientLoop()      in libhardware.a(ipx.o)
      IPXNET::Run()     in libhardware.a(ipx.o)
      IPX_ServerLoop()      in libhardware.a(ipxserver.o)
  "_SDLNet_UDP_Send", referenced from:
      ConnectToServer(char const*)in libhardware.a(ipx.o)
      receivePacket(unsigned char*, short)in libhardware.a(ipx.o)
      handleIpxRequest()      in libhardware.a(ipx.o)
      IPXNET::Run()     in libhardware.a(ipx.o)
      ackClient(IPaddress)     in libhardware.a(ipxserver.o)
      IPX_ServerLoop()      in libhardware.a(ipxserver.o)
      IPX_ServerLoop()      in libhardware.a(ipxserver.o)
  "_SDLNet_UDP_Close", referenced from:
      ConnectToServer(char const*)in libhardware.a(ipx.o)
      DisconnectFromServer(bool) in libhardware.a(ipx.o)
      IPX_StopServer()     in libhardware.a(ipxserver.o)
  "_SDLNet_TCP_Accept", referenced from:
      TCPServerSocket::Accept()      in libserial.a(misc_util.o)
  "_SDLNet_AllocSocketSet", referenced from:
      TCPClientSocket::TCPClientSocket(char const*, unsigned short)in libserial.a(misc_util.o)
      TCPClientSocket::TCPClientSocket(_TCPsocket*)in libserial.a(misc_util.o)
      TCPClientSocket::TCPClientSocket(int)in libserial.a(misc_util.o)
  "_SDLNet_DelSocket", referenced from:
      TCPClientSocket::~TCPClientSocket()in libserial.a(misc_util.o)
  "_SDLNet_AddSocket", referenced from:
      TCPClientSocket::TCPClientSocket(char const*, unsigned short)in libserial.a(misc_util.o)
      TCPClientSocket::TCPClientSocket(_TCPsocket*)in libserial.a(misc_util.o)
      TCPClientSocket::TCPClientSocket(int)in libserial.a(misc_util.o)
  "_SDLNet_TCP_Open", referenced from:
      TCPServerSocket::TCPServerSocket(unsigned short)in libserial.a(misc_util.o)
      TCPClientSocket::TCPClientSocket(char const*, unsigned short)in libserial.a(misc_util.o)
  "_SDLNet_TCP_Recv", referenced from:
      TCPClientSocket::GetcharNonBlock()       in libserial.a(misc_util.o)
      TCPClientSocket::ReceiveArray(unsigned char*, unsigned int*)in libserial.a(misc_util.o)
  "_SDLNet_TCP_Send", referenced from:
      TCPClientSocket::FlushBuffer()       in libserial.a(misc_util.o)
      TCPClientSocket::SendByteBuffered(unsigned char)in libserial.a(misc_util.o)
      TCPClientSocket::SendArray(unsigned char*, unsigned int)in libserial.a(misc_util.o)
      TCPClientSocket::Putchar(unsigned char)in libserial.a(misc_util.o)
ld: symbol(s) not found


Pentagram complains about the same thing for SDL_ttf
Code:
ld: warning: ignoring file /opt/exult.x86_64/lib/libSDL_ttf.a, file was built for archive which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
  "_TTF_OpenFontRW", referenced from:
      FontManager::getTTF_Font(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)in FontManager.o
  "_TTF_CloseFont", referenced from:
      FontManager::~FontManager()in FontManager.o
  "_TTF_Quit", referenced from:
      FontManager::~FontManager()in FontManager.o
  "_TTF_Init", referenced from:
      FontManager::FontManager(bool)in FontManager.o
  "_TTF_RenderUNICODE_Solid", referenced from:
      TTFont::renderText(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int&, int, int, Pentagram::Font::TextAlign, bool, unsigned long)in TTFont.o
  "_TTF_RenderUNICODE_Shaded", referenced from:
      TTFont::renderText(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int&, int, int, Pentagram::Font::TextAlign, bool, unsigned long)in TTFont.o
  "_TTF_SizeUNICODE", referenced from:
      TTFont::renderText(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int&, int, int, Pentagram::Font::TextAlign, bool, unsigned long)in TTFont.o
      TTFont::getStringSize(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&, int&)in TTFont.o
  "_TTF_FontLineSkip", referenced from:
      TTFont::getBaselineSkip()      in TTFont.o
  "_TTF_FontAscent", referenced from:
      TTFont::getBaseline()      in TTFont.o
  "_TTF_FontHeight", referenced from:
      TTFont::getHeight()     in TTFont.o
  "_TTF_GlyphMetrics", referenced from:
      TTFont::TTFont(_TTF_Font*, unsigned int, int, bool, bool)in TTFont.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status


This used to work with previous releases. Have there been obvious changes that prevent linking to the static libs now?
Dominus


Joined: 13 Oct 2009
Posts: 127
Interestingly when I compile for PPC the error isn't happening and all links fine.
Dominus


Joined: 13 Oct 2009
Posts: 127
now I'm a bit closer to the mystery:

seems the static libs I built are not really static for some reason.

otool -L ./.libs/libsdl_ttf.a
Archive : ./.libs/libsdl_ttf.a
./.libs/libsdl_ttf.a(libSDLmain.a): is not an object file
./.libs/libsdl_ttf.a(libSDL.a): is not an object file
./.libs/libsdl_ttf.a(SDL_ttf.o):

I have no idea why this happens as I somehow managed to make the correct static builds before.
Dominus


Joined: 13 Oct 2009
Posts: 127
Since I'm talking to myself... Smile
Solved it... I needed to point pkg_config at nothing (export PKG_CONFIG_PATH=) somehow pkgconfig screwed everything up. Now I need to rebuild all my libs... Smile
Problems with linking the static satellite libs on OS X
Eric Wing
Guest

On 1/26/12, Dominus wrote:
Quote:
Hi all,
only now did I have time to test out the latest releases.
I only use SDL 1.2x, SDL_net and SDL_ttf for building OS X snapshots for
Exult, Pentagram and Dosbox.
Exult only uses SDL and is fine.

Dosbox uses SDL_net and fails with claiming the compiled static lib is the
wrong architecture, but it's not.

Code:
ld: warning: in /opt/exult.i386/lib/libSDL_net.a, file was built for
unsupported file format which is not the architecture being linked (i386)
Undefined symbols:
"_SDLNet_TCP_GetPeerAddress", referenced from:
TCPClientSocket::GetRemoteAddressString(unsigned char*)in
libserial.a(misc_util.o)
"_SDLNet_CheckSockets", referenced from:
TCPClientSocket::GetcharNonBlock() in libserial.a(misc_util.o)
TCPClientSocket::ReceiveArray(unsigned char*, unsigned int*)in
libserial.a(misc_util.o)
"_SDLNet_FreeSocketSet", referenced from:
TCPClientSocket::~TCPClientSocket()in libserial.a(misc_util.o)
"_SDLNet_UDP_Bind", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
"_SDLNet_ResolveHost", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
IPX_StartServer(unsigned short)in libhardware.a(ipxserver.o)
TCPServerSocket::TCPServerSocket(unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
"_SDLNet_TCP_Close", referenced from:
TCPServerSocket::~TCPServerSocket()in libserial.a(misc_util.o)
TCPClientSocket::~TCPClientSocket()in libserial.a(misc_util.o)
"_SDLNet_Init", referenced from:
IPX::IPX(Section*) in libhardware.a(ipx.o)
TCPServerSocket::TCPServerSocket(unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(_TCPsocket*)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(int)in libserial.a(misc_util.o)
"_SDLNet_UDP_Open", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
IPX_StartServer(unsigned short)in libhardware.a(ipxserver.o)
"_SDLNet_UDP_Recv", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
IPX_ClientLoop() in libhardware.a(ipx.o)
IPXNET::Run() in libhardware.a(ipx.o)
IPX_ServerLoop() in libhardware.a(ipxserver.o)
"_SDLNet_UDP_Send", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
receivePacket(unsigned char*, short)in libhardware.a(ipx.o)
handleIpxRequest() in libhardware.a(ipx.o)
IPXNET::Run() in libhardware.a(ipx.o)
ackClient(IPaddress) in libhardware.a(ipxserver.o)
IPX_ServerLoop() in libhardware.a(ipxserver.o)
IPX_ServerLoop() in libhardware.a(ipxserver.o)
"_SDLNet_UDP_Close", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
DisconnectFromServer(bool) in libhardware.a(ipx.o)
IPX_StopServer() in libhardware.a(ipxserver.o)
"_SDLNet_TCP_Accept", referenced from:
TCPServerSocket::Accept() in libserial.a(misc_util.o)
"_SDLNet_AllocSocketSet", referenced from:
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(_TCPsocket*)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(int)in libserial.a(misc_util.o)
"_SDLNet_DelSocket", referenced from:
TCPClientSocket::~TCPClientSocket()in libserial.a(misc_util.o)
"_SDLNet_AddSocket", referenced from:
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(_TCPsocket*)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(int)in libserial.a(misc_util.o)
"_SDLNet_TCP_Open", referenced from:
TCPServerSocket::TCPServerSocket(unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
"_SDLNet_TCP_Recv", referenced from:
TCPClientSocket::GetcharNonBlock() in libserial.a(misc_util.o)
TCPClientSocket::ReceiveArray(unsigned char*, unsigned int*)in
libserial.a(misc_util.o)
"_SDLNet_TCP_Send", referenced from:
TCPClientSocket::FlushBuffer() in libserial.a(misc_util.o)
TCPClientSocket::SendByteBuffered(unsigned char)in
libserial.a(misc_util.o)
TCPClientSocket::SendArray(unsigned char*, unsigned int)in
libserial.a(misc_util.o)
TCPClientSocket::Putchar(unsigned char)in libserial.a(misc_util.o)
ld: symbol(s) not found



Pentagram complains about the same thing for SDL_ttf

Code:
ld: warning: ignoring file /opt/exult.x86_64/lib/libSDL_ttf.a, file was
built for archive which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
"_TTF_OpenFontRW", referenced from:
FontManager::getTTF_Font(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, int)in FontManager.o
"_TTF_CloseFont", referenced from:
FontManager::~FontManager()in FontManager.o
"_TTF_Quit", referenced from:
FontManager::~FontManager()in FontManager.o
"_TTF_Init", referenced from:
FontManager::FontManager(bool)in FontManager.o
"_TTF_RenderUNICODE_Solid", referenced from:
TTFont::renderText(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, unsigned int&, int, int,
Pentagram::Font::TextAlign, bool, unsigned long)in TTFont.o
"_TTF_RenderUNICODE_Shaded", referenced from:
TTFont::renderText(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, unsigned int&, int, int,
Pentagram::Font::TextAlign, bool, unsigned long)in TTFont.o
"_TTF_SizeUNICODE", referenced from:
TTFont::renderText(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, unsigned int&, int, int,
Pentagram::Font::TextAlign, bool, unsigned long)in TTFont.o
TTFont::getStringSize(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, int&, int&)in TTFont.o
"_TTF_FontLineSkip", referenced from:
TTFont::getBaselineSkip() in TTFont.o
"_TTF_FontAscent", referenced from:
TTFont::getBaseline() in TTFont.o
"_TTF_FontHeight", referenced from:
TTFont::getHeight() in TTFont.o
"_TTF_GlyphMetrics", referenced from:
TTFont::TTFont(_TTF_Font*, unsigned int, int, bool, bool)in TTFont.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status



This used to work with previous releases. Have there been obvious changes
that prevent linking to the static libs now?






My casual glance at the error message makes me think you don't have
the architecture you need in your libraries. (e.g. You need i386, but
you only have ppc.) You can run lipo -info on the library to see what
architectures are inside.




--
Beginning iPhone Games Development
http://playcontrol.net/iphonegamebook/
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
Re: Problems with linking the static satellite libs on OS X
Dominus


Joined: 13 Oct 2009
Posts: 127
Eric Wing wrote:
On 1/26/12, Dominus wrote:
Quote:
Hi all,
only now did I have time to test out the latest releases.
I only use SDL 1.2x, SDL_net and SDL_ttf for building OS X snapshots for
Exult, Pentagram and Dosbox.
Exult only uses SDL and is fine.

Dosbox uses SDL_net and fails with claiming the compiled static lib is the
wrong architecture, but it's not.

Code:
ld: warning: in /opt/exult.i386/lib/libSDL_net.a, file was built for
unsupported file format which is not the architecture being linked (i386)
Undefined symbols:
"_SDLNet_TCP_GetPeerAddress", referenced from:
TCPClientSocket::GetRemoteAddressString(unsigned char*)in
libserial.a(misc_util.o)
"_SDLNet_CheckSockets", referenced from:
TCPClientSocket::GetcharNonBlock() in libserial.a(misc_util.o)
TCPClientSocket::ReceiveArray(unsigned char*, unsigned int*)in
libserial.a(misc_util.o)
"_SDLNet_FreeSocketSet", referenced from:
TCPClientSocket::~TCPClientSocket()in libserial.a(misc_util.o)
"_SDLNet_UDP_Bind", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
"_SDLNet_ResolveHost", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
IPX_StartServer(unsigned short)in libhardware.a(ipxserver.o)
TCPServerSocket::TCPServerSocket(unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
"_SDLNet_TCP_Close", referenced from:
TCPServerSocket::~TCPServerSocket()in libserial.a(misc_util.o)
TCPClientSocket::~TCPClientSocket()in libserial.a(misc_util.o)
"_SDLNet_Init", referenced from:
IPX::IPX(Section*) in libhardware.a(ipx.o)
TCPServerSocket::TCPServerSocket(unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(_TCPsocket*)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(int)in libserial.a(misc_util.o)
"_SDLNet_UDP_Open", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
IPX_StartServer(unsigned short)in libhardware.a(ipxserver.o)
"_SDLNet_UDP_Recv", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
IPX_ClientLoop() in libhardware.a(ipx.o)
IPXNET::Run() in libhardware.a(ipx.o)
IPX_ServerLoop() in libhardware.a(ipxserver.o)
"_SDLNet_UDP_Send", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
receivePacket(unsigned char*, short)in libhardware.a(ipx.o)
handleIpxRequest() in libhardware.a(ipx.o)
IPXNET::Run() in libhardware.a(ipx.o)
ackClient(IPaddress) in libhardware.a(ipxserver.o)
IPX_ServerLoop() in libhardware.a(ipxserver.o)
IPX_ServerLoop() in libhardware.a(ipxserver.o)
"_SDLNet_UDP_Close", referenced from:
ConnectToServer(char const*)in libhardware.a(ipx.o)
DisconnectFromServer(bool) in libhardware.a(ipx.o)
IPX_StopServer() in libhardware.a(ipxserver.o)
"_SDLNet_TCP_Accept", referenced from:
TCPServerSocket::Accept() in libserial.a(misc_util.o)
"_SDLNet_AllocSocketSet", referenced from:
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(_TCPsocket*)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(int)in libserial.a(misc_util.o)
"_SDLNet_DelSocket", referenced from:
TCPClientSocket::~TCPClientSocket()in libserial.a(misc_util.o)
"_SDLNet_AddSocket", referenced from:
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(_TCPsocket*)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(int)in libserial.a(misc_util.o)
"_SDLNet_TCP_Open", referenced from:
TCPServerSocket::TCPServerSocket(unsigned short)in
libserial.a(misc_util.o)
TCPClientSocket::TCPClientSocket(char const*, unsigned short)in
libserial.a(misc_util.o)
"_SDLNet_TCP_Recv", referenced from:
TCPClientSocket::GetcharNonBlock() in libserial.a(misc_util.o)
TCPClientSocket::ReceiveArray(unsigned char*, unsigned int*)in
libserial.a(misc_util.o)
"_SDLNet_TCP_Send", referenced from:
TCPClientSocket::FlushBuffer() in libserial.a(misc_util.o)
TCPClientSocket::SendByteBuffered(unsigned char)in
libserial.a(misc_util.o)
TCPClientSocket::SendArray(unsigned char*, unsigned int)in
libserial.a(misc_util.o)
TCPClientSocket::Putchar(unsigned char)in libserial.a(misc_util.o)
ld: symbol(s) not found



Pentagram complains about the same thing for SDL_ttf

Code:
ld: warning: ignoring file /opt/exult.x86_64/lib/libSDL_ttf.a, file was
built for archive which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
"_TTF_OpenFontRW", referenced from:
FontManager::getTTF_Font(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, int)in FontManager.o
"_TTF_CloseFont", referenced from:
FontManager::~FontManager()in FontManager.o
"_TTF_Quit", referenced from:
FontManager::~FontManager()in FontManager.o
"_TTF_Init", referenced from:
FontManager::FontManager(bool)in FontManager.o
"_TTF_RenderUNICODE_Solid", referenced from:
TTFont::renderText(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, unsigned int&, int, int,
Pentagram::Font::TextAlign, bool, unsigned long)in TTFont.o
"_TTF_RenderUNICODE_Shaded", referenced from:
TTFont::renderText(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, unsigned int&, int, int,
Pentagram::Font::TextAlign, bool, unsigned long)in TTFont.o
"_TTF_SizeUNICODE", referenced from:
TTFont::renderText(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, unsigned int&, int, int,
Pentagram::Font::TextAlign, bool, unsigned long)in TTFont.o
TTFont::getStringSize(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, int&, int&)in TTFont.o
"_TTF_FontLineSkip", referenced from:
TTFont::getBaselineSkip() in TTFont.o
"_TTF_FontAscent", referenced from:
TTFont::getBaseline() in TTFont.o
"_TTF_FontHeight", referenced from:
TTFont::getHeight() in TTFont.o
"_TTF_GlyphMetrics", referenced from:
TTFont::TTFont(_TTF_Font*, unsigned int, int, bool, bool)in TTFont.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status



This used to work with previous releases. Have there been obvious changes
that prevent linking to the static libs now?






My casual glance at the error message makes me think you don't have
the architecture you need in your libraries. (e.g. You need i386, but
you only have ppc.) You can run lipo -info on the library to see what
architectures are inside.

Thanks but that wasn't it.
The problem was that I had "export PKG_CONFIG_PATH=pathtomyarchspecificprefix"" This caused the makefiles to contain
Code:
SDL_CONFIG = pkg-config sdl
SDL_LIBS = -Wl,-framework,Cocoa /opt/arch.x86_64/lib/libSDLmain.a /opt/arch.x86_64/lib/libSDL.a -Wl,-framework,OpenGL -Wl,-framework,ApplicationServices -Wl,-framework,Carbon -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit -Wl,-framework,IOKit -L/opt/arch.x86_64/lib -lSDLmain -lSDL


instead of the correct:
Code:
SDL_CONFIG = /opt/arch.x86_64/bin//sdl-config
SDL_LIBS = -L/opt/arch.x86_64/lib -lSDLmain -lSDL -Wl,-framework,Cocoa


So that is obviously doing bad stuff and for some reason building with the static SDL libs into the SDL_ttf libs as well as linking dynamicly to it. This confuses the linker when you link the static SDL_ttf libs to an app. I checked all it's linking and everything had the correct arch but all the double/tripple linking confuses the linker...