Closed Bug 533424 Opened 15 years ago Closed 14 years ago

jsapi-tests.exe can't be run on mozilla-1.9.2 with jemalloc enabled

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: standard8, Unassigned)

References

Details

(Whiteboard: [tb31wants])

Attachments

(1 file)

We've been running unit tests with --enable-jemalloc on Thunderbird builds on both comm-central + mozilla-central and comm-1.9.1 + mozilla-1.9.1. These have been running fine. We're now trying to set up unit tests with comm-central and mozilla-1.9.2 with exactly the same configuration. However, when the builders try to run jsapi-tests.exe we get: "The application has failed to start because MSVCP80.dll was not found." This does not happen on any of the other compiled unit tests, the crash reporter or thunderbird.exe; leading me to believe this is an issue with the jsapi-tests.exe build system. The only thing slightly different in the linker lines that I can see is that the other compiled unit tests tend to link against xpcom, but the jsapi-tests one (correctly) doesn't. Firefox unit test builders don't build with --enable-jemalloc which is why they don't see it (although I think they should as then they would be closer to the final configuration). For now I'll disable jemalloc to get these running, but I'd really like to figure out why this is occurring and fix it so we can get the same config across all branches.
Blocks: 533425
This was fixed by bug 508861 on trunk. Alternately, we could probably fix it by using -D_STATIC_CPPLIB in that specific Makefile, as I found out in bug 415928 comment 4.
(In reply to comment #1) > This was fixed by bug 508861 on trunk. Alternately, we could probably fix it by > using -D_STATIC_CPPLIB in that specific Makefile, as I found out in bug 415928 > comment 4. I knew there was something. The -D_STATIC_CPPLIB seems to work and seems the safer fix for 1.9.2. Should we make that change in all makefiles, or just the 1.9.2 branch?
Let's just take that on 1.9.2, the jemalloc changes are working fine on trunk.
Attached patch The fixSplinter Review
I think this is the right thing to do - it worked on the windows box. I'm assuming this won't adversely affect WINCE. I don't think I can push to try server as the Firefox unit test boxes don't build with --enable-jemalloc. Also assuming that as this is test-only I can push it to 1.9.2 as npotb (once I've got review).
Assignee: general → bugzilla
Status: NEW → ASSIGNED
Attachment #416755 - Flags: review?
Attachment #416755 - Flags: review? → review?(ted.mielczarek)
Comment on attachment 416755 [details] [diff] [review] The fix Yeah, pushing this to the branch as a test-only fix sounds reasonable.
Attachment #416755 - Flags: review?(ted.mielczarek) → review+
I checked this in and then had to back out again due to Windows Leak bustage: http://hg.mozilla.org/releases/mozilla-1.9.2/rev/618084a7c782 http://hg.mozilla.org/releases/mozilla-1.9.2/rev/1a03aa2e47a1 link -NOLOGO -OUT:jsapi-tests.exe -PDB:jsapi-tests.pdb -NXCOMPAT -SAFESEH -DYNAMICBASE -DEBUG -DEBUGTYPE:CV tests.obj selfTest.obj testPropCache.obj testXDR.obj testIntString.obj testSameValue.obj testDebugger.obj testDefineGetterSetterNonEnumerable.obj e:/builds/moz2_slave/mozilla-1.9.2-win32-debug/build/obj-firefox/dist/lib/nspr4.lib e:/builds/moz2_slave/mozilla-1.9.2-win32-debug/build/obj-firefox/dist/lib/plc4.lib e:/builds/moz2_slave/mozilla-1.9.2-win32-debug/build/obj-firefox/dist/lib/plds4.lib ../js_static.lib kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "void __cdecl std::_Debug_message(unsigned short const *,unsigned short const *,unsigned int)" (?_Debug_message@std@@YAXPBG0I@Z) already defined in libcpmtd.lib(stdthrow.obj) Creating library jsapi-tests.lib and object jsapi-tests.exp NEXT ERROR jsapi-tests.exe : fatal error LNK1169: one or more multiply defined symbols found http://tinderbox.mozilla.org/showlog.cgi?log=Firefox3.6/1260436762.1260437598.19316.gz Firefox Windows Leak does have --enable-jemalloc, but I don't yet understand why this change worked on the Thunderbird unit test box but didn't on Firefox Leak.
Bleh, I guess the rest of the JS code is linked to the other libc runtime. Also, I don't think --enable-jemalloc and --enable-debug are actually supported, are they?
(In reply to comment #7) > Bleh, I guess the rest of the JS code is linked to the other libc runtime. > Also, I don't think --enable-jemalloc and --enable-debug are actually > supported, are they? Urgh, so according to bug 417066 and my examination of the configure.in files, then --enable-jemalloc and --enable-trace-malloc don't mix, and --enable-jemalloc gets ignored as a result. So now I'm really not sure what is going on.
Blocks: 586962
I've never had time to figure this out on 1.9.2. Given: - the 1.9.2 branch is in security/stability mode, - Thunderbird trunk has packaged tests, and therefore jemalloc is enabled by default (I'm not sure if jsapi-tests.exe is run or not, but I guess it probably is, and even it isn't we'll be doing the same as FF). - jemalloc is meant to be disabled if MOZ_MEMORY (aka trace malloc) is enabled then I think I'm not going to get to this, nor is anyone else. With that last point, I think this is probably won't fix anyway, so marking it as such, though others can re-open if they disagree.
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → WONTFIX
Assignee: bugzilla → general
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: