Subject: | [Gtk2-MozEmbed-0.04] build error : LD_RUN_PATH not properly set ? |
Hi,
after using the patch reported here
http://rt.cpan.org/NoAuth/Bug.html?id=14792
I was trying to build Gtk2-MozEmbed-0.04,
but got an error when running make
$ perl Makefile.PL
Including ApiDoc pod...
Loaded 3 type definitions from maps
2 GFlags
1 GtkObject
Found Mozilla::DOM
in /home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install
Found Gtk2 in /home/joseae/perl5/lib/i686-linux/Gtk2/Install
Found Glib in /home/joseae/perl5/lib/i686-linux/Glib/Install
Writing build/IFiles.pm
Checking if your kit is complete...
Looks good
Unrecognized argument in LIBS ignored: '-pthread'
Writing Makefile for Gtk2::MozEmbed
[joseae@sinf009w Gtk2-MozEmbed-0.04]$ make
cp gtkmozembed2perl.h blib/arch/Gtk2/MozEmbed/Install/gtkmozembed2perl.h
cp build/IFiles.pm blib/arch/Gtk2/MozEmbed/Install/Files.pm
cp build/gtkmozembed2perl-autogen.h
blib/arch/Gtk2/MozEmbed/Install/gtkmozembed2perl-autogen.h
cp MozEmbed.pm blib/lib/Gtk2/MozEmbed.pm
cp /home/joseae/perl5/CPAN/build/Gtk2-MozEmbed-0.04/gtkmozembed.typemap
blib/arch/Gtk2/MozEmbed/Install/gtkmozembed.typemap
cp /home/joseae/perl5/CPAN/build/Gtk2-MozEmbed-0.04/build/gtkmozembed2perl.typemap blib/arch/Gtk2/MozEmbed/Install/gtkmozembed2perl.typemap
/home/joseae/perl5/bin/perl /home/joseae/perl5/lib/5.8.7/ExtUtils/xsubpp
-noprototypes -C++
-typemap /home/joseae/perl5/lib/5.8.7/ExtUtils/typemap
-typemap /home/joseae/perl5/CPAN/build/Gtk2-MozEmbed-0.04/gtkmozembed.typemap -typemap /home/joseae/perl5/CPAN/build/Gtk2-MozEmbed-0.04/build/gtkmozembed2perl.typemap -typemap /home/joseae/perl5/lib/i686-linux/Glib/Install/typemap -typemap /home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install/mozilladom.typemap -typemap /home/joseae/perl5/lib/i686-linux/Gtk2/Install/gtk2perl.typemap -typemap /home/joseae/perl5/lib/i686-linux/Gtk2/Install/gdk.typemap -typemap /home/joseae/perl5/lib/i686-linux/Gtk2/Install/gtk.typemap -typemap /home/joseae/perl5/lib/i686-linux/Gtk2/Install/pango.typemap xs/GtkMozEmbed.xs > xs/GtkMozEmbed.xsc && mv xs/GtkMozEmbed.xsc xs/GtkMozEmbed.c
c++ -c -I/usr/include/mozilla-firefox-1.0.2/gtkembedmoz
-I/usr/include/mozilla-firefox-1.0.2
-I/usr/include/mozilla-firefox-1.0.2/xpcom
-I/usr/include/mozilla-firefox-1.0.2/string
-I/usr/include/mozilla-firefox-1.0.2/nspr
-I/home/joseae/perl5/lib/i686-linux/Glib/Install -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -pthread -I.
-I/home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install
-I./build -I/usr/include/mozilla-firefox-1.0.2/dom
-I/usr/include/mozilla-firefox-1.0.2/webbrwsr
-I/usr/include/mozilla-firefox-1.0.2/content
-I/usr/include/mozilla-firefox-1.0.2/docshell
-I/home/joseae/perl5/lib/i686-linux/Gtk2/Install -DXTHREADS -D_REENTRANT
-DXUSE_MTSAFE_API -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include
-I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0
-I/usr/include/freetype2 -I/usr/include/freetype2/freetype2
-I/usr/include/freetype2/freetype2/config -fno-strict-aliasing -pipe
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2
-DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -o xs/GtkMozEmbed.o -fpic
"-I/home/joseae/perl5/lib/5.8.7/i686-linux/CORE" xs/GtkMozEmbed.c
Running Mkbootstrap for Gtk2::MozEmbed ()
chmod 644 MozEmbed.bs
rm -f blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so
LD_RUN_PATH="/usr/lib/mozilla-firefox-1.0.2:/usr/lib:/lib" LD_RUN_PATH=
gcc -shared -L/usr/local/lib xs/GtkMozEmbed.o -o
blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so
-L/usr/lib/mozilla-firefox-1.0.2 -lgtkembedmoz -lxpcom -lplds4 -lplc4
-lnspr4 -lpthread -ldl -lgobject-2.0 -lglib-2.0 -lgthread-2.0
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm
-lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgmodule-2.0
chmod 755 blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so
cp MozEmbed.bs blib/arch/auto/Gtk2/MozEmbed/MozEmbed.bs
chmod 644 blib/arch/auto/Gtk2/MozEmbed/MozEmbed.bs
/home/joseae/perl5/bin/perl -I blib/lib -I blib/arch -MGlib::GenPod
-MGtk2::MozEmbed \
-e 'add_types
("/home/joseae/perl5/lib/i686-linux/Glib/Install/doctypes",
"/home/joseae/perl5/lib/i686-linux/Gtk2/Install/doctypes",
"/home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install/doctypes"); $Glib::GenPod::COPYRIGHT="Copyright (C) 2004-2005 by the gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Gtk2::MozEmbed> for a full\nnotice.\n"; $Glib::GenPod::MAIN_MOD="Gtk2::MozEmbed"; xsdoc2pod("build/doc.pl", "blib/lib", "build/podindex");'
Can't load 'blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so' for module
Gtk2::MozEmbed: libgtkembedmoz.so: cannot open shared object file: No
such file or directory
at /home/joseae/perl5/lib/5.8.7/i686-linux/DynaLoader.pm line 230.
at -e line 0
Compilation failed in require.
BEGIN failed--compilation aborted.
make: *** [build/podindex] Erreur 2
$ ldd blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so|grep 'not found'
libgtkembedmoz.so => not found
libxpcom.so => not found
$ locate libgtkembedmoz
/usr/lib/mozilla-firefox-1.0.2/libgtkembedmoz.so
$ locate libxpcom.so
/usr/lib/mozilla-firefox-1.0.2/libxpcom.so
I noticed that we have above
LD_RUN_PATH="/usr/lib/mozilla-firefox-1.0.2:/usr/lib:/lib" LD_RUN_PATH=
this means that LD_RUN_PATH is properly set then unset.
when I run the same command lines :
1) gcc with LD_RUN_PATH properly set,
2) perl -e 'add_types...',
3) make test
I get
LD_RUN_PATH="/usr/lib/mozilla-firefox-1.0.2:/usr/lib:/lib" gcc -shared
-L/usr/local/lib xs/GtkMozEmbed.o -o
blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so
-L/usr/lib/mozilla-firefox-1.0.2 -lgtkembedmoz -lxpcom -lplds4 -lplc4
-lnspr4 -lpthread -ldl -lgobject-2.0 -lglib-2.0 -lgthread-2.0
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm
-lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgmodule-2.0
[joseae@sinf009w Gtk2-MozEmbed-0.04]$ chmod 755
blib/arch/auto/Gtk2/MozEmbed/MozEmbed.so
[joseae@sinf009w Gtk2-MozEmbed-0.04]$ cp MozEmbed.bs
blib/arch/auto/Gtk2/MozEmbed/MozEmbed.bs
$ /home/joseae/perl5/bin/perl -I
blib/lib -I blib/arch -MGlib::GenPod -MGtk2::MozEmbed \
Show quoted text
> -e 'add_types
("/home/joseae/perl5/lib/i686-linux/Glib/Install/doctypes",
"/home/joseae/perl5/lib/i686-linux/Gtk2/Install/doctypes",
"/home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install/doctypes"); $Glib::GenPod::COPYRIGHT="Copyright (C) 2004-2005 by the gtk2-perl team.\n\nThis software is licensed under the LGPL. See L<Gtk2::MozEmbed> for a full\nnotice.\n"; $Glib::GenPod::MAIN_MOD="Gtk2::MozEmbed"; xsdoc2pod("build/doc.pl", "blib/lib", "build/podindex");'
loaded 7 extra types
from /home/joseae/perl5/lib/i686-linux/Glib/Install/doctypes
loaded 9 extra types
from /home/joseae/perl5/lib/i686-linux/Gtk2/Install/doctypes
loaded 111 extra types
from /home/joseae/perl5/lib/site_perl/5.8.7/i686-linux/Mozilla/DOM/Install/doctypes
podifying blib/lib/Gtk2/MozEmbed/main.pod
$ make test
PERL_DL_NONLAZY=1 /home/joseae/perl5/bin/perl "-MExtUtils::Command::MM"
"-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/GtkMozEmbed....ok
All tests successful.
Files=1, Tests=8, 0 wallclock secs ( 0.31 cusr + 0.04 csys = 0.35
CPU)
Do you have any clue on why is there a problem with the LD_RUN_PATH setting ?
perl -v follows
Hope this helps,
Regards
José A-E
OS is Mandriva LE2005,
$ uname -r
2.6.11-12mdk
Perl version 5.8.7
$ perl -v
This is perl, v5.8.7 built for i686-linux
Copyright 1987-2005, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.