Re: Newbie to Darwin linking issue I think?
site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com Thanks for the hint: I am now linking like this But I now get: Damien On 05/06/2005, at 8:51 AM, Shantonu Sen wrote: Shantonu On Jun 4, 2005, at 4:06 PM, Damien Cooke wrote: I build the two object files as such gcc -g -fPIC -c source/lpmalloc.c -o output/lpmalloc.o gcc -g -fPIC -c source/global.c -o output/global.o This is what I get: ld: for architecture ppc ld: Undefined symbols: _printf libtool: internal link edit command failed Damien This email sent to ssen@opendarwin.org _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... cc -dynamiclib -fPIC -o bin/liblpmalloc.so output/lpmalloc.o output/ global.o ld: warning multiple definitions of symbol _malloc output/lpmalloc.o definition of _malloc in section (__TEXT,__text) /usr/lib/gcc/powerpc-apple-darwin8/4.0.0/../../../libSystem.dylib (malloc.So) definition of _malloc So how do I tell it I am building a replacement for malloc other than re-implementing the System.dylib ? Is there a way of dropping duplicate entries? Why are you using libtool(1) instead of the compiler driver cc(1) to create your shared library? Your problem is that you are not linking against libSystem.dylib (via -lSystem). You're also missing a host of other libraries automatically included when you link a dylib with cc(1). for example: /usr/bin/libtool -dynamic -arch_only ppc -noall_load - weak_reference_mismatches non-weak -v -o libfoo.dylib -L/usr/lib/ gcc/powerpc-apple-darwin8/4.0.0 -L/usr/lib/gcc/powerpc-apple- darwin8/4.0.0 -L/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/../../.. foo.o -lgcc -lgcc_eh -lSystemStubs -lmx -lSystem You should use cc/gcc and the -dynamiclib option to build your library. You probably also want to read the various man pages and use the -install_name flag as well. Sorry for the dumb question. I am porting my malloc to Darwin. I have built it as a shared dynamic library on Solaris. However I am having a large amount of problems with this on OS X 10.4.1 using XCode 2.0 and gcc 4.0 Then I use Libtool as such libtool -dynamic -o bin/liblpmalloc.so output/lpmalloc.o output/global.o I am probably doing something really dumb but any help would be greatly appreciated. _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/ssen% 40opendarwin.org This email sent to site_archiver@lists.apple.com
participants (1)
-
Damien Cooke