Last Comment Bug 696788 - Build using jemalloc and SDK compiler crashes shortly after startup
: Build using jemalloc and SDK compiler crashes shortly after startup
Product: Core
Classification: Components
Component: Build Config (show other bugs)
: Trunk
: x86 Windows XP
-- normal (vote)
: ---
Assigned To:
: Gregory Szorc [:gps] (away until 2017-03-20)
Depends on:
  Show dependency treegraph
Reported: 2011-10-24 09:47 PDT by
Modified: 2011-11-06 13:50 PST (History)
1 user (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

Possible patch (1015 bytes, patch)
2011-10-24 09:53 PDT,
khuey: review+
bugspam.Callek: feedback+
Details | Diff | Splinter Review

Description User image 2011-10-24 09:47:17 PDT
The CRT provided with the Windows SDK compiler doesn't import free from crtdll.obj, so we don't try to build our own private CRT import library.

This means that when we enable jemalloc, we pass MOZ_UTILS_LDFLAGS directly to NSPR/NSS via DLLFLAGS. However there are two problems with this:

In NSPR this doesn't work at all, since NSPR doesn't know what EXPAND_LIBNAME_PATH or LIBXUL_DIST are, and so the $(call EXPAND_LIBNAME_PATH,mozutils,$(LIBXUL_DIST)/lib) simply gets ignored.

For NSS the mozilla/security/manager/ exports DLLFLAGS into the environment. This does seem to correctly expand it. However for some reason some (or all?) of the DLLs still end up linking to the CRT free instead.
Comment 1 User image 2011-10-24 09:53:31 PDT
Created attachment 569095 [details] [diff] [review]
Possible patch

I found that inserting the lib using -DEFAULTLIB (which resembles the way we do it for broken crtdll.obj builds) does ensure that NSS links correctly, although we then have to port the fix to comm-central because for some reason its copy of the broken DLLFLAGS confuses NSS again.
Comment 2 User image 2011-10-30 16:44:46 PDT
Pushed changeset 204bd66034e2 to mozilla-central.
Comment 3 User image 2011-11-06 13:50:24 PST
Pushed changeset 16efbe29a2a2 to comm-central.

Note You need to log in before you can comment on or make changes to this bug.