Bug 29638

Summary: link errors due to wrong UNICODE_LIBS on Ubuntu Jaunty
Product: WebKit Reporter: Philippe Normand <pnormand>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: christian, jmalonzo, xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Attachments:
Description Flags
proposed patch xan.lopez: review+, xan.lopez: commit-queue-

Description Philippe Normand 2009-09-22 05:13:14 PDT
On Jaunty icu-config --ldflags returns "-lm -L/usr/lib -licui18n -licuuc -licudata -lm"
On Fedora: -licui18n -licuuc -licudata -lpthread -lm

I had link errors caused by the presence of -L/usr/lib before -L/myprefix (where most of my webkit deps are installed( in libwebkit-1.0.la. 

Changing the call to icu-config to icu-config --ldflags-libsonly fixed the issue for me, thanks to Xan!
Comment 1 Philippe Normand 2009-09-22 05:32:08 PDT
Created attachment 39913 [details]
proposed patch
Comment 2 Jan Alonzo 2009-09-22 05:37:37 PDT
Hi Philippe. What's the error? I'm using Debian and I have the same --ldflags as Ubuntu but no link errors. Can you post the errors here? 

Also in the future if your patch is for review, please mark it as r? so it will end up in the review queue. Please see http://webkit.org/coding/contributing.html for more info.
Comment 3 Xan Lopez 2009-09-22 06:19:53 PDT
(In reply to comment #2)
> Hi Philippe. What's the error? I'm using Debian and I have the same --ldflags
> as Ubuntu but no link errors. Can you post the errors here? 

The error (as he pasted it to me) is:

libtool: link: gcc -fno-strict-aliasing -I./JavaScriptCore/ForwardingHeaders -I./WebKit/gtk -I./WebKit/gtk -Wall -W -Wcast-align -Wchar-subscripts -Wreturn-type -Wformat -Wformat-security -Wno-format-y2k -Wundef -Wmissing-format-attribute -Wpointer-arith -Wwrite-strings -Wno-unused-parameter -Wno-parentheses -fno-exceptions -fvisibility=hidden -pthread -I/home/pnormand/gst/jhbuild/install/include/glib-2.0 -I/home/pnormand/gst/jhbuild/install/lib/glib-2.0/include -I/home/pnormand/gst/jhbuild/install/include/gtk-2.0 -I/home/pnormand/gst/jhbuild/install/lib/gtk-2.0/include -I/home/pnormand/gst/jhbuild/install/include/atk-1.0 -I/home/pnormand/gst/jhbuild/install/include/cairo -I/home/pnormand/gst/jhbuild/install/include/pango-1.0 -I/home/pnormand/gst/jhbuild/install/include/glib-2.0 -I/home/pnormand/gst/jhbuild/install/lib/glib-2.0/include -I/home/pnormand/gst/jhbuild/install/include/pixman-1 -I/home/pnormand/gst/jhbuild/install/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/home/pnormand/gst/jhbuild/install/include/libsoup-2.4 -I/home/pnormand/gst/jhbuild/install/include/glib-2.0 -I/home/pnormand/gst/jhbuild/install/lib/glib-2.0/include -I/usr/include/libxml2 -O2 -o Programs/unittests/testloading WebKit/gtk/tests/Programs_unittests_testloading-testloading.o -pthread  ./.libs/libwebkit-1.0.so -L/usr/lib -L/home/pnormand/gst/jhbuild/install/lib -lgobject-2.0 -lgthread-2.0 -lglib-2.0 /home/pnormand/gst/jhbuild/install/lib/libenchant.so /home/pnormand/gst/jhbuild/install/lib/libgailutil.so -lXext -lXinerama -lXrandr -lXcursor -lXcomposite -lXdamage -lXfixes /home/pnormand/gst/jhbuild/install/lib/libgstvideo-0.10.so /home/pnormand/gst/jhbuild/install/lib/libgstbase-0.10.so /home/pnormand/gst/jhbuild/install/lib/libgstreamer-0.10.so -ljpeg /home/pnormand/gst/jhbuild/install/lib/libxslt.so -lsqlite3 -licui18n -licuuc -licudata -lXt -lSM /home/pnormand/gst/jhbuild/install/lib/libgtk-x11-2.0.so /home/pnormand/gst/jhbuild/install/lib/libgdk-x11-2.0.so /home/pnormand/gst/jhbuild/install/lib/libatk-1.0.so /home/pnormand/gst/jhbuild/install/lib/libgdk_pixbuf-2.0.so /home/pnormand/gst/jhbuild/install/lib/libpangocairo-1.0.so /home/pnormand/gst/jhbuild/install/lib/libpangoft2-1.0.so /home/pnormand/gst/jhbuild/install/lib/libcairo.so /home/pnormand/gst/jhbuild/install/lib/libpixman-1.so -lpng12 -lXrender -lX11 /home/pnormand/gst/jhbuild/install/lib/libpango-1.0.so -lm /home/pnormand/gst/jhbuild/install/lib/libfontconfig.so /usr/lib/libfreetype.so -lexpat /home/pnormand/gst/jhbuild/install/lib/libsoup-2.4.so /home/pnormand/gst/jhbuild/install/lib/libgthread-2.0.so -lpthread -lrt /usr/lib/libxml2.so /usr/lib/libgnutls.so /usr/lib/libtasn1.so -lz /lib/libgcrypt.so /home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so -lresolv /home/pnormand/gst/jhbuild/install/lib/libgobject-2.0.so /home/pnormand/gst/jhbuild/install/lib/libgmodule-2.0.so -ldl /home/pnormand/gst/jhbuild/install/lib/libglib-2.0.so -pthread -Wl,-rpath -Wl,/home/pnormand/gst/jhbuild/build/WebKit/.libs -Wl,-rpath -Wl,/home/pnormand/gst/jhbuild/install/lib -Wl,-rpath -Wl,/home/pnormand/gst/jhbuild/install/lib
/home/pnormand/gst/jhbuild/install/lib/libsoup-2.4.so: undefined reference to `g_main_context_push_thread_default'
/home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so: undefined reference to `g_mkstemp_full'
/home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so: undefined reference to `g_byte_array_unref'
/home/pnormand/gst/jhbuild/install/lib/libgtk-x11-2.0.so: undefined reference to `g_array_get_element_size'
/home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so: undefined reference to `g_hostname_to_ascii'
/home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so: undefined reference to `g_byte_array_get_type'
/home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so: undefined reference to `g_error_new_valist'
/home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so: undefined reference to `g_ptr_array_new_with_free_func'
/home/pnormand/gst/jhbuild/install/lib/libsoup-2.4.so: undefined reference to `g_main_context_pop_thread_default'
/home/pnormand/gst/jhbuild/install/lib/libgtk-x11-2.0.so: undefined reference to `g_array_unref'
/home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so: undefined reference to `g_array_get_type'
/home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so: undefined reference to `g_main_context_get_thread_default'
./.libs/libwebkit-1.0.so: undefined reference to `g_mapped_file_unref'
/home/pnormand/gst/jhbuild/install/lib/libgio-2.0.so: undefined reference to `g_hostname_is_non_ascii'
/home/pnormand/gst/jhbuild/install/lib/libsoup-2.4.so: undefined reference to `g_hostname_is_ip_address'
collect2: ld returned 1 exit status
make[1]: *** [Programs/unittests/testloading] Error 1
make[1]: Leaving directory `/home/pnormand/gst/jhbuild/build/WebKit'
make: *** [all] Error 2

> 
> Also in the future if your patch is for review, please mark it as r? so it will
> end up in the review queue. Please see
> http://webkit.org/coding/contributing.html for more info.
Comment 4 Xan Lopez 2009-09-22 06:21:06 PDT
And the issue comes here:

-L/usr/lib -L/home/pnormand/gst/jhbuild/install/lib
-lgobject-2.0 -lgthread-2.0 -lglib-2.0

-L/usr/lib coming first, the system will first try to get the libraries from there, succeed, and use the wrong ones when linking.
Comment 5 Christian Dywan 2009-09-22 08:29:48 PDT
I see the same problem on archlinux 64bit and the fix suggested by Philippe solves it for me.
Comment 6 Xan Lopez 2009-09-22 09:25:14 PDT
Comment on attachment 39913 [details]
proposed patch

OK, let's do this :)
Comment 7 Xan Lopez 2009-09-22 09:25:34 PDT
Landed in r48636, closing.