2007年12月28日星期五

Fix the compilation error for gimp-2.4.2 on gentoo-alt@maxos-x86

USE settings:
[ebuild UD] media-gfx/gimp-2.4.2 [9999] USE="jpeg mmx pdf* png sse svg* tiff -aalib (-alsa) (-altivec) -curl -dbus -debug -doc -gnome -gtkhtml -lcms -mng -python -smp -wmf"

Error message:

gcc -O2 -march=pentium-m -msse3 -fomit-frame-pointer -pipe -I/opt/gentoo/usr/include -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -o .libs/xpm xpm.o -framework Carbon ../../libgimp/.libs/libgimpui-2.0.dylib /opt/gentoo/var/tmp/portage/media-gfx/gimp-2.4.2/work/gimp-2.4.2/libgimp/.libs/libgimp-2.0.dylib -L/opt/gentoo/usr/lib /opt/gentoo/var/tmp/portage/media-gfx/gimp-2.4.2/work/gimp-2.4.2/libgimpwidgets/.libs/libgimpwidgets-2.0.dylib /opt/gentoo/var/tmp/portage/media-gfx/gimp-2.4.2/work/gimp-2.4.2/libgimpmodule/.libs/libgimpmodule-2.0.dylib ../../libgimpwidgets/.libs/libgimpwidgets-2.0.dylib ../../libgimpmodule/.libs/libgimpmodule-2.0.dylib ../../libgimp/.libs/libgimp-2.0.dylib /opt/gentoo/var/tmp/portage/media-gfx/gimp-2.4.2/work/gimp-2.4.2/libgimpconfig/.libs/libgimpconfig-2.0.dylib ../../libgimpmath/.libs/libgimpmath-2.0.dylib ../../libgimpconfig/.libs/libgimpconfig-2.0.dylib /opt/gentoo/var/tmp/portage/media-gfx/gimp-2.4.2/work/gimp-2.4.2/libgimpbase/.libs/libgimpbase-2.0.dylib /opt/gentoo/var/tmp/portage/media-gfx/gimp-2.4.2/work/gimp-2.4.2/libgimpcolor/.libs/libgimpcolor-2.0.dylib /opt/gentoo/var/tmp/portage/media-gfx/gimp-2.4.2/work/gimp-2.4.2/libgimpmath/.libs/libgimpmath-2.0.dylib ../../libgimpcolor/.libs/libgimpcolor-2.0.dylib ../../libgimpbase/.libs/libgimpbase-2.0.dylib /opt/gentoo/usr/lib/libgtk-quartz-2.0.dylib /opt/gentoo/usr/lib/libgdk-quartz-2.0.dylib /opt/gentoo/usr/lib/libatk-1.0.dylib /opt/gentoo/usr/lib/libgdk_pixbuf-2.0.dylib /opt/gentoo/usr/lib/libpangocairo-1.0.dylib /opt/gentoo/usr/lib/libpango-1.0.dylib -lm /opt/gentoo/usr/lib/libcairo.dylib /opt/gentoo/usr/lib/libfontconfig.dylib /opt/gentoo/usr/lib/libfreetype.dylib /opt/gentoo/usr/lib/libexpat.dylib /opt/gentoo/usr/lib/libpng12.dylib -lz /opt/gentoo/usr/lib/libgobject-2.0.dylib /opt/gentoo/usr/lib/libgmodule-2.0.dylib /opt/gentoo/usr/lib/libgthread-2.0.dylib /opt/gentoo/usr/lib/libglib-2.0.dylib -L/usr/X11R6/lib -lSM -lICE -lXpm /opt/gentoo/usr/lib/libintl.dylib /opt/gentoo/usr/lib/libiconv.dylib -lc
binutils-config: warning: no GCC found on your system!
ld: warning, duplicate dylib /opt/gentoo/usr/lib/libiconv.2.dylib
ld: cycle in dylib re-exports with /usr/X11R6/lib/libGL.dylib
collect2: ld returned 1 exit status
make: *** [xpm] Error 1

Solution:

edit /var/tmp/portage/media-gfx/gimp-2.4.2/work/gimp-2.4.2/plug-ins/common/Makefile

Append the following flag to xpm_LDADD

-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib

Thanks to: