Opened 7 months ago

Closed 7 months ago

#69734 closed defect (fixed)

libpixman: Opportunistic use of libraries when building demos

Reported by: dbl001 (dbl) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.9.3
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: libpixman

Description

I'm running MacOS Sonoma 14.4.1 on an INTEL iMac 27". For some reason the -arch is arm64.

:info:build /usr/bin/clang  -o demos/composite-test demos/composite-test.p/composite-test.c.o -L/opt/local/lib -I/opt/local/include -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-headerpad_max_install_names -arch arm64 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -pipe -Os -arch arm64 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -Wl,-rpath,@loader_path/../pixman -Wl,-rpath,/opt/local/lib demos/libdemo.a test/utils/libtestutils.a pixman/libpixman-1.0.dylib /opt/local/lib/libintl.dylib -L/opt/local/lib -lglib-2.0 -L/opt/local/lib -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -L/opt/local/lib -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -L/opt/local/lib -lglib-2.0 -lm
:info:build ld: warning: ignoring duplicate libraries: '-latk-1.0', '-lcairo', '-lcairo-gobject', '-lgdk-3', '-lgdk_pixbuf-2.0', '-lgio-2.0', '-lglib-2.0', '-lgobject-2.0', '-lgtk-3', '-lharfbuzz', '-lpango-1.0', '-lpangocairo-1.0'
:info:build ld: warning: ignoring file '/opt/local/lib/libglib-2.0.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libgtk-3.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libgdk-3.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libpango-1.0.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libharfbuzz.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libgobject-2.0.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libgio-2.0.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libatk-1.0.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libcairo-gobject.2.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libpangocairo-1.0.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libcairo.2.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build ld: warning: ignoring file '/opt/local/lib/libgdk_pixbuf-2.0.0.dylib': found architecture 'x86_64', required architecture 'arm64'
:info:build Undefined symbols for architecture arm64:
:info:build   "_cairo_fill", referenced from:
:info:build       _on_draw in libdemo.a[2](gtk-utils.c.o)
:info:build   "_cairo_image_surface_create_for_data", referenced from:
:info:build       _on_draw in libdemo.a[2](gtk-utils.c.o)
:info:build   "_cairo_rectangle", referenced from:
:info:build       _on_draw in libdemo.a[2](gtk-utils.c.o)
:info:build   "_cairo_set_source_surface", referenced from:
:info:build       _on_draw in libdemo.a[2](gtk-utils.c.o)
:info:build   "_cairo_surface_destroy", referenced from:
:info:build       _on_draw in libdemo.a[2](gtk-utils.c.o)
:info:build   "_g_assertion_message_expr", referenced from:
:info:build       _reader in composite-test.c.o
:info:build   "_g_object_unref", referenced from:
:info:build       _main in composite-test.c.o
:info:build       _pixman_image_from_file in libdemo.a[2](gtk-utils.c.o)
:info:build   "_g_signal_connect_data", referenced from:
:info:build       _main in composite-test.c.o
:info:build       _show_image in libdemo.a[2](gtk-utils.c.o)
:info:build       _show_image in libdemo.a[2](gtk-utils.c.o)
:info:build   "_g_strdup", referenced from:
:info:build       _show_image in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gdk_pixbuf_get_height", referenced from:
:info:build       _pixman_image_from_file in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gdk_pixbuf_get_n_channels", referenced from:
:info:build       _pixman_image_from_file in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gdk_pixbuf_get_pixels", referenced from:
:info:build       _pixman_image_from_file in libdemo.a[2](gtk-utils.c.o)
:info:build       _pixbuf_from_argb32 in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gdk_pixbuf_get_rowstride", referenced from:
:info:build       _pixman_image_from_file in libdemo.a[2](gtk-utils.c.o)
:info:build       _pixbuf_from_argb32 in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gdk_pixbuf_get_width", referenced from:
:info:build       _pixman_image_from_file in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gdk_pixbuf_new", referenced from:
:info:build       _pixbuf_from_argb32 in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gdk_pixbuf_new_from_file", referenced from:
:info:build       _pixman_image_from_file in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gtk_box_pack_start", referenced from:
:info:build       _main in composite-test.c.o
:info:build       _main in composite-test.c.o
:info:build   "_gtk_container_add", referenced from:
:info:build       _main in composite-test.c.o
:info:build   "_gtk_image_new_from_pixbuf", referenced from:
:info:build       _main in composite-test.c.o
:info:build   "_gtk_init", referenced from:
:info:build       _main in composite-test.c.o
:info:build       _show_image in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gtk_label_new", referenced from:
:info:build       _main in composite-test.c.o
:info:build   "_gtk_main", referenced from:
:info:build       _main in composite-test.c.o
:info:build       _show_image in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gtk_main_quit", referenced from:
:info:build       _main in composite-test.c.o
:info:build       _show_image in libdemo.a[2](gtk-utils.c.o)
:info:build   "_gtk_scrolled_window_add_with_viewport", referenced from:
:info:build       _main in composite-test.c.o
:info:build   "_gtk_scrolled_window_new", referenced from:
:info:build       _main in composite-test.c.o
:info:build   "_gtk_scrolled_window_set_policy", referenced from:
:info:build       _main in composite-test.c.o
:info:build   "_gtk_table_attach_defaults", referenced from:
:info:build       _main in composite-test.c.o
:info:build   "_gtk_table_new", referenced from:
:info:build       _main in composite-test.c.o
:info:build   "_gtk_vbox_new", referenced from:
:info:build       _main in composite-test.c.o
:info:build   "_gtk_widget_show", referenced from:
:info:build       _main in composite-test.c.o
:info:build       _main in composite-test.c.o
:info:build       _main in composite-test.c.o


Attachments (1)

main.log (225.0 KB) - added by dbl001 (dbl) 7 months ago.

Download all attachments as: .zip

Change History (5)

Changed 7 months ago by dbl001 (dbl)

Attachment: main.log added

comment:1 in reply to:  description Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign added
Owner: set to mascguy
Status: newassigned
Summary: :info:build Undefined symbols for architecture arm64:libpixman +universal: Undefined symbols for architecture arm64:

Replying to dbl001:

I'm running MacOS Sonoma 14.4.1 on an INTEL iMac 27". For some reason the -arch is arm64.

Because you have requested the +universal variant, which means build for multiple architectures. On Sonoma, it means x86_64 and arm64, and in this port it happens to build them separately.

And apparently the +universal variant doesn't work right in this port anymore.

If you don't have a desire to build arm64 on your Intel Mac, don't use the +universal variant.

comment:2 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)

Summary: libpixman +universal: Undefined symbols for architecture arm64:libpixman: Opportunistic use of libraries when building demos

Actually, what's weird here is that libpixman is complaining about the wrong architecture in libraries belonging to ports that are not dependencies of libpixman: atk, cairo, gdk-pixbuf2, glib2, gtk3, harfbuzz, pango—ports that can't be dependencies of libpixman since libpixman is a dependency of cairo already. libpixman shouldn't be using those. It looks like this is happening when libpixman is building its demos. So the port should be changed not to build the demos.

comment:3 Changed 7 months ago by Christopher Nielsen <mascguy@…>

In b0f3cd79d9ea6dd1357e11148b9cf40b3edc77ed/macports-ports (master):

libpixman-devel: add variant tests; disable demos

See: #69734

comment:4 Changed 7 months ago by Christopher Nielsen <mascguy@…>

Resolution: fixed
Status: assignedclosed

In 01e2709e89e87f6ba863451b6f6a732e9716f3e2/macports-ports (master):

libpixman: add variant tests; disable demos

Fixes: #69734

Note: See TracTickets for help on using tickets.