Opened 14 years ago
Closed 14 years ago
#28162 closed defect (fixed)
mlt @0.5.10, Revision 1 fails to compile with "Undefined symbols: "_libiconv_close", referenced from:" _iconv_utf8 in producer_pango.o
Reported by: | mail@… | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.9.2 |
Keywords: | Cc: | ddennedy (Dan Dennedy) | |
Port: | mlt |
Description
Short and painfull: mlt fails to compile with the error message below. Even switching to ffmpeg-devel does not help at all (which was the solution some month before). Heres the build log:
:msg:main ---> Computing dependencies for mlt:info:main .:debug:main Searching for dependency: pkgconfig :debug:main Found Dependency: receipt exists for pkgconfig :debug:main Searching for dependency: git-core :debug:main Found Dependency: receipt exists for git-core :debug:main Searching for dependency: doxygen :debug:main Found Dependency: receipt exists for doxygen :debug:main Searching for dependency: qt4-mac :debug:main Found Dependency: receipt exists for qt4-mac :debug:main Searching for dependency: atk :debug:main Found Dependency: receipt exists for atk :debug:main Searching for dependency: frei0r-plugins :debug:main Found Dependency: receipt exists for frei0r-plugins :debug:main Searching for dependency: ffmpeg :debug:main Found Dependency: receipt exists for ffmpeg :debug:main Searching for dependency: gtk2 :debug:main Found Dependency: receipt exists for gtk2 :debug:main Searching for dependency: libdv :debug:main Found Dependency: receipt exists for libdv :debug:main Searching for dependency: libsamplerate :debug:main Found Dependency: receipt exists for libsamplerate :debug:main Searching for dependency: libsdl :debug:main Found Dependency: receipt exists for libsdl :debug:main Searching for dependency: libvorbis :debug:main Found Dependency: receipt exists for libvorbis :debug:main Searching for dependency: sox :debug:main Found Dependency: receipt exists for sox :msg:main :debug:main Executing org.macports.main (mlt) :debug:main Skipping completed org.macports.fetch (mlt) :debug:main Skipping completed org.macports.checksum (mlt) :debug:main Skipping completed org.macports.extract (mlt) :debug:main Skipping completed org.macports.patch (mlt) :debug:main Skipping completed org.macports.configure (mlt) :msg:main ---> Building mlt:debug:build build phase started at Wed Jan 26 08:58:56 CET 2011:debug:build Executing org.macports.build (mlt) :debug:build Environment: CPATH='/opt/local/include' CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_rel ease_ports_multimedia_mlt/work/.CC_PRINT_OPTIONS' CFLAGS='-O2 -I/opt/local/include -I/opt/local/include' QTDIR='/opt/local' LIBRARY_PATH='/opt/local/lib' CC_PRI NT_OPTIONS='YES' MACOSX_DEPLOYMENT_TARGET='10.6' LDFLAGS='-L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multi media_mlt/work/mlt-0.5.10/src/framework -L/opt/local/lib' MOC='/opt/local/bin/moc' QMAKE='/opt/local/bin/qmake' :debug:build Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_mlt/work/mlt-0.5. 10" && /usr/bin/make -j2 all CC="/usr/bin/gcc-4.2" CXX="/usr/bin/g++-4.2" CPP="/usr/bin/cpp-4.2"' :info:build list='src/framework src/mlt++ src/melt src/modules src/swig profiles'; \ :info:build for subdir in $list; do \ :info:build /usr/bin/make -s -C $subdir depend || exit 1; \ :info:build /usr/bin/make -C $subdir all || exit 1; \ :info:build done :info:build make[1]: Nothing to be done for `all'. :info:build make[1]: Nothing to be done for `all'.:info:build make[1]: Nothing to be done for `all'. :info:build list='avformat core dgraft dv effectv feeds frei0r gtk2 jackrack kdenlive kino linsys lumas melt motion_est normalize oldfilm plus qimage resample s dl sox vmfx vorbis xine xml'; \ :info:build for subdir in $list; do \ :info:build if [ -f $subdir/Makefile -a ! -f disable-$subdir ] ; \ :info:build then /usr/bin/make -C $subdir all || exit 1; \ :info:build fi \ :info:build done :info:build make[2]: Nothing to be done for `all'. :info:build make[2]: Nothing to be done for `all'. :info:build make[2]: Nothing to be done for `all'. :info:build make[2]: Nothing to be done for `all'. :info:build make[2]: Nothing to be done for `all'. :info:build make[2]: Nothing to be done for `all'. :info:build make[2]: Nothing to be done for `all'. :info:build /usr/bin/gcc-4.2 -dynamiclib -o ../libmltgtk2.dylib factory.o consumer_gtk2.o producer_pixbuf.o pixops.o filter_rescale.o producer_pango.o -L/opt/l ocal/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_mlt/work/mlt-0.5.10/src/framework -L/opt/local/lib -L/opt/lo cal/lib -lSDLmain -lSDL -Wl,-framework,Cocoa -L/opt/local/lib -lSDLmain -lSDL -Wl,-framework,Cocoa -L../../framework -lmlt -lpthread -lm -L/opt/local/lib -lSDLm ain -lSDL -Wl,-framework,Cocoa `pkg-config gtk+-2.0 --libs` `pkg-config gdk-pixbuf-2.0 --libs` -L/opt/local/lib -lexif `pkg-config pangoft2 --libs` :info:build Undefined symbols: :info:build "_libiconv_close", referenced from: :info:build _iconv_utf8 in producer_pango.o :info:build "_libiconv", referenced from: :info:build _iconv_utf8 in producer_pango.o :info:build "_libiconv_open", referenced from: :info:build _iconv_utf8 in producer_pango.o :info:build ld: symbol(s) not found :info:build collect2: ld returned 1 exit status :info:build make[2]: *** [../libmltgtk2.dylib] Error 1 :info:build make[1]: *** [all] Error 1 :info:build make: *** [all] Error 1 :info:build shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_mlt/work/mlt-0.5.10" & & /usr/bin/make -j2 all CC="/usr/bin/gcc-4.2" CXX="/usr/bin/g++-4.2" CPP="/usr/bin/cpp-4.2" " returned error 2 :error:build Target org.macports.build returned: shell command failed (see log for details) :debug:build Backtrace: shell command failed (see log for details) while executing "command_exec build" (procedure "portbuild::build_main" line 8) invoked from within "$procedure $targetname" :info:build Warning: the following items did not execute (for mlt): org.macports.activate org.macports.build org.macports.destroot org.macports.install :notice:build Log for mlt is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_mlt/main.log
Attachments (2)
Change History (11)
comment:1 Changed 14 years ago by mail@…
comment:2 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… added |
---|---|
Keywords: | mlt removed |
Milestone: | MacPorts 2.0.0 |
Owner: | changed from macports-tickets@… to dan@… |
Probably another consequence of fixing #25345. Probably mlt needs "-liconv" added to its LDFLAGS.
comment:3 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
The problem does not appear if using mlt's +no_x11 variant. "-lintl" only seems to appear by virtue of mlt asking pkg-config for pango's, glib2's, and gtk2's lib flags. These all only list -lintl, and not -liconv (which -lintl requires). So I'm not certain that this isn't actually a bug in the pango, glib2 and gtk2 ports' pkg-config files.
comment:4 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | dan@… added; ryandesign@… removed |
---|---|
Owner: | changed from dan@… to ryandesign@… |
Port: | glib2 glib2-devel added; mlt removed |
Status: | new → assigned |
gtk2 and pango both depend on glib2; this is an issue confined to glib2. It was exposed by removing indirect dependencies from pkgconfig in #25345, but caused by a change where glib2 moved iconv into the private libs. There have been other remarks that this change is strange. gettext (a.k.a. libintl), at least as built on Mac OS X by MacPorts, requires libiconv. Therefore it seems improper for glib2 to claim, when asked, that -lintl should be used, but fail to mention that -liconv is also required. I believe I will change glib2's pkgconfig file to move iconv out of the private libs and back into the public libs again.
comment:5 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed glib2 and glib2-devel in r75483.
comment:6 Changed 14 years ago by jmroot (Joshua Root)
A library using another library is a very different thing to a program using the other library's symbols directly, which is what is happening here. mlt's producer_pango.c is calling iconv_open() and friends directly, not via some glib2 function, so it's simply wrong for it not to link with -liconv.
comment:7 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Ah. Then I should revert my change above, and mlt should be fixed.
Changed 14 years ago by ddennedy (Dan Dennedy)
Attachment: | Portfile-mlt.diff added |
---|
Changed 14 years ago by ddennedy (Dan Dennedy)
Attachment: | patch-src-modules-gtk2-Makefile.diff added |
---|
patchfile to put in files/
comment:9 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
Port: | mlt added; glib2 glib2-devel removed |
---|---|
Resolution: | → fixed |
Status: | reopened → closed |
Thanks, committed in r75501.
Additional information: its snow leopard / all latest updates with these ports installed: