Opened 17 months ago

Last modified 6 weeks ago

#67675 assigned defect

gtk3 @3.24.38 +quartz: Undefined symbols for architecture x86_64

Reported by: cooljeanius (Eric Gallager) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: ventura Cc:
Port: gtk3

Description

FAILED: gdk/libgdk-3.0.dylib 
/usr/bin/clang -arch x86_64  -o gdk/libgdk-3.0.dylib gdk/libgdk-3.0.dylib.p/meson-generated_.._gdkenumtypes.c.o gdk/libgdk-3.0.dylib.p/meson-generated_.._gdkmarshalers.c.o gdk/libgdk-3.0.dylib.p/meson-generated_.._gdkresources.c.o gdk/libgdk-3.0.dylib.p/gdk-private.c.o gdk/libgdk-3.0.dylib.p/gdk.c.o gdk/libgdk-3.0.dylib.p/gdkapplaunchcontext.c.o gdk/libgdk-3.0.dylib.p/gdkcairo.c.o gdk/libgdk-3.0.dylib.p/gdkcursor.c.o gdk/libgdk-3.0.dylib.p/gdkdeprecated.c.o gdk/libgdk-3.0.dylib.p/gdkdevice.c.o gdk/libgdk-3.0.dylib.p/gdkdevicemanager.c.o gdk/libgdk-3.0.dylib.p/gdkdevicepad.c.o gdk/libgdk-3.0.dylib.p/gdkdisplay.c.o gdk/libgdk-3.0.dylib.p/gdkdisplaymanager.c.o gdk/libgdk-3.0.dylib.p/gdkdnd.c.o gdk/libgdk-3.0.dylib.p/gdkevents.c.o gdk/libgdk-3.0.dylib.p/gdkframetimings.c.o gdk/libgdk-3.0.dylib.p/gdkgl.c.o gdk/libgdk-3.0.dylib.p/gdkglcontext.c.o gdk/libgdk-3.0.dylib.p/gdkglobals.c.o gdk/libgdk-3.0.dylib.p/gdkkeys.c.o gdk/libgdk-3.0.dylib.p/gdkkeyuni.c.o gdk/libgdk-3.0.dylib.p/gdkoffscreenwindow.c.o gdk/libgdk-3.0.dylib.p/gdkframeclock.c.o gdk/libgdk-3.0.dylib.p/gdkframeclockidle.c.o gdk/libgdk-3.0.dylib.p/gdkpango.c.o gdk/libgdk-3.0.dylib.p/gdkpixbuf-drawable.c.o gdk/libgdk-3.0.dylib.p/gdkprofiler.c.o gdk/libgdk-3.0.dylib.p/gdkproperty.c.o gdk/libgdk-3.0.dylib.p/gdkrectangle.c.o gdk/libgdk-3.0.dylib.p/gdkrgba.c.o gdk/libgdk-3.0.dylib.p/gdkscreen.c.o gdk/libgdk-3.0.dylib.p/gdkselection.c.o gdk/libgdk-3.0.dylib.p/gdkvisual.c.o gdk/libgdk-3.0.dylib.p/gdkwindow.c.o gdk/libgdk-3.0.dylib.p/gdkwindowimpl.c.o gdk/libgdk-3.0.dylib.p/gdkseat.c.o gdk/libgdk-3.0.dylib.p/gdkseatdefault.c.o gdk/libgdk-3.0.dylib.p/gdkdevicetool.c.o gdk/libgdk-3.0.dylib.p/gdkdrawingcontext.c.o gdk/libgdk-3.0.dylib.p/gdkmonitor.c.o gdk/libgdk-3.0.dylib.p/deprecated_gdkcolor.c.o -L/opt/local/lib -I/opt/local/include -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -shared -install_name @rpath/libgdk-3.0.dylib -compatibility_version 2407 -current_version 2407.32.0 -Wl,-force_load gdk/quartz/libgdk-quartz.a -Wl,-headerpad_max_install_names -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch x86_64 -pipe -Os -fstrict-aliasing -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch x86_64 -DX_LOCALE -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -Wl,-rpath,/opt/local/lib -lm /opt/local/lib/libgdk_pixbuf-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/libcairo.dylib /opt/local/lib/libpango-1.0.dylib /opt/local/lib/libharfbuzz.dylib /opt/local/lib/libfribidi.dylib /opt/local/lib/libcairo-gobject.dylib /opt/local/lib/libepoxy.dylib /opt/local/lib/libgio-2.0.dylib /opt/local/lib/libpangocairo-1.0.dylib -framework CoreGraphics -framework AppKit -framework Cocoa -framework Carbon -framework QuartzCore -framework IOSurface -framework CoreGraphics -framework AppKit -framework Cocoa -framework Carbon -framework QuartzCore -framework IOSurface
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_NSConstantIntegerNumber", referenced from:
      l__unnamed_nsconstantintegernumber_ in libgdk-quartz.a(GdkQuartzView.c.o)
      l__unnamed_nsconstantintegernumber_.1 in libgdk-quartz.a(GdkQuartzView.c.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gtk3/gtk3/work/build" && /opt/local/bin/ninja -j16 -v 
Exit code: 1
Error: Failed to build gtk3: command execution failed
DEBUG: Error code: CHILDSTATUS 16711 1

I'm on Big Sur with Xcode 13. Looks kinda similar to some other bugs I've filed, which might mean it's just the result of some oddity of my environment, but I figured I'd file it anyways just in case.

Attachments (1)

gtk3_main.log (369.4 KB) - added by cooljeanius (Eric Gallager) 17 months ago.
main.log for gtk3

Download all attachments as: .zip

Change History (13)

Changed 17 months ago by cooljeanius (Eric Gallager)

Attachment: gtk3_main.log added

main.log for gtk3

comment:1 Changed 17 months ago by mascguy (Christopher Nielsen)

Cc: mascguy removed
Keywords: ventura added
Owner: set to mascguy
Status: newassigned

Last week, I was able to successfully install gtk3 +quartz on a friends MacBook Air Intel, running the latest version of Ventura. Along with GIMP, and other GTK3 apps.

All built and run fine.

Can't remember which Xcode version it was though, and don't have access to the machine at this point.

But can at least confirm that we don't have issues in-general.

Will scrutinize your log when I can find some time.

comment:2 in reply to:  1 ; Changed 17 months ago by mascguy (Christopher Nielsen)

Replying to mascguy:

Last week, I was able to successfully install gtk3 +quartz on a friends MacBook Air Intel, running the latest version of Ventura. Along with GIMP, and other GTK3 apps. All built and run fine.

Ugh, sorry, missed your comment that you're building on Big Sur. Not caffeinated enough yet.

So it looks like you're using Xcode 13.2.1, which has the Monterey SDK. But the latest version of Xcode for Big Sur - with a matching SDK - is Xcode 13.0:

https://xcodereleases.com/?scope=release

Can you try downgrading to 13.0, and see if that fixes the issue?

comment:3 in reply to:  2 ; Changed 17 months ago by mascguy (Christopher Nielsen)

Replying to mascguy:

So it looks like you're using Xcode 13.2.1, which has the Monterey SDK. But the latest version of Xcode for Big Sur - with a matching SDK - is Xcode 13.0:

https://xcodereleases.com/?scope=release

Can you try downgrading to 13.0, and see if that fixes the issue?

Of note, my Big Sur VM has Xcode 13.0, and everything related to GTK3/Quartz builds and runs fine.

Last edited 17 months ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:4 in reply to:  3 ; Changed 17 months ago by cooljeanius (Eric Gallager)

Replying to mascguy:

Replying to mascguy:

So it looks like you're using Xcode 13.2.1, which has the Monterey SDK. But the latest version of Xcode for Big Sur - with a matching SDK - is Xcode 13.0:

https://xcodereleases.com/?scope=release

Can you try downgrading to 13.0, and see if that fixes the issue?

Of note, my Big Sur VM has Xcode 13.0, and everything related to GTK3/Quartz builds and runs fine.

Hm, could you maybe force a build of it +quartz on the buildbot so that I could just grab a binary of it? (I guess this is kind of an example of #60511 in that case, then, since if quartz were the default gtk backend, the buildbots would have already done so...)

comment:5 in reply to:  4 ; Changed 17 months ago by mascguy (Christopher Nielsen)

Replying to cooljeanius:

Replying to mascguy:

Replying to mascguy:

So it looks like you're using Xcode 13.2.1, which has the Monterey SDK. But the latest version of Xcode for Big Sur - with a matching SDK - is Xcode 13.0:

https://xcodereleases.com/?scope=release

Can you try downgrading to 13.0, and see if that fixes the issue?

Of note, my Big Sur VM has Xcode 13.0, and everything related to GTK3/Quartz builds and runs fine.

Hm, could you maybe force a build of it +quartz on the buildbot so that I could just grab a binary of it? (I guess this is kind of an example of #60511 in that case, then, since if quartz were the default gtk backend, the buildbots would have already done so...)

It's not possible to build ports for Quartz on our buildbots, so that's not an option.

Are you reluctant to downgrade your version of Xcode? That's by far the best way forward, to rule out Xcode 13.2.1.

comment:6 in reply to:  5 ; Changed 16 months ago by cooljeanius (Eric Gallager)

Replying to mascguy:

Replying to cooljeanius:

Replying to mascguy:

Replying to mascguy:

So it looks like you're using Xcode 13.2.1, which has the Monterey SDK. But the latest version of Xcode for Big Sur - with a matching SDK - is Xcode 13.0:

https://xcodereleases.com/?scope=release

Can you try downgrading to 13.0, and see if that fixes the issue?

Of note, my Big Sur VM has Xcode 13.0, and everything related to GTK3/Quartz builds and runs fine.

Hm, could you maybe force a build of it +quartz on the buildbot so that I could just grab a binary of it? (I guess this is kind of an example of #60511 in that case, then, since if quartz were the default gtk backend, the buildbots would have already done so...)

It's not possible to build ports for Quartz on our buildbots, so that's not an option.

Are you reluctant to downgrade your version of Xcode?

Yeah, kinda, I mean, I guess I can, it'll just be a pain... Xcode is big, after all...

Last edited 16 months ago by cooljeanius (Eric Gallager) (previous) (diff)

comment:7 Changed 16 months ago by kencu (Ken)

Or try keeping your new version of Xcode, just steal the system-matching SDK from someplace and put it where it goes.

comment:8 in reply to:  7 ; Changed 16 months ago by cooljeanius (Eric Gallager)

Replying to kencu:

Or try keeping your new version of Xcode, just steal the system-matching SDK from someplace and put it where it goes.

Actually wait, aren't there ports for that?

comment:9 in reply to:  8 Changed 16 months ago by kencu (Ken)

Replying to cooljeanius:

Replying to kencu:

Or try keeping your new version of Xcode, just steal the system-matching SDK from someplace and put it where it goes.

Actually wait, aren't there ports for that?

Sorta, but the SDK ports don't put the SDK in the location where macports base looks for it, so -- not really the solution, exactly. You could try using the port to install the right SDK and the ditto it into the right places it needs to be -- or just get the SDK yourself, it's probably just as easy to do that.

Last edited 16 months ago by kencu (Ken) (previous) (diff)

comment:10 in reply to:  6 Changed 16 months ago by mascguy (Christopher Nielsen)

Replying to cooljeanius:

Yeah, kinda, I mean, I guess I can, it'll just be a pain... Xcode is big, after all...

Well, this is just a one-time change, and it's not like you have to reinstall macOS or MacPorts.

I'd love to help you resolve this, but we need to rule out Xcode first.

comment:11 Changed 14 months ago by cooljeanius (Eric Gallager)

So I was looking through other tickets and came across #62537 where I solved a similar problem by adding -Wl,-F/System/Library/Frameworks/ to my linker flags; I'm trying that here too, now, with configure.ldflags...

...and it seems to have worked.

comment:12 Changed 6 weeks ago by cooljeanius (Eric Gallager)

I'm running into this again while testing PR 26062: https://github.com/macports/macports-ports/pull/26062

Note: See TracTickets for help on using tickets.