I can compile all parts of xfce-4.0.5 successfully, except xffm which fails when linking libxffm_calls.la. OS: Mac OS X 10.3.4 Exact error (details of the command in additional information): ld: multiple definitions of symbol _UriType .libs/libxffm_calls_la-dnd.o definition of _UriType in section (__DATA,__common) .libs/libxffm_calls_la-pasteboard.o definition of _UriType in section (__DATA,__common)
Additional information: Platform: Darwin 7.4.0 Darwin Kernel Version 7.4.0: Wed May 12 16:58:24 PDT 2004; root:xnu/xnu-517.7.7.obj~7/RELEASE_PPC Power Macintosh powerpc gcc (GCC) 3.3 20030304 (Apple Computer, Inc. build 1495) Exact error dump: if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../src -I../smb -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/include/gtk-2.0 -I/sw/lib/gtk-2.0/include -I/sw/include/atk-1.0 -I/sw/include/pango-1.0 -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/usr/local/include/xfce4 -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -DPACKAGE_DATA_DIR=\""/usr/local/share"\" -DPACKAGE_LOCALE_DIR=\""/usr/local/share/locale"\" -g -O2 -MT libxffm_calls_la-zoom.lo -MD -MP -MF ".deps/libxffm_calls_la-zoom.Tpo" -c -o libxffm_calls_la-zoom.lo `test -f 'zoom.c' || echo './'`zoom.c; \ then mv -f ".deps/libxffm_calls_la-zoom.Tpo" ".deps/libxffm_calls_la-zoom.Plo"; else rm -f ".deps/libxffm_calls_la-zoom.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../src -I../smb -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/include/gtk-2.0 -I/sw/lib/gtk-2.0/include -I/sw/include/atk-1.0 -I/sw/include/pango-1.0 -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -I/usr/local/include/xfce4 -I/sw/include/glib-2.0 -I/sw/lib/glib-2.0/include -DPACKAGE_DATA_DIR=\"/usr/local/share\" -DPACKAGE_LOCALE_DIR=\"/usr/local/share/locale\" -g -O2 -MT libxffm_calls_la-zoom.lo -MD -MP -MF .deps/libxffm_calls_la-zoom.Tpo -c zoom.c -fno-common -DPIC -o .libs/libxffm_calls_la-zoom.o /bin/sh ../libtool --mode=link gcc -g -O2 -o libxffm_calls.la -rpath /usr/local/lib -export-dynamic libxffm_calls_la-dnd.lo libxffm_calls_la-goto.lo libxffm_calls_la-help.lo libxffm_calls_la-input.lo libxffm_calls_la-menu.lo libxffm_calls_la-menu_callbacks.lo libxffm_calls_la-new_win.lo libxffm_calls_la-pasteboard.lo libxffm_calls_la-refresh.lo libxffm_calls_la-terminal.lo libxffm_calls_la-xfdiff.lo libxffm_calls_la-zoom.lo gcc -dynamiclib -flat_namespace -undefined suppress -o .libs/libxffm_calls.0.0.0 .libs/libxffm_calls_la-dnd.o .libs/libxffm_calls_la-goto.o .libs/libxffm_calls_la-help.o .libs/libxffm_calls_la-input.o .libs/libxffm_calls_la-menu.o .libs/libxffm_calls_la-menu_callbacks.o .libs/libxffm_calls_la-new_win.o .libs/libxffm_calls_la-pasteboard.o .libs/libxffm_calls_la-refresh.o .libs/libxffm_calls_la-terminal.o .libs/libxffm_calls_la-xfdiff.o .libs/libxffm_calls_la-zoom.o -install_name /usr/local/lib/libxffm_calls.0 -compatibility_version 1 -current_version 1.0 ld: multiple definitions of symbol _UriType .libs/libxffm_calls_la-dnd.o definition of _UriType in section (__DATA,__common) .libs/libxffm_calls_la-pasteboard.o definition of _UriType in section (__DATA,__common) /usr/bin/libtool: internal link edit command failed make[2]: *** [libxffm_calls.la] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
yeah, os x's linker doesn't like multiple same-named symbols in the common section of libraries. IIRC, if you compile _every_ .c file and link the lib and executable (if any) with the '-fno-common' cmdline option, it'll work. however, i'm not sure how to tell libtool to do that in a portable way.
I was just successful : I just had to remove UriType and leave an empty type definition... I also had to remove any -Wl,R/usr/local/lib which is present in some Makefiles.