Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#32722 closed defect (fixed)

pango, pango-devel: build failure with cairo +quartz

Reported by: stealthjeff@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: Cc: blender3dartist@…, macports@…, su-v, an0nym@…, Tom.Schoonjans@…, macports1@…, cz@…
Port: pango, pango-devel

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Build fails on 10.7 (Lion) with XCode 4.2.1.
Also failed with configure.compiler=llvm-gcc-4.2
Also failed with configure.compiler=apple-gcc-4.2 configure.cxx=g++-apple-4.2

Text from main.log:

:info:build   CC     basic-coretext.lo
:info:build /bin/sh ../../libtool --silent --tag=CC   --mode=compile /opt/local/bin/gcc-apple-4.2 -DHAVE_CONFIG_H -I. -I../.. -DG_LOG_DOMAIN=\"Pango\" -DPANGO_ENABLE_ENGINE -DPANGO_ENABLE_DEBUG -I../.. -I../../pango -D_REENTRANT -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include    -I/opt/local/include/freetype2 -I/opt/local/include   -I/opt/local/include   -D_REENTRANT -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/freetype2 -I/opt/local/include/libpng14     -I/opt/local/include  -pipe -O2 -arch x86_64 -arch i386 -Wall -c -o basic-coretext.lo basic-coretext.c
:info:build   CCLD   pango-basic-fc.la
:info:build   CCLD   pango-basic-coretext.la
:info:build Undefined symbols for architecture x86_64:
:info:build   "_g_object_new", referenced from:
:info:build       _script_engine_create in basic-coretext.o
:info:build   "_pango_engine_shape_get_type", referenced from:
:info:build       _script_engine_init in basic-coretext.o
:info:build   "_g_type_module_register_type", referenced from:
:info:build       _script_engine_init in basic-coretext.o
:info:build   "_pango_font_get_glyph_extents", referenced from:
:info:build       _set_glyph in basic-coretext.o
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_core_text_font_get_type", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_type_check_instance_cast", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_core_text_font_get_ctfont", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_strndup", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_free", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_glyph_string_set_size", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_font_get_type", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_font_get_coverage", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_utf8_skip", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_is_zero_width", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_utf8_get_char", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_coverage_get", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_unichar_type", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_get_mirror_char", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_coverage_unref", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build ld: symbol(s) not found for architecture x86_64
:info:build collect2: ld returned 1 exit status
:info:build Undefined symbols for architecture i386:
:info:build   "_g_object_new", referenced from:
:info:build       _script_engine_create in basic-coretext.o
:info:build   "_pango_engine_shape_get_type", referenced from:
:info:build       _script_engine_init in basic-coretext.o
:info:build   "_g_type_module_register_type", referenced from:
:info:build       _script_engine_init in basic-coretext.o
:info:build   "_pango_font_get_glyph_extents", referenced from:
:info:build       _set_glyph in basic-coretext.o
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_core_text_font_get_type", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_type_check_instance_cast", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_core_text_font_get_ctfont", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_strndup", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_free", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_glyph_string_set_size", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_font_get_type", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_font_get_coverage", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_is_zero_width", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_utf8_get_char", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_coverage_get", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_unichar_type", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_get_mirror_char", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_pango_coverage_unref", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build   "_g_utf8_skip", referenced from:
:info:build       _basic_engine_shape in basic-coretext.o
:info:build ld: symbol(s) not found for architecture i386
:info:build collect2: ld returned 1 exit status
:info:build lipo: can't open input file: /var/tmp//ccz25ym7.out (No such file or directory)
:info:build make[3]: *** [pango-basic-coretext.la] Error 1
:info:build make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_pango-devel/pango-devel/work/pango-1.29.4/modules/basic'

Can provide full log if required.

Attachments (2)

pango_main.log (98.2 KB) - added by stealthjeff@… 12 years ago.
main.log for failed build
pango.patch (623 bytes) - added by seanfarley (Sean Farley) 12 years ago.
remove the -no-undefined flag

Download all attachments as: .zip

Change History (17)

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: stealthjeff@… removed
Description: modified (diff)
Owner: changed from macports-tickets@… to ryandesign@…

comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

You should attach the whole main.log.

Changed 12 years ago by stealthjeff@…

Attachment: pango_main.log added

main.log for failed build

comment:3 Changed 12 years ago by blender3dartist@…

The build fails because of the "-no-undefined" option being passed. Removing it allows pango to build and install. I don't know the repercussions in removing this flag, however.

comment:4 Changed 12 years ago by blender3dartist@…

Cc: blender3dartist@… added

Cc Me!

comment:5 Changed 12 years ago by macports@…

Cc: macports@… added

Cc Me!

comment:6 Changed 12 years ago by su-v

Cc: suv-sf@… added

Cc Me!

comment:7 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: an0nym@… Tom.Schoonjans@… macports1@… added
Port: pango added
Status: newassigned
Summary: pango-devel @1.29.4 +no_x11 +quartz +universal - build failurepango, pango-devel: build failure with +no_x11 +quartz

Now that pango has been updated to 1.30.0 it also experiences this problem, as reported in duplicate #34055.

comment:8 Changed 12 years ago by jmroot (Joshua Root)

Summary: pango, pango-devel: build failure with +no_x11 +quartzpango, pango-devel: build failure with cairo +quartz

You don't need -x11/+no_x11 to get this, I'm seeing it with +x11. Given that the quartz variant does nothing in pango, this must depend on how cairo is built.

comment:9 in reply to:  3 Changed 12 years ago by seanfarley (Sean Farley)

Replying to blender3dartist@…:

The build fails because of the "-no-undefined" option being passed. Removing it allows pango to build and install. I don't know the repercussions in removing this flag, however.

Yes, this is the correct solution. -no-undefined is usually reserved for making static libraries. The symbols that are missing are all defined in libgobect, libpangocairo, or libpango itself (from other object files).

Changed 12 years ago by seanfarley (Sean Farley)

Attachment: pango.patch added

remove the -no-undefined flag

comment:10 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Hmm, I wonder why we are using -no-undefined in the first place. I wonder also why we are using -bind_at_load. Both have been in the portfiles for awhile. Anybody know these things?

comment:11 in reply to:  10 Changed 12 years ago by seanfarley (Sean Farley)

Replying to ryandesign@…:

Hmm, I wonder why we are using -no-undefined in the first place. I wonder also why we are using -bind_at_load. Both have been in the portfiles for awhile. Anybody know these things?

While I can't say why this was changed in the first place, it looks like -no-undefined was first introduced here (syncing with fink?):

browser:trunk/dports/x11/pango/Portfile?rev=2670

As for the -bind_at_load, yeah, that should also be removed since it's only really for executables. It was first introduced here:

browser:trunk/dports/x11/pango/Portfile?rev=6220

Maybe it was a mistake in the first place?

comment:12 Changed 12 years ago by cz@…

Cc: cz@… added

Cc Me!

comment:13 Changed 12 years ago by jmroot (Joshua Root)

The linking situation on Jaguar, which is what would have been targeted back then, is quite different to the platforms we support now. The glibtool situation probably wasn't nearly as good back then either. So yeah, if you don't know a reason to be adding those ldflags, don't.

comment:14 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

Ok, I've removed them in r92079.

comment:15 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Has duplicate #34093.

Note: See TracTickets for help on using tickets.