#52468 closed defect (fixed)
gtk3 3.22.0_0 build fails on 10.5 ppc
Reported by: | dgonyier (Dwaine Gonyier) | Owned by: | dbevans (David B. Evans) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | leopard powerpc | Cc: | jeremyhu (Jeremy Huddleston Sequoia), ballapete (Peter "Pete" Dyballa), ken-cunningham-webuse, udbraumann, mojca (Mojca Miklavec), khepler, dgonyier (Dwaine Gonyier), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) |
Port: | gtk3 |
Description
$ arch ppc $ sw_vers ProductName: Mac OS X ProductVersion: 10.5.8 BuildVersion: 9L31a
Build log attached.
Attachments (5)
Change History (71)
Changed 8 years ago by dgonyier (Dwaine Gonyier)
comment:1 follow-up: 8 Changed 8 years ago by dgonyier (Dwaine Gonyier)
If it matters, I am trying to upgrade from gtk3 @3.20.9_0+x11 (active)to latest (3.22.0_0)
comment:2 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | leopard added |
---|---|
Owner: | changed from macports-tickets@… to devans@… |
comment:3 follow-up: 4 Changed 8 years ago by ridethecliche@…
I think you may need to explicitly specify the +X11 variant when installing the port.
comment:4 Changed 8 years ago by dbevans (David B. Evans)
Status: | new → assigned |
---|
Replying to ridethecliche@…:
I think you may need to explicitly specify the +X11 variant when installing the port.
No, for the following reasons:
- +x11 is the default variant (try
port info gtk3
and see which variants have a + in front of them) - when you upgrade a port, upgrade will attempt to follow the previously installed variants, in your case +x11
comment:5 Changed 8 years ago by dbevans (David B. Evans)
The error seems to be a ppc specific error while linking libgdk-3.0.dylib. I'm not sure what to do with this and I don't have a ppc machine available to play with it. Perhaps some one with knowledge about how clang 3.4 generates ppc code (or not) could help explain what is happening.
:info:build libtool: link: /opt/local/bin/clang-mp-3.4 -arch ppc -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o .libs/libgdk-3.0.dylib .libs/libgdk_3_la-gdkcolor.o .libs/libgdk_3_la-gdk-private.o .libs/libgdk_3_la-gdk.o .libs/libgdk_3_la-gdkapplaunchcontext.o .libs/libgdk_3_la-gdkcairo.o .libs/libgdk_3_la-gdkcursor.o .libs/libgdk_3_la-gdkdeprecated.o .libs/libgdk_3_la-gdkdevice.o .libs/libgdk_3_la-gdkdevicepad.o .libs/libgdk_3_la-gdkdevicetool.o .libs/libgdk_3_la-gdkdevicemanager.o .libs/libgdk_3_la-gdkdisplay.o .libs/libgdk_3_la-gdkdisplaymanager.o .libs/libgdk_3_la-gdkdnd.o .libs/libgdk_3_la-gdkdrawingcontext.o .libs/libgdk_3_la-gdkevents.o .libs/libgdk_3_la-gdkframetimings.o .libs/libgdk_3_la-gdkgl.o .libs/libgdk_3_la-gdkglcontext.o .libs/libgdk_3_la-gdkglobals.o .libs/libgdk_3_la-gdkkeys.o .libs/libgdk_3_la-gdkkeyuni.o .libs/libgdk_3_la-gdkmonitor.o .libs/libgdk_3_la-gdkoffscreenwindow.o .libs/libgdk_3_la-gdkframeclock.o .libs/libgdk_3_la-gdkframeclockidle.o .libs/libgdk_3_la-gdkpango.o .libs/libgdk_3_la-gdkpixbuf-drawable.o .libs/libgdk_3_la-gdkproperty.o .libs/libgdk_3_la-gdkrectangle.o .libs/libgdk_3_la-gdkrgba.o .libs/libgdk_3_la-gdkscreen.o .libs/libgdk_3_la-gdkseat.o .libs/libgdk_3_la-gdkseatdefault.o .libs/libgdk_3_la-gdkselection.o .libs/libgdk_3_la-gdkvisual.o .libs/libgdk_3_la-gdkwindow.o .libs/libgdk_3_la-gdkwindowimpl.o .libs/libgdk_3_la-gdkenumtypes.o .libs/libgdk_3_la-gdkmarshalers.o .libs/libgdk_3_la-gdkresources.o .libs/libgdk-3.lax/libgdk-x11.a/gdkapplaunchcontext-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkasync.o .libs/libgdk-3.lax/libgdk-x11.a/gdkcursor-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkdevice-core-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkdevice-xi2.o .libs/libgdk-3.lax/libgdk-x11.a/gdkdevicemanager-core-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkdevicemanager-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkdevicemanager-xi2.o .libs/libgdk-3.lax/libgdk-x11.a/gdkdisplay-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkdisplaymanager-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkdnd-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkeventsource.o .libs/libgdk-3.lax/libgdk-x11.a/gdkeventtranslator.o .libs/libgdk-3.lax/libgdk-x11.a/gdkgeometry-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkglcontext-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkkeys-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkmain-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkmonitor-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkproperty-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkscreen-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkselection-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdktestutils-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkvisual-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkwindow-x11.o .libs/libgdk-3.lax/libgdk-x11.a/gdkxftdefaults.o .libs/libgdk-3.lax/libgdk-x11.a/gdkxid.o .libs/libgdk-3.lax/libgdk-x11.a/xsettings-client.o -L/opt/local/lib /opt/local/lib/libpangocairo-1.0.dylib /opt/local/lib/libpango-1.0.dylib /opt/local/lib/libgdk_pixbuf-2.0.dylib /opt/local/lib/libcairo-gobject.dylib /opt/local/lib/libgio-2.0.dylib /opt/local/lib/libgobject-2.0.dylib /opt/local/lib/libglib-2.0.dylib /opt/local/lib/libintl.dylib /opt/local/lib/libfontconfig.dylib /opt/local/lib/libfreetype.dylib /opt/local/lib/libXinerama.dylib /opt/local/lib/libXi.dylib /opt/local/lib/libXrandr.dylib /opt/local/lib/libXcursor.dylib /opt/local/lib/libXrender.dylib /opt/local/lib/libXcomposite.dylib /opt/local/lib/libXdamage.dylib /opt/local/lib/libxcb.dylib /opt/local/lib/libXau.dylib /opt/local/lib/libXdmcp.dylib /opt/local/lib/libXfixes.dylib /opt/local/lib/libcairo.dylib /opt/local/lib/libX11.dylib /opt/local/lib/libXext.dylib /opt/local/lib/libepoxy.dylib -lm -arch ppc -Os -arch ppc -Wl,-headerpad_max_install_names -arch ppc -framework CoreFoundation -framework ApplicationServices -pthread -install_name /opt/local/lib/libgdk-3.0.dylib -compatibility_version 2201 -current_version 2201.0 -Wl,-single_module :info:build ld warning: codegen with reference kind 17 in _gdk_color_get_type prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _gdk_color_get_type prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 17 in _gdk_color_get_type prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _gdk_color_get_type prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _gdk_color_get_type prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 17 in _gdk__private__ prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _gdk__private__ prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 17 in _gdk_pre_parse prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 17 in _gdk_pre_parse prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _gdk_pre_parse prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _gdk_pre_parse prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 17 in _gdk_pre_parse prevents image from loading in dyld shared cache
lots more like that and then alot of these
:info:build ld warning: codegen with reference kind 17 in _read_settings prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _read_settings prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 17 in _read_settings prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _read_settings prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 17 in _read_settings prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _read_settings prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _read_settings prevents image from loading in dyld shared cache :info:build ld warning: codegen with reference kind 14 in _read_settings prevents image from loading in dyld shared cache :info:build ld: absolute addressing (perhaps -mdynamic-no-pic) used in _gdk_color_copy from .libs/libgdk_3_la-gdkcolor.o not allowed in slidable image. Use '-read_only_relocs suppress' to enable text relocs :info:build collect2: ld returned 1 exit status :info:build clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation) :info:build make[4]: *** [libgdk-3.la] Error 1
At any rate, if you look at the list of binary modules being linked, I think it's safe to say it's building +x11.
comment:6 Changed 8 years ago by dbevans (David B. Evans)
Cc: | jeremyhu@… added |
---|
A similar story with babl can be seen in #48454 but no solution there either.
comment:7 Changed 8 years ago by ken-cunningham-webuse
if either of you would like a PPC machine to be made available to you via ssh/VNC/ARD to work on this or any other port, let me know. I have a number of them and they are available to you for the asking.
comment:8 Changed 8 years ago by ken-cunningham-webuse
Replying to dgonyier@…:
If it matters, I am trying to upgrade from gtk3 @3.20.9_0+x11 (active)to latest (3.22.0_0)
I'd just like to make sure you know that you don't have to upgrade, necessarily. You can peg the port at the last working version, and it will no longer come up for upgrading. If it gets fixed (and we hope it will) then you can remove the peg and upgrade it at that time.
Check out <https://guide.macports.org/chunked/development.local-repositories.html>
comment:9 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
You're not going to get very far if you expect clang-3.4 to work for ppc. I think it wasn't until around 3.6 that it became semi-usable. See my note in LibcxxOnOlderSystems#Leopardppc
comment:10 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Leopard is in a weak spot when it comes to newer toolchains because libc++ (which newer versions of clang depend on) doesn't work well with exceptions on Leopard due to issues getting libunwind built right. See http://www.llvm.org/bugs/show_bug.cgi?id=22270. You'll want to fix that bug if you want to have any hope of libc++ working on Leopard.
comment:12 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
I have a different fault on PPC Mac OS X 10.5.8, Leopard:
/bin/sh ../libtool --tag=CC --mode=compile /opt/local/bin/clang-mp-3.4 -arch ppc -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Gdk\" -DG_LOG_USE_STRUCTURED=1 -DGDK_COMPILATION -I.. -I../gdk -I.. -DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS -DGLIB_MIN_REQUIRED_VERSION=GLIB_VERSION_2_48 -DGLIB_MAX_ALLOWED_VERSION=GLIB_VERSION_2_50 -D_REENTRANT -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include -I/opt/local/include/pango-1.0 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/cairo -I/opt/local/include/gio-unix-2.0/ -I/opt/local/include -I/opt/local/include/cairo -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/pixman-1 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include -DX_LOCALE -I/opt/local/include -pipe -Os -fstrict-aliasing -arch ppc -Wall -MT libgdk_3_la-gdkresources.lo -MD -MP -MF .deps/libgdk_3_la-gdkresources.Tpo -c -o libgdk_3_la-gdkresources.lo `test -f 'gdkresources.c' || echo './'`gdkresources.c libtool: compile: /opt/local/bin/clang-mp-3.4 -arch ppc -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Gdk\" -DG_LOG_USE_STRUCTURED=1 -DGDK_COMPILATION -I.. -I../gdk -I.. -DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS -DGLIB_MIN_REQUIRED_VERSION=GLIB_VERSION_2_48 -DGLIB_MAX_ALLOWED_VERSION=GLIB_VERSION_2_50 -D_REENTRANT -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include -I/opt/local/include/pango-1.0 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/cairo -I/opt/local/include/gio-unix-2.0/ -I/opt/local/include -I/opt/local/include/cairo -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/pixman-1 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include -DX_LOCALE -I/opt/local/include -pipe -Os -fstrict-aliasing -arch ppc -Wall -MT libgdk_3_la-gdkresources.lo -MD -MP -MF .deps/libgdk_3_la-gdkresources.Tpo -c gdkresources.c -fno-common -DPIC -o .libs/libgdk_3_la-gdkresources.o libtool: compile: /opt/local/bin/clang-mp-3.4 -arch ppc -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Gdk\" -DG_LOG_USE_STRUCTURED=1 -DGDK_COMPILATION -I.. -I../gdk -I.. -DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS -DGLIB_MIN_REQUIRED_VERSION=GLIB_VERSION_2_48 -DGLIB_MAX_ALLOWED_VERSION=GLIB_VERSION_2_50 -D_REENTRANT -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include -I/opt/local/include/pango-1.0 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/cairo -I/opt/local/include/gio-unix-2.0/ -I/opt/local/include -I/opt/local/include/cairo -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -I/opt/local/include/pixman-1 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include -I/opt/local/include -DX_LOCALE -I/opt/local/include -pipe -Os -fstrict-aliasing -arch ppc -Wall -MT libgdk_3_la-gdkresources.lo -MD -MP -MF .deps/libgdk_3_la-gdkresources.Tpo -c gdkresources.c -o libgdk_3_la-gdkresources.o >/dev/null 2>&1 mv -f .deps/libgdk_3_la-gdkresources.Tpo .deps/libgdk_3_la-gdkresources.Plo /bin/sh ../libtool --tag=CC --mode=link /opt/local/bin/clang-mp-3.4 -arch ppc -pipe -Os -fstrict-aliasing -arch ppc -Wall -version-info 2200:0:2200 -export-dynamic -rpath /opt/local/lib -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc -o libgdk-3.la -rpath /opt/local/lib libgdk_3_la-gdkcolor.lo libgdk_3_la-gdk-private.lo libgdk_3_la-gdk.lo libgdk_3_la-gdkapplaunchcontext.lo libgdk_3_la-gdkcairo.lo libgdk_3_la-gdkcursor.lo libgdk_3_la-gdkdeprecated.lo libgdk_3_la-gdkdevice.lo libgdk_3_la-gdkdevicepad.lo libgdk_3_la-gdkdevicetool.lo libgdk_3_la-gdkdevicemanager.lo libgdk_3_la-gdkdisplay.lo libgdk_3_la-gdkdisplaymanager.lo libgdk_3_la-gdkdnd.lo libgdk_3_la-gdkdrawingcontext.lo libgdk_3_la-gdkevents.lo libgdk_3_la-gdkframetimings.lo libgdk_3_la-gdkgl.lo libgdk_3_la-gdkglcontext.lo libgdk_3_la-gdkglobals.lo libgdk_3_la-gdkkeys.lo libgdk_3_la-gdkkeyuni.lo libgdk_3_la-gdkmonitor.lo libgdk_3_la-gdkoffscreenwindow.lo libgdk_3_la-gdkframeclock.lo libgdk_3_la-gdkframeclockidle.lo libgdk_3_la-gdkpango.lo libgdk_3_la-gdkpixbuf-drawable.lo libgdk_3_la-gdkproperty.lo libgdk_3_la-gdkrectangle.lo libgdk_3_la-gdkrgba.lo libgdk_3_la-gdkscreen.lo libgdk_3_la-gdkseat.lo libgdk_3_la-gdkseatdefault.lo libgdk_3_la-gdkselection.lo libgdk_3_la-gdkvisual.lo libgdk_3_la-gdkwindow.lo libgdk_3_la-gdkwindowimpl.lo libgdk_3_la-gdkenumtypes.lo libgdk_3_la-gdkmarshalers.lo libgdk_3_la-gdkresources.lo -L/opt/local/lib -lpangocairo-1.0 -lpango-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -lfontconfig -lfreetype -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lXfixes -lcairo -lX11 -lXext -lepoxy -lm x11/libgdk-x11.la libtool: link: /opt/local/bin/clang-mp-3.4 -arch ppc -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o .libs/libgdk-3.0.dylib .libs/libgdk_3_la-gdkcolor.o .libs/libgdk_3_la-gdk-private.o .libs/libgdk_3_la-gdk.o .libs/libgdk_3_la-gdkapplaunchcontext.o .libs/libgdk_3_la-gdkcairo.o .libs/libgdk_3_la-gdkcursor.o .libs/libgdk_3_la-gdkdeprecated.o .libs/libgdk_3_la-gdkdevice.o .libs/libgdk_3_la-gdkdevicepad.o .libs/libgdk_3_la-gdkdevicetool.o .libs/libgdk_3_la-gdkdevicemanager.o .libs/libgdk_3_la-gdkdisplay.o .libs/libgdk_3_la-gdkdisplaymanager.o .libs/libgdk_3_la-gdkdnd.o .libs/libgdk_3_la-gdkdrawingcontext.o .libs/libgdk_3_la-gdkevents.o .libs/libgdk_3_la-gdkframetimings.o .libs/libgdk_3_la-gdkgl.o .libs/libgdk_3_la-gdkglcontext.o .libs/libgdk_3_la-gdkglobals.o .libs/libgdk_3_la-gdkkeys.o .libs/libgdk_3_la-gdkkeyuni.o .libs/libgdk_3_la-gdkmonitor.o .libs/libgdk_3_la-gdkoffscreenwindow.o .libs/libgdk_3_la-gdkframeclock.o .libs/libgdk_3_la-gdkframeclockidle.o .libs/libgdk_3_la-gdkpango.o .libs/libgdk_3_la-gdkpixbuf-drawable.o .libs/libgdk_3_la-gdkproperty.o .libs/libgdk_3_la-gdkrectangle.o .libs/libgdk_3_la-gdkrgba.o .libs/libgdk_3_la-gdkscreen.o .libs/libgdk_3_la-gdkseat.o .libs/libgdk_3_la-gdkseatdefault.o .libs/libgdk_3_la-gdkselection.o .libs/libgdk_3_la-gdkvisual.o .libs/libgdk_3_la-gdkwindow.o .libs/libgdk_3_la-gdkwindowimpl.o .libs/libgdk_3_la-gdkenumtypes.o .libs/libgdk_3_la-gdkmarshalers.o .libs/libgdk_3_la-gdkresources.o -Wl,-force_load,x11/.libs/libgdk-x11.a -L/opt/local/lib /opt/local/lib/libpangocairo-1.0.dylib /opt/local/lib/libpango-1.0.dylib /opt/local/lib/libgdk_pixbuf-2.0.dylib /opt/local/lib/libcairo-gobject.dylib /opt/local/lib/libgio-2.0.dylib /opt/local/lib/libgobject-2.0.dylib /opt/local/lib/libglib-2.0.dylib /opt/local/lib/libintl.dylib /opt/local/lib/libfontconfig.dylib /opt/local/lib/libfreetype.dylib /opt/local/lib/libXinerama.dylib /opt/local/lib/libXi.dylib /opt/local/lib/libXrandr.dylib /opt/local/lib/libXcursor.dylib /opt/local/lib/libXrender.dylib /opt/local/lib/libXcomposite.dylib /opt/local/lib/libXdamage.dylib /opt/local/lib/libxcb.dylib /opt/local/lib/libXau.dylib /opt/local/lib/libXdmcp.dylib /opt/local/lib/libXfixes.dylib /opt/local/lib/libcairo.dylib /opt/local/lib/libX11.dylib /opt/local/lib/libXext.dylib /opt/local/lib/libepoxy.dylib -lm -arch ppc -Os -arch ppc -Wl,-headerpad_max_install_names -arch ppc -framework CoreFoundation -framework ApplicationServices -pthread -install_name /opt/local/lib/libgdk-3.0.dylib -compatibility_version 2201 -current_version 2201.0 -Wl,-single_module ld: illegal text-relocation to cstring in .libs/libgdk_3_la-gdkcolor.o from _gdk_color_copy in .libs/libgdk_3_la-gdkcolor.o for architecture ppc collect2: ld returned 1 exit status clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation) make[4]: *** [libgdk-3.la] Error 1 make[4]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.0/gdk' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.0/gdk' make[2]: *** [all] Error 2 make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.0/gdk' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.0' make: *** [all] Error 2 make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.0' Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.0" && /usr/bin/make -w all CC="/opt/local/bin/clang-mp-3.4 -arch ppc" CC_FOR_BUILD="/opt/local/bin/clang-mp-3.4 -arch ppc" V=1 CPP_FOR_BUILD="/usr/bin/cpp" Exit code: 2 Error: Failed to build gtk3: command execution failed
pete 235 /\ port select --summary Name Selected Options ==== ======== ======= clang mp-clang-3.3 mp-clang-3.3 mp-clang-3.4 none gcc apple-gcc42 apple-gcc42 gcc40 gcc42 llvm-gcc42 mp-gcc47 mp-gcc48 mp-gcc49 mp-gcc5 none llvm mp-llvm-3.3 mp-llvm-3.3 mp-llvm-3.4 none
Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Attachment: | main.2.log added |
---|
Contains the other error
comment:13 Changed 8 years ago by ken-cunningham-webuse
perhaps a thing to try on 10.5 PPC is to edit this block in the Portfile
# blacklist compilers that do not support C11 (redefinition of typedef ‘GdkX11Monitor’ at gdkscreen-x11.h:33) if {[variant_isset quartz]} { compiler.blacklist *gcc* {clang < 425} } else { compiler.blacklist *gcc* {clang < 300} }
re-enable gcc, and try a newer gcc that supports C11 <http://gcc.gnu.org/projects/cxx-status.html#cxx11> -- most of which build on Tiger PPC and so probably build on Leopard PPC.
$ port -v installed | grep gcc apple-gcc42 @5666.3_15+bootstrap platform='darwin 8' archs='ppc' apple-gcc42 @5666.3_15 (active) platform='darwin 8' archs='ppc' gcc5 @5.4.0_0 (active) platform='darwin 8' archs='ppc' gcc6 @6.1.0_0 (active) platform='darwin 8' archs='ppc' gcc46 @4.6.4_9 (active) platform='darwin 8' archs='ppc' gcc48 @4.8.5_0 (active) platform='darwin 8' archs='ppc' gcc_select @0.1_8 (active) platform='darwin 8' archs='noarch' libgcc @6.1.0_0 (active) platform='darwin 8' archs='ppc'
comment:14 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
That would result in different ports using different C++ runtimes, causing issues across library boundaries.
If you wanted to pursue that route, you could remove all C++ ports, install gcc6, setup your default compilers to be something like "gcc6 gcc5 gcc4.9" and then re-install your ports. You'll have to manually edit ports that blacklist *gcc* for C++11, including the cxx11 portgroup to accept your toolchain choice.
That's not a supported option, and you will run into trouble...
but that's the cost of trying to make a decade old system on a 9 year old OS work with current software.
comment:15 Changed 8 years ago by ken-cunningham-webuse
Hi Jeremy. Only thinking of doing this on PPC, where it appears there are no other options at the moment. Always greatly appreciate your brain and input. If I could fix the libunwind bug, I certainly would! Perhaps I'm getting there. Best, Ken
comment:16 Changed 8 years ago by ken-cunningham-webuse
by the way -- is there an elegant way to see which installed ports are using c++?
comment:17 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Good luck. I've had that libunwind bug on my "when I get to it" list for quite some time, but that's a very long list =/
As you run into trouble, feel free to bounce them off of me. Hopefully it goes smooth.
If it looks good, we could add a new option for configure.cxx_stdlib
like macports-libstdc++
which would do this fairly easily (although many ports will need to adapt).
---
which installed ports are using c++
grep -R 'c++' /opt/local
and port provides
.. ? =/
comment:18 Changed 8 years ago by dbevans (David B. Evans)
Thanks for the help in clarifying the issues, Jeremy. I'm not going to anything further on this ticket until the toolchain issues are solved but please keep me in the loop. Ken, I'll take you up on the offer for a ssh login account on one of your ppc machines. Contact me directly with details. It would be good to at least be able to verify issues and potential solutions on a ppc machine. The ppc buildbot is backed up almost two weeks at this point so won't be much help for debugging for a while.
comment:19 follow-up: 20 Changed 8 years ago by ken-cunningham-webuse
so far, on PPC, it looks like all the c++ ports I can identify are linked against /usr/lib/libstdc++.
/opt/local/lib/libpspell.15.dylib: /opt/local/lib/libpspell.15.dylib (compatibility version 17.0.0, current version 17.5.0) /opt/local/lib/libaspell.15.dylib (compatibility version 17.0.0, current version 17.5.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.12) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
on the other hand, I've got libstdc++.dylib all over the place:
$locate libstdc++.dylib /Developer/SDKs/MacOSX10.3.9.sdk/usr/lib/gcc/powerpc-apple-darwin7/4.0.0/libstdc++.dylib /Developer/SDKs/MacOSX10.3.9.sdk/usr/lib/gcc/powerpc-apple-darwin7/4.0.1/libstdc++.dylib /Developer/SDKs/MacOSX10.3.9.sdk/usr/lib/libstdc++.dylib /Developer/SDKs/MacOSX10.3.9.sdk/usr/power-apple-darwin8/4.0.1/libstdc++.dylib /Developer/SDKs/MacOSX10.4u.sdk/usr/i686-apple-darwin8/4.0.1/libstdc++.dylib /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.0/libstdc++.dylib /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.1/libstdc++.dylib /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/libstdc++.dylib /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/libstdc++.dylib /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libstdc++.dylib /Developer/SDKs/MacOSX10.4u.sdk/usr/power-apple-darwin8/4.0.1/libstdc++.dylib /Developer/usr/lib/gcc/i686-apple-darwin8/4.0.1/libstdc++.dylib /Developer/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/libstdc++.dylib /opt/local/lib/apple-gcc42/gcc/powerpc-apple-darwin8/4.2.1/libstdc++.dylib /opt/local/lib/gcc46/libstdc++.dylib /opt/local/lib/gcc48/libstdc++.dylib /opt/local/lib/gcc5/libstdc++.dylib /opt/local/lib/gcc6/libstdc++.dylib /usr/lib/gcc/i686-apple-darwin8/4.0.1/libstdc++.dylib /usr/lib/gcc/powerpc-apple-darwin8/4.0.1/libstdc++.dylib
but I'm going to take a bit of a leap that the only way this mess can work at all is if all these different copies of this library (all being built by gcc in the first place) are compatible with each other (not including the i686 copies for universal compiling on 10.4, of course). So that part should be OK.
comment:20 follow-up: 21 Changed 8 years ago by larryv (Lawrence Velázquez)
I don’t believe this is the case. MacPorts’ libstdc++ (/opt/local/*/libstdc++.dylib
) and Apple’s libstdc++ (everything else) are distinct. It doesn’t matter which compiler was used to build them.
What you have to do is make sure that all your ports use MacPorts’ libstdc++ and not Apple’s, which you would try to do by setting default_compilers
as Jeremy mentioned earlier.
comment:21 follow-up: 22 Changed 8 years ago by ken-cunningham-webuse
Replying to larryv@…:
make sure that all your ports use MacPorts’ libstdc++ and not Apple’s
even there, though -- there are (currently) 5 libstdc++.dylibs installed by MacPorts for different versions of gcc. They must be able to interact, Larry, otherwise everything would have to be built with only one version of one family of a c++ compiler, and we know that's not the case.
And if gcc5's version of libstdc++ can interact with gcc48's version, then why not apple-gcc-42's version too?
Ah -- sometimes this gets to be as confusing as those time-travel movies where you go back and bump into a previous version of yourself :>
comment:22 Changed 8 years ago by larryv (Lawrence Velázquez)
Replying to ken.cunningham.webuse@…:
even there, though -- there are (currently) 5 libstdc++.dylibs installed by MacPorts for different versions of gcc. They must be able to interact, Larry, otherwise everything would have to be built with only one version of one family of a c++ compiler, and we know that's not the case.
You’ll find that ${prefix}/lib/gcc{46,47,48,49,5,6}/libstdc++.6.dylib
are all symlinks to the single libstdc++ provided by libgcc
at ${prefix}/lib/libgcc/libstdc++.6.dylib
.
Ah -- sometimes this gets to be as confusing as those time-travel movies where you go back and bump into a previous version of yourself :>
Indeed!
comment:24 Changed 8 years ago by ken-cunningham-webuse
Just add an option here, <https://github.com/fangism/llvm> has a version of clang/llvm for powerpc darwin8 that is noted to be @3.7.0.... I see David Fang was around MacPorts several years ago, but now seems to be using fink. C++11 is specifically mentioned.
At this moment I have no idea what the status of this toolchain is or what might / might not be involved getting it into macports.
comment:25 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
AFAIK, there's nothing in David's patch series that isn't in ours. I incorporated his patches a couple years ago and have since upstreamed some and continually rebased the others.
comment:26 Changed 8 years ago by dbevans (David B. Evans)
Well, if there's any progress in this area, I vote to use gtk3 as a proof of concept test case. It's really blocking any progress with current GNOME ports for the ppc folks. I really don't understand the failure mode reported here but I see lots of similar reports on other builds when googling. So it's not uncommon. I'm assuming it's a tool chain issue but it bothers me that the previous version builds fine and this one doesn't. So it makes me think there might be a critical code change that, if identified, could be worked around. Or maybe it's chaos theory in action. Just musing.
comment:27 Changed 8 years ago by ken-cunningham-webuse
As so often happens, it doesn't take me too long to reach the edges of my knowledge in these areas. I notice the system-installed /usr/lib/libstdc++.6.dylib is versioned like this:
$ otool -L /usr/lib/libstdc++.6.dylib /usr/lib/libstdc++.6.dylib: /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.5) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
and the macports-installed /opt/local/lib/gcc6/libstdc++.dylib is versioned like this:
$ otool -L /opt/local/lib/libgcc/libstdc++.6.dylib /opt/local/lib/libgcc/libstdc++.6.dylib: /opt/local/lib/libgcc/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.22.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /opt/local/lib/libgcc/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.12)
I'm looking specifically at the fact that the system version and macports version of libstdc++.6.dylib both have a compatibility version of 7.0.0. That would make someone like me think these two c++ libraries would be compatible -- and one would expect the minor version changes (4 vs 22) to represent certain enhancements or fixes that would not be expected to affect compatibility.
Which - if reasonably accurate - would make the whole 'move forward' process considerably easier...
comment:28 Changed 8 years ago by ken-cunningham-webuse
FYI - on 10.4 Tiger PPC:
$ sudo port -v install gtk3 configure.compiler=macports-gcc-6
results in success
gtk3 @3.22.1_0+x11 (active) platform='darwin 8' archs='ppc'
without touching the portfile.
comment:29 Changed 8 years ago by dbevans (David B. Evans)
Cc: | ken.cunningham.webuse@… added |
---|
You're on your own here. The basic idea is that you want to come up with a tool set that you will use for everything on this platform. And the dependencies too. Did you build all gtk3's dependencies with gcc6 (and it's runtime)?
So the test is not whether gtk3 builds (a good start) but whether everything you want to install (say the rest of the GNOME ports) build as well. Then there's the +quartz issue. This is where things get interesting. gcc6 has some support for objective C 1.0 and some 2.0 features but whether this will work with Apple's objective C syntax and link with Apple frameworks is an interesting unknown in my mind.
So the next thing I would try is building gtk3 +quartz and see what happens.
By the way, gtk3 builds a demo app, gtk3-demo, that demonstrates most of the API. Give that a try and see what happens. For this to look right you need to install gnome-themes-standard too. Would be interesting if I could run this remotely using ssh -X.
This all goes toward establishing a tool chain that can be used reliably on your platform. That combined with your port repo overlay should be the biggest part being able to build and use modern software on such an old platform.
comment:30 Changed 8 years ago by dbevans (David B. Evans)
Cc: | braumann@… added |
---|---|
Keywords: | powerpc added |
BTW, in comment:ticket:52605:4 braumann@... reports that gtk3 @3.22.1_0 builds successfully for him on Leopard PPC.
comment:32 Changed 8 years ago by ken-cunningham-webuse
to be noted that although gtk3 builds on Leopard, it actually doesn't seem to work. (oddly, it works quite well on TIger -- go figure).
This error happens both with the standard compiler chain build (currently at gtk3 @3.20.9_0+x11) and also with the gcc6 version building the 3.22.1_0.
I tried a lot of different things to fix this - detailed below.
(gtk3-demo:69297): Gtk-WARNING **: Failed to get the GNOME session proxy: The name org.gnome.SessionManager is not owned (gtk3-demo:69297): Gtk-WARNING **: Failed to get the Xfce session proxy: The name org.xfce.SessionManager is not owned (gtk3-demo:69297): Gtk-WARNING **: Failed to get an inhibit portal proxy: The name org.freedesktop.portal.Desktop is not owned dyld: lazy symbol binding failed: Symbol not found: _CFStringIsSurrogateHighCharacter Referenced from: /opt/macports-gcccxx11/lib/libpangocairo-1.0.0.dylib Expected in: dynamic lookup dyld: Symbol not found: _CFStringIsSurrogateHighCharacter Referenced from: /opt/macports-gcccxx11/lib/libpangocairo-1.0.0.dylib Expected in: dynamic lookup Trace/BPT trap
fix attempts
================ first thought - brought in symbols from 10.6 only presumably due to error in AvailabilityInternal.h fixed AvailabilityInternal.h and rebuilt -- > fail ============ try rebuilding pango with stock macports compiler --> fail ============= try rebuilding pango with sudo port install pango -quartz+x11 --> fails -- portfile forces +quartz ================== edit portfile to disable force of +quartz and sudo port install pango -quartz+x11 success with building pango without +quartz pango @1.40.3_0+x11 (active) platform='darwin 9' archs='ppc' but fails again ======= try changing post-configure, edit to HAVE_CORE_TEXT 0 in config.h, and then building pango installs without error but still same error -- that is very frustrating =============== tried editing AvailabilityInternal.h to #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_10_5 =====>fail =================== try editing this block: // set up internal macros // KENFIX - REMOVE 10_6 refs //#if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_6 // #define __AVAILABILITY_INTERNAL__MAC_10_6 __AVAILABILITY_INTERNAL_UNAVAILABLE //#elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_6 // #define __AVAILABILITY_INTERNAL__MAC_10_6 __AVAILABILITY_INTERNAL_WEAK_IMPORT //#else // #define __AVAILABILITY_INTERNAL__MAC_10_6 //#endif // END KENFIX STILL FAILS -- so changed it back ========= try editing to: #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_10_5 in /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/TextCommon.h ===> FAILS ============ try adding the following to macports.conf macosx_deployment_target 10.5 ===> fails
all I have left in my quiver of thoughts is to edit the source for pango
work/pango-1.40.3/pango/pangocoretext-shape.c
to change the coretext calls
_CFStringIsSurrogateHighCharacter
to 10.5 friendly versions
UCIsSurrogateHighCharacter (in TextCommon.h)
but -- it seems there must be a more elegant way to get the weak linking to stop failing on 10.5 that I'm not thinking of ....
comment:33 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
comment:34 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Also, file a bug against pango to stop using -undefined dynamic
as that usually just leads to problems.
comment:36 Changed 8 years ago by ken-cunningham-webuse
you must be an Apple engineer :>
I tried most of the LeopardSDKFixes -- I was a bit nervous about copying libgcc_s.10.5.dylib from SnowLeopard (Intel) into Leopard (PPC) but otool does say there is PPC code in it, so it would likely work. But now I think the Availability tests are not actually the root of the problem. Leopard implements just enough CoreText to pass the test, but not enough to fulfill the needs. So it fails at runtime.
"-undefined dynamic" - which I didn't know much about before -- would be exactly the problem.
It should be possible to make Leopard fail the pango CoreText test (which is what I presume must happen on Tiger) and then it should work. Or edit the code in the file mentioned.
comment:37 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
There actually is no code in libgcc_s.10.5.dylib. It is just a stub dylib for linking.
CFStringIsSurrogateHighCharacter was added in Snow Leopard. The use of -undefined dynamic
masks this problem.
comment:38 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Small correction... -undefined dynamic_lookup
, not -undefined dynamic
Kicked off my Leopard VM, and indeed we see the compiler warnings about the implicit declaration:
pangocoretext-shape.c:153:11: warning: implicit declaration of function 'CFStringIsSurrogateHighCharacter' is invalid in C99 [-Wimplicit-function-declaration] if (CFStringIsSurrogateHighCharacter (CFStringGetCharacterAtIndex (cstr, i)) && ^ pangocoretext-shape.c:155:11: warning: implicit declaration of function 'CFStringIsSurrogateLowCharacter' is invalid in C99 [-Wimplicit-function-declaration] CFStringIsSurrogateLowCharacter (CFStringGetCharacterAtIndex (cstr, i + 1))) ^ pangocoretext-shape.c:199:16: warning: implicit declaration of function 'CFStringGetLongCharacterForSurrogatePair' is invalid in C99 [-Wimplicit-function-declaration] return CFStringGetLongCharacterForSurrogatePair (ch, ch2); ^
and the subsequent usage of -undefined dynamic_lookup (via -Wl,-undefined -Wl,dynamic_lookup):
libtool: link: /opt/local/bin/clang-mp-3.7 -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o .libs/libpangocairo-1.0.0.dylib .libs/pangocairo-context.o .libs/pangocairo-font.o .libs/pangocairo-fontmap.o .libs/pangocairo-render.o .libs/pangocairo-fcfont.o .libs/pangocairo-fcfontmap.o .libs/pangocoretext.o .libs/pangocoretext-fontmap.o .libs/pangocoretext-shape.o .libs/pangocairo-coretextfont.o .libs/pangocairo-coretextfontmap.o -framework CoreFoundation -framework ApplicationServices -L/opt/local/lib ./.libs/libpango-1.0.dylib -lcairo ./.libs/libpangoft2-1.0.dylib /opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_x11_pango/pango/work/pango-1.40.3/pango/.libs/libpango-1.0.dylib -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lintl -lharfbuzz -lfontconfig -lm -lfreetype -arch x86_64 -Os -arch x86_64 -arch i386 -Wl,-headerpad_max_install_names -arch x86_64 -arch i386 -Wl,-dylib_file -Wl,/opt/local/lib/libpango-1.0.0.dylib:/opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_x11_pango/pango/work/pango-1.40.3/pango/.libs/libpango-1.0.dylib -framework CoreFoundation -framework ApplicationServices -install_name /opt/local/lib/libpangocairo-1.0.0.dylib -compatibility_version 4001 -current_version 4001.3 -Wl,-single_module -Wl,-exported_symbols_list,.libs/libpangocairo-1.0-symbols.expsym
comment:39 Changed 8 years ago by ken-cunningham-webuse
Yep. Getting it.
Found a 'hack' to fix pango on Leopard. FInd this bit in the configure script
if ac_fn_c_try_link "$LINENO"; then : have_core_text=yes else have_core_text=no fi
and change to (duh - should have just done this in the first place):
if ac_fn_c_try_link "$LINENO"; then : have_core_text=no else have_core_text=no fi
and rebuild pango and core text is forced out and the missing symbols disappear. I'd make a reinplace to do this for everyone, but that's not too popular these days. So anyone on this list can just do it for themselves, if they wish.
Now to see what comes next :> Thanks Jeremy.
comment:40 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
The pango issue is fixed in r154022 (I didn't fix the dynamic_lookup issue).
comment:41 follow-up: 42 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Meanwhile the version of GTK3 has grown to 3.22.1_0 – and still fails to built. After the described changes of the Leopard SDK I upgraded pango (to pango @1.40.3_1+quartz+x11
) and started again the build of GTK3 – and a new error, I think, appeared:
/bin/sh ../libtool --tag=CC --mode=link /opt/local/bin/clang-mp-3.4 -arch ppc -pipe -Os -fstrict-aliasing -arch ppc -Wall -version-info 2200:1:2200 -export-dynamic -rpath /opt/local/lib -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc -o libgdk-3.la -rpath /opt/local/lib libgdk_3_la-gdkcolor.lo libgdk_3_la-gdk-private.lo libgdk_3_la-gdk.lo libgdk_3_la-gdkapplaunchcontext.lo libgdk_3_la-gdkcairo.lo libgdk_3_la-gdkcursor.lo libgdk_3_la-gdkdeprecated.lo libgdk_3_la-gdkdevice.lo libgdk_3_la-gdkdevicepad.lo libgdk_3_la-gdkdevicetool.lo libgdk_3_la-gdkdevicemanager.lo libgdk_3_la-gdkdisplay.lo libgdk_3_la-gdkdisplaymanager.lo libgdk_3_la-gdkdnd.lo libgdk_3_la-gdkdrawingcontext.lo libgdk_3_la-gdkevents.lo libgdk_3_la-gdkframetimings.lo libgdk_3_la-gdkgl.lo libgdk_3_la-gdkglcontext.lo libgdk_3_la-gdkglobals.lo libgdk_3_la-gdkkeys.lo libgdk_3_la-gdkkeyuni.lo libgdk_3_la-gdkmonitor.lo libgdk_3_la-gdkoffscreenwindow.lo libgdk_3_la-gdkframeclock.lo libgdk_3_la-gdkframeclockidle.lo libgdk_3_la-gdkpango.lo libgdk_3_la-gdkpixbuf-drawable.lo libgdk_3_la-gdkproperty.lo libgdk_3_la-gdkrectangle.lo libgdk_3_la-gdkrgba.lo libgdk_3_la-gdkscreen.lo libgdk_3_la-gdkseat.lo libgdk_3_la-gdkseatdefault.lo libgdk_3_la-gdkselection.lo libgdk_3_la-gdkvisual.lo libgdk_3_la-gdkwindow.lo libgdk_3_la-gdkwindowimpl.lo libgdk_3_la-gdkenumtypes.lo libgdk_3_la-gdkmarshalers.lo libgdk_3_la-gdkresources.lo -L/opt/local/lib -lpangocairo-1.0 -lpango-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -lfontconfig -lfreetype -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lXfixes -lcairo -lX11 -lXext -lepoxy -lm x11/libgdk-x11.la libtool: link: /opt/local/bin/clang-mp-3.4 -arch ppc -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o .libs/libgdk-3.0.dylib .libs/libgdk_3_la-gdkcolor.o .libs/libgdk_3_la-gdk-private.o .libs/libgdk_3_la-gdk.o .libs/libgdk_3_la-gdkapplaunchcontext.o .libs/libgdk_3_la-gdkcairo.o .libs/libgdk_3_la-gdkcursor.o .libs/libgdk_3_la-gdkdeprecated.o .libs/libgdk_3_la-gdkdevice.o .libs/libgdk_3_la-gdkdevicepad.o .libs/libgdk_3_la-gdkdevicetool.o .libs/libgdk_3_la-gdkdevicemanager.o .libs/libgdk_3_la-gdkdisplay.o .libs/libgdk_3_la-gdkdisplaymanager.o .libs/libgdk_3_la-gdkdnd.o .libs/libgdk_3_la-gdkdrawingcontext.o .libs/libgdk_3_la-gdkevents.o .libs/libgdk_3_la-gdkframetimings.o .libs/libgdk_3_la-gdkgl.o .libs/libgdk_3_la-gdkglcontext.o .libs/libgdk_3_la-gdkglobals.o .libs/libgdk_3_la-gdkkeys.o .libs/libgdk_3_la-gdkkeyuni.o .libs/libgdk_3_la-gdkmonitor.o .libs/libgdk_3_la-gdkoffscreenwindow.o .libs/libgdk_3_la-gdkframeclock.o .libs/libgdk_3_la-gdkframeclockidle.o .libs/libgdk_3_la-gdkpango.o .libs/libgdk_3_la-gdkpixbuf-drawable.o .libs/libgdk_3_la-gdkproperty.o .libs/libgdk_3_la-gdkrectangle.o .libs/libgdk_3_la-gdkrgba.o .libs/libgdk_3_la-gdkscreen.o .libs/libgdk_3_la-gdkseat.o .libs/libgdk_3_la-gdkseatdefault.o .libs/libgdk_3_la-gdkselection.o .libs/libgdk_3_la-gdkvisual.o .libs/libgdk_3_la-gdkwindow.o .libs/libgdk_3_la-gdkwindowimpl.o .libs/libgdk_3_la-gdkenumtypes.o .libs/libgdk_3_la-gdkmarshalers.o .libs/libgdk_3_la-gdkresources.o -Wl,-force_load,x11/.libs/libgdk-x11.a -L/opt/local/lib /opt/local/lib/libpangocairo-1.0.dylib /opt/local/lib/libpango-1.0.dylib /opt/local/lib/libgdk_pixbuf-2.0.dylib /opt/local/lib/libcairo-gobject.dylib /opt/local/lib/libgio-2.0.dylib /opt/local/lib/libgobject-2.0.dylib /opt/local/lib/libglib-2.0.dylib /opt/local/lib/libintl.dylib /opt/local/lib/libfontconfig.dylib /opt/local/lib/libfreetype.dylib /opt/local/lib/libXinerama.dylib /opt/local/lib/libXi.dylib /opt/local/lib/libXrandr.dylib /opt/local/lib/libXcursor.dylib /opt/local/lib/libXrender.dylib /opt/local/lib/libXcomposite.dylib /opt/local/lib/libXdamage.dylib /opt/local/lib/libxcb.dylib /opt/local/lib/libXau.dylib /opt/local/lib/libXdmcp.dylib /opt/local/lib/libXfixes.dylib /opt/local/lib/libcairo.dylib /opt/local/lib/libX11.dylib /opt/local/lib/libXext.dylib /opt/local/lib/libepoxy.dylib -lm -arch ppc -Os -arch ppc -Wl,-headerpad_max_install_names -arch ppc -framework CoreFoundation -framework ApplicationServices -pthread -install_name /opt/local/lib/libgdk-3.0.dylib -compatibility_version 2201 -current_version 2201.1 -Wl,-single_module ld: illegal text-relocation to cstring in .libs/libgdk_3_la-gdkcolor.o from _gdk_color_copy in .libs/libgdk_3_la-gdkcolor.o for architecture ppc collect2: ld returned 1 exit status clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation) make[4]: *** [libgdk-3.la] Error 1 make[4]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.1/gdk' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.1/gdk' make[2]: *** [all] Error 2 make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.1/gdk' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.1' make: *** [all] Error 2 make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.1' Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.1" && /usr/bin/make -w all CC="/opt/local/bin/clang-mp-3.4 -arch ppc" CC_FOR_BUILD="/opt/local/bin/clang-mp-3.4 -arch ppc" V=1 CPP_FOR_BUILD="/usr/bin/cpp"
A rebuild of gdk-pixbuf2 @2.36.0_0+x11
necessary?
Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Attachment: | main.3.log added |
---|
main.log of gtk3 @3.22.1_0
comment:42 follow-up: 43 Changed 8 years ago by ken-cunningham-webuse
Success. I confirm good success with this now, on 10.5 PPC. Hope this proves helpful to people.
gtk3 3.22.1_0 builds without error, and the gtk3-demo appears to work as it should as well. I also had to install xorg-server on 10.5 to get it to work correctly, but it's better to have the current version of that anyway.
For this particular version, I built gtk3 @3.22.1 with gcc6, and most, but not all, the dependents with gcc6 as well. Some of the dependents will not build with gcc6, and have to be built with the default compiler (which in most cases appears to be apple's gcc-4.2). None of those ports appear to contain c++ code, AFAIK. I still can only get to gtk @3.20.9_0+x11 using the default 10.5 tool chain.
/bin/sh ../libtool --tag=CC --mode=link /opt/local/bin/clang-mp-3.4 -arch ppc
Peter - why is your system trying to build gtk with clang-3.4? I don't think that will work on PPC. You can build gtk3@3.22.1 with gcc6 (and likely gcc5 or gcc48) on PPC at present. YMMV. I don't at present build anything on 10.5 PPC with clang.
comment:43 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Replying to ken.cunningham.webuse@…:
/bin/sh ../libtool --tag=CC --mode=link /opt/local/bin/clang-mp-3.4 -arch ppc
Peter - why is your system trying to build gtk with clang-3.4? I don't think that will work on PPC. You can build gtk3@3.22.1 with gcc6 (and likely gcc5 or gcc48) on PPC at present. YMMV. I don't at present build anything on 10.5 PPC with clang.
Because Portfile dictates this? Beside, there are these settings active:
pete 314 /\ port select --summary Name Selected Options ==== ======== ======= clang mp-clang-3.4 mp-clang-3.3 mp-clang-3.4 none cython cython27 cython27 none db none none gcc apple-gcc42 apple-gcc42 gcc40 gcc42 llvm-gcc42 mp-gcc47 mp-gcc48 mp-gcc49 mp-gcc5 mp-gcc6 none llvm mp-llvm-3.4 mp-llvm-3.3 mp-llvm-3.4 none nosetests nosetests27 nosetests27 none python python27 python25-apple python27 python35 none python2 python27 python25-apple python27 none python3 python35 python35 none
Configure
outputs these lines:
checking for gcc... /opt/local/bin/clang-mp-3.4 -arch ppc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether /opt/local/bin/clang-mp-3.4 -arch ppc accepts -g... yes checking for /opt/local/bin/clang-mp-3.4 -arch ppc option to accept ISO C89... none needed checking whether /opt/local/bin/clang-mp-3.4 -arch ppc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of /opt/local/bin/clang-mp-3.4 -arch ppc... gcc3 checking how to run the C preprocessor... /opt/local/bin/clang-mp-3.4 -arch ppc -E checking for gcc... gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... (cached) none needed checking whether gcc understands -c and -o together... (cached) yes checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking whether /opt/local/bin/clang-mp-3.4 -arch ppc and cc understand -c and -o together... yes
Config.log
contains findings of Clang and GCC mixed:
configure:4157: checking for gcc configure:4184: result: /opt/local/bin/clang-mp-3.4 -arch ppc configure:4413: checking for C compiler version configure:4422: /opt/local/bin/clang-mp-3.4 -arch ppc --version >&5 clang version 3.4.2 (tags/RELEASE_34/dot2-final) Target: powerpc-apple-darwin9.8.0 Thread model: posix configure:4433: $? = 0 configure:4422: /opt/local/bin/clang-mp-3.4 -arch ppc -v >&5 clang version 3.4.2 (tags/RELEASE_34/dot2-final) Target: powerpc-apple-darwin9.8.0 Thread model: posix Selected GCC installation: configure:4433: $? = 0 configure:4422: /opt/local/bin/clang-mp-3.4 -arch ppc -V >&5 clang: error: argument to '-V' is missing (expected 1 value) clang: error: no input files configure:4433: $? = 1 configure:4422: /opt/local/bin/clang-mp-3.4 -arch ppc -qversion >&5 clang: error: unknown argument: '-qversion' clang: error: no input files configure:4433: $? = 1 configure:4453: checking whether the C compiler works configure:4475: /opt/local/bin/clang-mp-3.4 -arch ppc -pipe -Os -fstrict-aliasing -arch ppc -I/opt/local/include -DX_LOCALE -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc conftest.c >&5 configure:4479: $? = 0 configure:4527: result: yes configure:4530: checking for C compiler default output file name configure:4532: result: a.out configure:4538: checking for suffix of executables configure:4545: /opt/local/bin/clang-mp-3.4 -arch ppc -o conftest -pipe -Os -fstrict-aliasing -arch ppc -I/opt/local/include -DX_LOCALE -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc conftest.c >&5 configure:4549: $? = 0 configure:4571: result: configure:4593: checking whether we are cross compiling configure:4601: /opt/local/bin/clang-mp-3.4 -arch ppc -o conftest -pipe -Os -fstrict-aliasing -arch ppc -I/opt/local/include -DX_LOCALE -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc conftest.c >&5 configure:4605: $? = 0 configure:4612: ./conftest configure:4616: $? = 0 configure:4631: result: no configure:4636: checking for suffix of object files configure:4658: /opt/local/bin/clang-mp-3.4 -arch ppc -c -pipe -Os -fstrict-aliasing -arch ppc -I/opt/local/include -DX_LOCALE conftest.c >&5 configure:4662: $? = 0 configure:4683: result: o configure:4687: checking whether we are using the GNU C compiler configure:4706: /opt/local/bin/clang-mp-3.4 -arch ppc -c -pipe -Os -fstrict-aliasing -arch ppc -I/opt/local/include -DX_LOCALE conftest.c >&5 configure:4706: $? = 0 configure:4715: result: yes configure:4724: checking whether /opt/local/bin/clang-mp-3.4 -arch ppc accepts -g configure:4744: /opt/local/bin/clang-mp-3.4 -arch ppc -c -g -I/opt/local/include -DX_LOCALE conftest.c >&5 configure:4744: $? = 0 configure:4785: result: yes configure:4802: checking for /opt/local/bin/clang-mp-3.4 -arch ppc option to accept ISO C89 configure:4865: /opt/local/bin/clang-mp-3.4 -arch ppc -c -pipe -Os -fstrict-aliasing -arch ppc -I/opt/local/include -DX_LOCALE conftest.c >&5 configure:4865: $? = 0 configure:4878: result: none needed configure:4903: checking whether /opt/local/bin/clang-mp-3.4 -arch ppc understands -c and -o together configure:4925: /opt/local/bin/clang-mp-3.4 -arch ppc -c conftest.c -o conftest2.o configure:4928: $? = 0 configure:4925: /opt/local/bin/clang-mp-3.4 -arch ppc -c conftest.c -o conftest2.o configure:4928: $? = 0 configure:4940: result: yes configure:4968: checking for style of include used by make configure:4996: result: GNU configure:5022: checking dependency style of /opt/local/bin/clang-mp-3.4 -arch ppc configure:5133: result: gcc3 configure:5153: checking how to run the C preprocessor configure:5184: /opt/local/bin/clang-mp-3.4 -arch ppc -E -I/opt/local/include -DX_LOCALE conftest.c configure:5184: $? = 0 configure:5198: /opt/local/bin/clang-mp-3.4 -arch ppc -E -I/opt/local/include -DX_LOCALE conftest.c conftest.c:9:10: fatal error: 'ac_nonexistent.h' file not found #include <ac_nonexistent.h> ^ 1 error generated. configure:5198: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "gtk+" | #define PACKAGE_TARNAME "gtk+" | #define PACKAGE_VERSION "3.22.1" | #define PACKAGE_STRING "gtk+ 3.22.1" | #define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B" | #define PACKAGE_URL "" | /* end confdefs.h. */ | #include <ac_nonexistent.h> configure:5223: result: /opt/local/bin/clang-mp-3.4 -arch ppc -E configure:5243: /opt/local/bin/clang-mp-3.4 -arch ppc -E -I/opt/local/include -DX_LOCALE conftest.c configure:5243: $? = 0 configure:5257: /opt/local/bin/clang-mp-3.4 -arch ppc -E -I/opt/local/include -DX_LOCALE conftest.c conftest.c:9:10: fatal error: 'ac_nonexistent.h' file not found #include <ac_nonexistent.h> ^ 1 error generated. configure:5257: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "gtk+" | #define PACKAGE_TARNAME "gtk+" | #define PACKAGE_VERSION "3.22.1" | #define PACKAGE_STRING "gtk+ 3.22.1" | #define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B" | #define PACKAGE_URL "" | /* end confdefs.h. */ | #include <ac_nonexistent.h> configure:5341: checking for gcc configure:5357: found /opt/local/bin/gcc configure:5368: result: gcc configure:5597: checking for C compiler version configure:5606: gcc --version >&5 powerpc-apple-darwin9-gcc-apple-4.2.4 (GCC) 4.2.4 (Apple Inc. build 5666) (dot 3) (MacPorts apple-gcc42 5666.3_15+gpl3) 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. configure:5617: $? = 0 configure:5606: gcc -v >&5 Using built-in specs. Target: powerpc-apple-darwin9 Configured with: /opt/local/var/macports/build/_opt_mports_trunk_dports_lang_apple-gcc42/apple-gcc42/work/objroot/src/configure --disable-checking --enable-werror --prefix=/opt/local --mandir=/opt/local/share/man --enable-languages=c,c++,objc,obj-c++ --libexecdir=/opt/local/libexec/apple-gcc42 --libdir=/opt/local/lib/apple-gcc42 --includedir=/opt/local/include/apple-gcc42 --program-suffix=-apple-4.2 --with-system-zlib --disable-nls --with-slibdir=/usr/lib --build=powerpc-apple-darwin9 --with-gxx-include-dir=/usr/include/c++/4.0.0 --host=powerpc-apple-darwin9 --target=powerpc-apple-darwin9 Thread model: posix gcc version 4.2.4 (Apple Inc. build 5666) (dot 3) (MacPorts apple-gcc42 5666.3_15+gpl3) configure:5617: $? = 0 configure:5606: gcc -V >&5 gcc-apple-4.2: argument to `-V' is missing configure:5617: $? = 1 configure:5606: gcc -qversion >&5 powerpc-apple-darwin9-gcc-apple-4.2.4: no input files configure:5617: $? = 1 configure:5621: checking whether we are using the GNU C compiler configure:5649: result: yes configure:5658: checking whether gcc accepts -g configure:5678: /opt/local/bin/clang-mp-3.4 -arch ppc -c -pipe -Os -fstrict-aliasing -arch ppc -I/opt/local/include -DX_LOCALE conftest.c >&5 configure:5678: $? = 0 configure:5719: result: yes configure:5736: checking for gcc option to accept ISO C89 configure:5812: result: none needed configure:5837: checking whether gcc understands -c and -o together configure:5874: result: yes configure:5893: checking dependency style of gcc configure:6004: result: gcc3 configure:6024: checking how to run the C preprocessor configure:6055: /opt/local/bin/clang-mp-3.4 -arch ppc -E -I/opt/local/include -DX_LOCALE conftest.c configure:6055: $? = 0 configure:6069: /opt/local/bin/clang-mp-3.4 -arch ppc -E -I/opt/local/include -DX_LOCALE conftest.c conftest.c:9:10: fatal error: 'ac_nonexistent.h' file not found #include <ac_nonexistent.h> ^ 1 error generated. configure:6069: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "gtk+" | #define PACKAGE_TARNAME "gtk+" | #define PACKAGE_VERSION "3.22.1" | #define PACKAGE_STRING "gtk+ 3.22.1" | #define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B" | #define PACKAGE_URL "" | /* end confdefs.h. */ | #include <ac_nonexistent.h> configure:6094: result: gcc -E configure:6114: /opt/local/bin/clang-mp-3.4 -arch ppc -E -I/opt/local/include -DX_LOCALE conftest.c configure:6114: $? = 0 configure:6128: /opt/local/bin/clang-mp-3.4 -arch ppc -E -I/opt/local/include -DX_LOCALE conftest.c conftest.c:9:10: fatal error: 'ac_nonexistent.h' file not found #include <ac_nonexistent.h> ^ 1 error generated. configure:6128: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "gtk+" | #define PACKAGE_TARNAME "gtk+" | #define PACKAGE_VERSION "3.22.1" | #define PACKAGE_STRING "gtk+ 3.22.1" | #define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B" | #define PACKAGE_URL "" | /* end confdefs.h. */ | #include <ac_nonexistent.h> configure:6166: checking whether /opt/local/bin/clang-mp-3.4 -arch ppc and cc understand -c and -o together configure:6197: /opt/local/bin/clang-mp-3.4 -arch ppc -c conftest.c -o conftest2.o >&5 configure:6201: $? = 0 configure:6207: /opt/local/bin/clang-mp-3.4 -arch ppc -c conftest.c -o conftest2.o >&5 configure:6211: $? = 0 configure:6222: cc -c conftest.c >&5 configure:6226: $? = 0 configure:6234: cc -c conftest.c -o conftest2.o >&5 configure:6238: $? = 0 configure:6244: cc -c conftest.c -o conftest2.o >&5 configure:6248: $? = 0 configure:6266: result: yes
comment:44 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
It's port doing this:
DEBUG: Environment: CC='/opt/local/bin/clang-mp-3.4 -arch ppc' CC_PRINT_OPTIONS='YES' CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/.CC_PRINT_OPTIONS' CFLAGS='-pipe -Os -fstrict-aliasing -arch ppc' CPATH='/opt/local/include' CPPFLAGS='-I/opt/local/include -DX_LOCALE' CXX='/opt/local/bin/clang++-mp-3.4' CXXFLAGS='-pipe -Os -stdlib=libstdc++ -arch ppc' F77FLAGS='-m32' F90FLAGS='-pipe -Os -m32' FCFLAGS='-pipe -Os -m32' FFLAGS='-pipe -Os' INSTALL='/usr/bin/install -c' LDFLAGS='-L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc' LIBRARY_PATH='/opt/local/lib' MACOSX_DEPLOYMENT_TARGET='10.5' OBJC='/opt/local/bin/clang-mp-3.4' OBJCFLAGS='-pipe -Os -arch ppc' OBJCXX='/opt/local/bin/clang++-mp-3.4' OBJCXXFLAGS='-pipe -Os -stdlib=libstdc++ -arch ppc' DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.1" && ./configure --prefix=/opt/local --enable-static --disable-glibtest --enable-introspection --disable-cloudprint --disable-mir-backend --disable-wayland-backend --disable-schemas-compile gio_can_sniff=yes --enable-xinerama --x-include=/opt/local/include --x-lib=/opt/local/lib --enable-x11-backend' DEBUG: Executing command line: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/gtk+-3.22.1" && ./configure --prefix=/opt/local --enable-static --disable-glibtest --enable-introspection --disable-cloudprint --disable-mir-backend --disable-wayland-backend --disable-schemas-compile gio_can_sniff=yes --enable-xinerama --x-include=/opt/local/include --x-lib=/opt/local/lib --enable-x11-backend
comment:45 follow-up: 47 Changed 8 years ago by ken-cunningham-webuse
OK, Peter, I might be able to help you. This works for me here on my 6 functional PPC machines.
- clang would not appear to be useful, at present, on PPC. Nobody on Earth likely knows more about this than Jeremy, and that's what he says above (comment 9). So I would suggest you uninstall your installations of clang-3.3 and clang-3.4 and forget about them for the time being. Perhaps someone might make clang-3.7 work on PPC one day, with libc++. I doubt it, but if so, then we will all flock to it. Until then, clang on PPC is not appearing to be an option to me at present.
- look at your /opt/local/etc/macports/macports.conf file and make sure you haven't messed with it at all. You want default values in there. If you added anything, strongly consider deleting it.
- clean out any partially-installed ports. Look in /opt/local/var/macports/build to see if you have any left behind.
sudo port clean
them.
- now you need to decide what to do. (Unless you feel you really know what you're doing, or are a glutton for punishment, I suggest you look carefully at option a.)
- Stick with ports that are known to work with the default toolchain and hope for someone to fix clang-3.7 someday. This is safest, but you won't be fully up-to-date with the world with every port, which may or may not matter to you. If you decide to do this, set up a local repository for ports (as I described in comment8 above). This takes 2 minutes to do. Move the older portfile for gtk3 @3.20.9_0 into there, with it's folder structure (gnome/gtk3). You are done. gtk3 will never again try to update. All other ports will move along. As you come across ports that won't update any longer, move them in there too. I have set up repositories like this for Tiger, Leopard, and SnowLeopard, and shared them on github. You can use mine if you want, or make your own.
- Use the default toolchain for most things, but when a port like gtk3 won't update, if you need the update, try a newer gcc. This works, as above (comment 28).
$ sudo port -v install gtk3 configure.compiler=macports-gcc-6
will force gtk3 to install using the compiler of your choice, in this case gcc6. it will override any blacklisting in the portfile. If it builds successfully, which it does in this case, you won't know for certain if you might have a problem with c++ libraries. I believe, actually, everything will probably usually work corrrectly, but I know 0.01% of what Jeremy knows and he says you could have problems with c++ libraries doing this. Basically they could speak slightly different dialects. Some things may not interact correctly, even if they build correctly. You'll have to test them yourself. You might have problems. You might not. - use gcc6 to build mostly everything, but use the default toolchain when gcc6 won't work. This would solve the dialect problem, if everything built with gcc6. Most things do, as it turns out. Unfortunately, a few ports do not. To do this, you either need to uninstall all your ports and start over (yuck), or at least identify the c++ ports (see comment 17 above) uninstall those, and proceed as below:
put this at the top of your /opt/local/etc/macports/macports.conf
cxx_stdlib macports-libstdc++ buildfromsource always default_compilers macports-gcc-6 macports-gcc-5 macports-gcc-4.8
this will override any compiler selections in the portfile, and it appears to override any blacklisting in the portfile as well and also, somewhat surprisingly, it seems to override the cxx11 portgroup. It just works. I haven't needed to touch a single portfile so far. Then try to reinstall your uninstalled ports. Certain ports will not build. When that happens, you might often find fixes in homebrew or on Google to make gcc6 work, as usually many have been down this road before. It's usually something simple, like better error checking in newer gcc versions that you need to override. Sometimes it is not simple (like fancier objective-c that gcc6 doesn't understand). In those cases, you need to temporarily disable your default compiler like this:
cxx_stdlib macports-libstdc++ buildfromsource always #default_compilers macports-gcc-6 macports-gcc-5 macports-gcc-4.8
build that one port that wouldn't build with gcc6 with the default toolchain (which it will do automatically for your), and then remove that # to re-enable your default compilers. Once again, the dialect problem might occur if the port contains c++ code. You'll have to test it out. Once again, I have never actually seen a problem doing this, but a problem could happen.
If you find you're mostly interested in open-source software for the PPC machine you're using, and the Mac software is no longer too relevant to you, it would make sense to look into PPC variants of Unix instead -- there are Debian and I believe Ubuntu versions for PPC that often will be installable.
comment:46 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Note that cxx_stdlib macports-libstdc++
actually isn't supported by the toolchain. Having this in your macports.conf file right now has the nice effect of causing an error (basically, "I don't know what macports-libstdc++ is") if something ends up trying to use clang++ rather than g++-mp-6 to compile C++ code (which is what you want).
Option 4c is probably the best approach if you want a modern toolchain for darwin/ppc and don't have the expertise to push on the libunwind blockers for libc++ on Leopard.
comment:47 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Replying to ken.cunningham.webuse@…:
OK, Peter, I might be able to help you. I am not the world's expert on macports, gcc, clang, or anything else, but this works for me here on my 6 functional PPC machines.
I'll wait for a systematic update of MacPorts. Anyway, I won't have access to my PowerBook G4 the next four or five weeks.
comment:48 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
With gtk33.22.5_0
I get on PPC Leopard a differrnt error:
ld: illegal text-relocation to cstring in .libs/libgdk_3_la-gdkcolor.o from _gdk_color_copy in .libs/libgdk_3_la-gdkcolor.o for architecture ppc
There seems to exist a cure, http://stackoverflow.com/questions/6650178/illegal-text-reloc-to-non-lazy-ptr-error-while-building-in-xcode-4-with-libav-l, but setting in Portfile
if {[variant_isset universal]} { foreach arch ${configure.universal_archs} { lappend merger_build_args(${arch}) CC='${configure.cc} -arch ${arch}' lappend merger_build_args(${arch}) CC_FOR_BUILD='${configure.cc} -arch ${arch} -Wl,-read_only_relocs suppress' lappend merger_build_args(${arch}) LDFLAGS='${configure.ldflags} -arch ${arch} -read_only_relocs suppress' lappend merger_destroot_args(${arch}) CC='${configure.cc} -arch ${arch}' lappend merger_destroot_args(${arch}) CC_FOR_BUILD='${configure.cc} -arch ${arch} -Wl,-read_only_relocs suppress' lappend merger_destroot_args(${arch}) LDFLAGS='${configure.ldflags} -arch ${arch} -read_only_relocs suppress' } } else { build.args-append CC="${configure.cc} ${configure.cc_archflags}" \ CC_FOR_BUILD="${configure.cc} ${configure.cc_archflags} -Wl,-read_only_relocs suppress" \ LDFLAGS="${configure.ldflags} -read_only_relocs suppress" destroot.args-append CC="${configure.cc} ${configure.cc_archflags}" \ CC_FOR_BUILD="${configure.cc} ${configure.cc_archflags} -Wl,-read_only_relocs suppress" \ LDFLAGS="${configure.ldflags} -read_only_relocs suppress" }
leads to only a few uses of -read_only_relocs suppress
… At least the error is consistent.
comment:49 follow-up: 50 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Trying to build gtk3 with Quartz leads to other errors:
gdkevents-quartz.c:356:10: error: use of undeclared identifier 'NSEventTypeMagnify' case NSEventTypeMagnify: ^ gdkevents-quartz.c:357:10: error: use of undeclared identifier 'NSEventTypeRotate' case NSEventTypeRotate: ^
and
gdkevents-quartz.c:835:10: error: use of undeclared identifier 'NSEventTypeMagnify' case NSEventTypeMagnify: ^ gdkevents-quartz.c:836:10: error: use of undeclared identifier 'NSEventTypeRotate' case NSEventTypeRotate: ^
Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Attachment: | main.4.log added |
---|
main.log from gtk3 3.22.5, trying to build +quartz
comment:50 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Replying to ballapete:
Trying to build gtk3 with Quartz leads to other errors:
These can be fixed with the patch – but in the end the same text-relocation error breaks the build.
Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Attachment: | patch-gdkevents-quartz_NSTypes-10_5_compat.diff added |
---|
Fixes in Leopard unknown NS Event Types
comment:51 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Half an hour ago I managed to build gtk3 @3.22.6_0+x11 (active) platform='darwin 9' archs='ppc'
on PowerBook G4
. First try with the default Portfile failed – I think this was the error:
ld: illegal text-relocation to cstring in .libs/libgdk_3_la-gdkcolor.o from _gdk_color_copy in .libs/libgdk_3_la-gdkcolor.o for architecture ppc
So I patched Portfile to compile with -fPIC. Hours later the complete build finished (now libgsf and graphviz are being rebuilt). gtk3-demo
fails to launch. Error:
Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
I'll try to build some Emacsen with GTK3 support and see whether they work.
A main.log is not available, the *compilation* buffer in GNU Emacs was lost because port too dumb to understand that it cannot rev-upgrade
emacs @24.5_0+motif+x11
with the Portfile of GNU Emacs 25.1
. Obviously Macports needs an upgrade to stow away the built port and its Portfile.
comment:52 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Oh, I should have mentioned that I had selected Clang 3.4 for clang.
comment:53 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Building GNU Emacs 24.5 with apple-gcc42 @5666.3_15+gpl3
, the default compiler, succeeds, but launching it fails when I use GTK3. The other X toolkits work fine…
The GTK3 error, whatever it means, maybe just a personal misconfigaration, is:
(emacs:46373): Gtk-CRITICAL **: gtk_accelerator_parse_with_keycode: assertion 'accelerator != NULL' failed Fatal error 10: Bus error Backtrace: 0 emacs 0x000f0754 emacs_backtrace + 96 1 emacs 0x000cffb4 terminate_due_to_signal + 136 2 emacs 0x000ee6e0 get_random + 0 3 emacs 0x000eeae4 init_signals + 648 4 libSystem.B.dylib 0x90fe289c _sigtramp + 68 Bus error (core dumped) Exit 138
CrashReporters tells:
Thread 0 Crashed: 0 libSystem.B.dylib 0x90fe49f0 __kill + 12 1 emacs 0x000cffd8 terminate_due_to_signal + 172 Thread 1: 0 libSystem.B.dylib 0x90fc6c14 select$DARWIN_EXTSN + 12 1 libglib-2.0.0.dylib 0x011fdce4 g_poll + 440 2 libglib-2.0.0.dylib 0x011f0304 g_main_context_iterate + 348 3 libglib-2.0.0.dylib 0x011f0610 g_main_context_iteration + 64 4 libglib-2.0.0.dylib 0x011f0668 glib_worker_main + 48 5 libglib-2.0.0.dylib 0x01216f94 g_thread_proxy + 160 6 libSystem.B.dylib 0x90fa4f70 _pthread_start + 316 Thread 0 crashed with PPC Thread State 32: srr0: 0x90fe49f0 srr1: 0x0000f030 dar: 0xe10db674 dsisr: 0x40000000 r0: 0x00000025 r1: 0xbfffc0b0 r2: 0x00000520 r3: 0x00000000 r4: 0x00000000 r5: 0x00000001 r6: 0x00003638 r7: 0x00000000 r8: 0x00000002 r9: 0x00000208 r10: 0x00000000 r11: 0xa02aa52c r12: 0x90fe49dc r13: 0x00000013 r14: 0x00b6d2a0 r15: 0x00000000 r16: 0x02c0cac0 r17: 0x0000009f r18: 0xbfffcaf0 r19: 0xbfffc9bc r20: 0x011a6b18 r21: 0x011a84c8 r22: 0xbfffc9bc r23: 0xbfffcaf0 r24: 0x00000003 r25: 0x00000000 r26: 0x00000044 r27: 0xbfffc288 r28: 0x003eea50 r29: 0x00000028 r30: 0x0000000a r31: 0x000cff34 cr: 0x42222222 xer: 0x00000004 lr: 0x000cffdc ctr: 0x90fe49dc vrsave: 0xbfffd4c1
This must not necessarily be a GTK3 issue – Clang34 cannot produce any variant of GNU Emacs, neither X11 nor AppKit (ns) nor the mac based one. Either already temacs crashes or the built emacs binary – what is this software good for? Fill up empty space on the disk? But GCC6 can. And the built GNU Emacs 24.5 GTK3 variant also crashes and it does so of the same reason and at quite the same addresses. So the build of GTK3 is quite useless – well, built with Clang!
So I'll tried to install gtk3 +x11 configure.compiler=macports-gcc-6
…
comment:54 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
GCC 6.2.0 at least can change the error GNU Emacs produces when crashing upon launch, besides creating runable binaries:
emacs:44300): Gtk-WARNING **: gtk_window_parse_geometry() called on a window with no visible children; the window should be set up before gtk_window_parse_geometry() is called. (emacs:44300): Gtk-CRITICAL **: gtk_distribute_natural_allocation: assertion 'extra_space >= 0' failed
And GTK3 can perform one thing reliably well: Launching another completely useless X server. Which reminds me of MS Windows.
comment:55 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
No, that's wrong: The GCC 6.2.0 compiled GNU Emacs 24.5 with GTK3 toolkit comes up and runs! (It was just buried below other windows.)
comment:56 Changed 8 years ago by ballapete (Peter "Pete" Dyballa)
Even better: A working GNU Emacs 24.5 with GTK3 toolkit can also be compiled with apple-gcc-4.2.4. So it's probably better to rely on GCC 6 than on Clang. At least on PPC Leopard. I am going to test on PPC Tiger.
comment:57 Changed 8 years ago by kencu (Ken)
go up and look at comment 45 from three months ago when we first worked this out, for a more long-lasting solution. It does work on Tiger.
comment:58 Changed 8 years ago by kencu (Ken)
I suppose I should rebuild libgcc to default to gcc4-compatible ABI mode on 10.4 and 10.5 PPC if I'm going to do this. I wonder if that would make it fully-compatible with the system's libstdc++, or just less-incompatible?
<https://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html>
--with-default-libstdcxx-abi=gcc4-compatible
comment:59 Changed 8 years ago by dgonyier (Dwaine Gonyier)
Cc: | dgonyier added |
---|
comment:60 Changed 7 years ago by kencu (Ken)
Adding PortGroup cxx11 1.1
and removing the other blacklisting would now appear to be the most appropriate way to solve the toolchain issues in this ticket. Works fine on 10.4 and 10.5 PPC using gcc6, and provides the clang version minimums previously indicated in the Portfile for the Intel builds.
comment:61 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Cc: | MarcusCalhoun-Lopez added |
---|
comment:62 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
comment:63 follow-up: 64 Changed 7 years ago by kencu (Ken)
Yes, probably so. In the end, the cxx11 1.1 PortGroup does fix this build, but it does so by forcing appropriate compilers and not via the cxx11 compatibility flag.
comment:64 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
comment:65 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)
Meanwhile gtk3 @3.22.25_0+x11
has built with GCC 6
.
comment:66 Changed 7 years ago by kencu (Ken)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
closed by this commit.
main.log