Closed Bug 972983 Opened 6 years ago Closed 6 years ago
Debug-mode Linux Firefox build failure: XPCCall
Context .cpp:380: error: undefined reference to 'js::Base Proxy Handler::SET'
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36 Steps to reproduce: Daily debug-mode x86_64 Linux Firefox build stopped succeeding as of Feb 13, 2014 8:34:52 PM CST. git revision b921abacaf1e89ab77677b344aee1e60a8fe79b7 Actual results: 47:04.34 INPUT("../../gfx/skia/Unified_cpp_gfx_skia16.o") 47:04.34 47:04.34 /usr/bin/ld.gold.real: warning: hidden symbol 'pixman_add_triangles' in /media/jenkins/workspace/firefox_default_linux_debug/obj-x86_64-unknown-linux-gnu/toolkit/library/../../gfx/cairo/libpixman/src/pixman-trap.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libcairo.so 47:04.34 /media/jenkins/workspace/firefox_default_linux_debug/js/xpconnect/src/XPCCallContext.cpp:380: error: undefined reference to 'js::BaseProxyHandler::SET' 47:04.34 /media/jenkins/workspace/firefox_default_linux_debug/js/xpconnect/src/XPCCallContext.cpp:380: error: undefined reference to 'js::BaseProxyHandler::GET' 47:04.34 collect2: ld returned 1 exit status 47:04.34 make: *** [libxul.so] Error 1 47:04.34 make: *** [toolkit/library/libs] Error 2 47:04.34 make: *** [libs] Error 2 47:04.34 make: *** [default] Error 2 47:04.34 make: *** [realbuild] Error 2 47:04.34 make: *** [build] Error 2 Expected results: Usually this build succeeds. .mozconf as follows: # Firefox ac_add_options --enable-application=browser ac_add_options --enable-profiling ac_add_options --enable-debug ac_add_options --disable-optimize ac_add_options --enable-trace-malloc # Treat warnings as errors in directories with FAIL_ON_WARNINGS. # This stopped working 2012-12-04 for Ubuntu 12.04 ac_add_options --enable-warnings-as-errors # Use ccache ac_add_options --with-ccache=/usr/bin/ccache # This will overwrite the default of stripping everything and keep the symbol table. # This is useful for profiling with eideticker. See bug 788680 #STRIP_FLAGS="--strip-debug" mk_add_options MOZ_MAKE_FLAGS="-j1" # Enable parallel compiling # mk_add_options MOZ_MAKE_FLAGS="-j4"
Build platform is Ubuntu 12.04 x86_64
Confirmed by cviecco (same platform Ubuntu 12.04 x86_64)
In release-mode "ac_add_options --enable-optimize" the build is fine. - Nigel
I'm also getting this on Ubuntu 12.10 x86_64. Gcc version is: gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
Status: UNCONFIRMED → NEW
Ever confirmed: true
Severity: normal → blocker
Component: Untriaged → XPConnect
Product: Firefox → Core
(In reply to Karl Tomlinson (:karlt) from comment #6) > Created attachment 8376920 [details] [diff] [review] > use enum for BaseProxyHandler::Action values Hm, does this really work? I think I tried that, and had to ditch it because you can't OR enum values or something. Can you run your patch through try -b do -p all -u none -t none? r=me if that's green, but I suspect it isn't.
(In reply to Bobby Holley (:bholley) from comment #7) > Hm, does this really work? I think I tried that, and had to ditch it because > you can't OR enum values or something. You can't OR strongly typed (MOZ_ENUM_TYPE(Action)) enums because they won't be implicitly converted to another type, but plain old enums are implicitly converted, to int I think in this case, before the bitwise operation. > Can you run your patch through try -b > do -p all -u none -t none? r=me if that's green, but I suspect it isn't. Thanks. I'll put it through try, with some tests, when I have some more things to test.
Hi Bobby and Karl, I have the same build error on ubuntu 12.04 64bit. If we have OR operation concern, I suggest to use the original code. I just define these variable in cpp file. This patch works for me. -- The static member need to be "defined" outside of the class declaration.
Some build results, but need to another of my patches killed the NT builds. https://tbpl.mozilla.org/?tree=Try&rev=155dfdec56b7 https://tbpl.mozilla.org/?tree=Try&rev=a1f12431121d (In reply to Karl Tomlinson (:karlt) from comment #8) > strongly typed (MOZ_ENUM_TYPE(Action)) enums Actually MOZ_ENUM_TYPE() is not strongly typed, but the underlying type. MOZ_BEGIN_ENUM_CLASS is the strongly typed form.
Comment on attachment 8376920 [details] [diff] [review] use enum for BaseProxyHandler::Action values r=me on this if it does the trick.
Attachment #8376920 - Flags: review?(bobbyholley) → review+
Comment on attachment 8376954 [details] [diff] [review] js_BaseProxyHandler_build_error.patch I think the other patch is probably the way to go, assuming it works.
Successful builds on WINNT also. https://tbpl.mozilla.org/?tree=Try&rev=e41851a88ade https://tbpl.mozilla.org/?tree=Try&rev=17e4b2554586
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla30
Confirming that the build is now succeeding again on Ubuntu 12.04. As of git revision e0a06f0abb7d8baa0d649228ea367cf7a1f726cd. Thanks, all! - Nigel
You need to log in before you can comment on or make changes to this bug.