Closed
Bug 1040124
Opened 11 years ago
Closed 11 years ago
WebRTC signaling tests fail to build on Ubuntu 12.04LTS
Categories
(Core :: WebRTC, defect)
Tracking
()
RESOLVED
FIXED
mozilla33
People
(Reporter: m_and_m, Assigned: m_and_m)
References
Details
Attachments
(1 file)
|
821 bytes,
patch
|
ted
:
review+
glandium
:
review+
|
Details | Diff | Splinter Review |
WebRTC signaling tests fail to build on Ubuntu 12.04TLS. It fails to find a number of symbols:
1:03.19 /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libgtk-x11-2.0.so: error: undefined reference to 'g_module_close'
1:03.19 /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libgtk-x11-2.0.so: error: undefined reference to 'g_module_build_path'
1:03.19 /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libgtk-x11-2.0.so: error: undefined reference to 'g_module_symbol'
1:03.19 /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libgtk-x11-2.0.so: error: undefined reference to 'g_module_supported'
1:03.19 /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libgtk-x11-2.0.so: error: undefined reference to 'g_module_open'
1:03.19 /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libgtk-x11-2.0.so: error: undefined reference to 'g_module_error'
1:03.19 collect2: ld returned 1 exit status
1:03.19 make[5]: *** [signaling_unittests] Error 1
1:03.19 make[4]: *** [media/webrtc/signaling/test/libs] Error 2
1:03.19 make[3]: *** [libs] Error 2
1:03.19 make[2]: *** [default] Error 2
1:03.19 make[1]: *** [realbuild] Error 2
1:03.19 make: *** [build] Error 2
| Assignee | ||
Updated•11 years ago
|
OS: All → Linux
Summary: WebRTC signaling tests fail to build → WebRTC signaling tests fail to build on Ubuntu 12.04LTS
| Assignee | ||
Comment 1•11 years ago
|
||
Attachment #8458041 -
Flags: review?(ted)
Comment 2•11 years ago
|
||
Comment on attachment 8458041 [details] [diff] [review]
WebRTC Signaling tests fail to build on Ubuntu 12.04LTS
Review of attachment 8458041 [details] [diff] [review]:
-----------------------------------------------------------------
r=me but I really want glandium to weigh in on this. You can land with my review. This seems like the same issue as bug 1040025.
Attachment #8458041 -
Flags: review?(ted)
Attachment #8458041 -
Flags: review?(mh+mozilla)
Attachment #8458041 -
Flags: review+
Comment 4•11 years ago
|
||
See bug 1040025. I don't think we should work around so easily when the problem is on Ubuntu's side. But I'll do some research.
Comment 5•11 years ago
|
||
(In reply to Mike Hommey [:glandium] from comment #4)
> See bug 1040025. I don't think we should work around so easily when the
> problem is on Ubuntu's side. But I'll do some research.
Well the problem is that this means that my builder, which is the only
thing running a bunch of these tests, doesn't work. So, either we need
a workaround I can install on Ubuntu or we need this fixed.
Comment 6•11 years ago
|
||
Or you can get Ubuntu to fix it, because this *is* a problem in Ubuntu.
$ objdump -T libgtk-x11-2.0.so.0 | grep g_module
0000000000000000 DF *UND* 0000000000000000 g_module_close
0000000000000000 DF *UND* 0000000000000000 g_module_build_path
0000000000000000 DF *UND* 0000000000000000 g_module_symbol
0000000000000000 DF *UND* 0000000000000000 g_module_supported
0000000000000000 DF *UND* 0000000000000000 g_module_open
0000000000000000 DF *UND* 0000000000000000 g_module_error
$ readelf -d libgtk-x11-2.0.so.0 | grep gmodule
The Gtk version in precise+1 has the fix. precise-update doesn't.
The fix in Gtk is:
https://git.gnome.org/browse/gtk+/commit/gtk/Makefile.am?h=gtk-2-24&id=65ea14d42151941a2c53843b13b244f38ece3b9d
The reason given in the commit is half true. Libraries with undefined symbols need to have direct dependencies on the libraries defining those symbols, independently of what ld/gold can say when building against those libraries.
Now, to the interesting part:
- This only happens with gold, any version
- This only happens when building programs, not shared libraries
- This only happens when all of the following libraries are linked: -lgtk-x11-2.0 -lpangocairo-1.0 -lX11 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lfreetype -lfontconfig -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lXfixes -lstdc++ -lm. Remove any single one of them, and the error about gmodules symbols missing goes away. So yes, in fact, it's the addition of -lXfixes in bug 983504 that tripped us over. (for those following at home, you can reproduce with a dummy .c file with a simple main() function)
- Moving some libraries around makes the number of undefined symbol errors go down to one.
So all in all, it's a weird gold behavior happening because of a genuine bug in gtk. Two bugs in one.
Now, since adding -lgmodule-2.0 in media/webrtc/signaling/test/Makefile.in is only affecting those unit tests built there, and since I haven't found other flags that make this go away, I'm inclined to say okay, let's work around this that way, even if it's awful. Please add a comment in the makefile pointing to this comment.
Updated•11 years ago
|
Attachment #8458041 -
Flags: review?(mh+mozilla) → review+
Comment 7•11 years ago
|
||
Target Milestone: --- → mozilla33
Comment 8•11 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•