Closed Bug 600179 Opened 10 years ago Closed 9 years ago
LDAP DLLs reference compiler debug DLLs when building a non-debug build
After the libxul switch my SeaMonkey and Thunderbird builds do not launch anymore and complain about a missing MSVCR90D.dll file. I built a release build and not a debug build. Dependency walker showed that nsldap32v60.dll and nsldappr32v60.dll (inside xul.dll) reference MSVCR90D.dll. I attached a copy of the directory/c-sdk/config/autoconf.mk file in my objdir (SeaMonkey build). I use Microsoft Visual Studio 2008 together with Windows 7 SDK as build environment.
Summary: LDAP DLLs reference compiler debug DLLs although when creating a non-debug build → LDAP DLLs reference compiler debug DLLs when building a non-debug build
My current .mozconfig: export MOZ_DEBUG_SYMBOLS=1 set MOZ_DEBUG_SYMBOLS=1 ac_add_options --enable-application=suite ac_add_options --enable-tests ac_add_options --enable-optimize ac_add_options --enable-debugger-info-modules mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-suite
I think the problem is this: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/directory/c-sdk/configure.in&rev=5.74&mark=1612#1612 it adds -DEBUG to the command line when enabling symbols.
I found a workaround: The problem is LDAP builds by default with debug _enabled_. So you need to add "ac_add_options --disable-debug" to your .mozconfig. This does not cause problems on the tinderboxen because those use jemalloc (mozcrt19.dll). Maybe the LDAP SDK should also disable debug by default (if possible).
Rich: What do you think about disabling debug build by default in the LDAP C-SDK so that it matches the rest of the Mozilla code where debug is disabled by default? See Comment 0 and Comment 4 on why enabling debug by default causes problems with some Mozilla apps. Or at least disable it when MOZILLA_CLIENT is set?
(In reply to comment #5) > Rich: What do you think about disabling debug build by default in the LDAP > C-SDK so that it matches the rest of the Mozilla code where debug is disabled > by default? See Comment 0 and Comment 4 on why enabling debug by default causes > problems with some Mozilla apps. Or at least disable it when MOZILLA_CLIENT is > set? Sure. Shouldn't be a problem to disable debug by default.
(In reply to comment #4) > I found a workaround: ... (ac_add_options --disable-debug) Doesn't work for me - stil searching the MSVCR90D.dll. I have found some version of this dll in "c:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_2a4cbfc25558bcd3\" and tried to copy it in bin directory. Than I've got this message: --------------------------- Microsoft Visual C++ Debug Library --------------------------- Debug Error! Program: ...mm-central\objdir-tb-release\mozilla\dist\bin\thunderbird.exe R6034 An application has made an attempt to load the C runtime library without using a manifest. This is an unsupported way to load Visual C++ DLLs. You need to modify your application to build with a manifest. For more information, see the "Visual C++ Libraries as Shared Side-by-Side Assemblies" topic in the product documentation. (Press Retry to debug the application) --------------------------- (I don't understand it, maybe it can help to anyone :) )
(In reply to comment #7) Did you clobber your obj-dir?
This patch enabled optimized build by default. autoconf-2.13 was used for creating configure.
Assignee: nobody → bugzilla
Status: NEW → ASSIGNED
Attachment #487260 - Flags: review?(richm)
(In reply to comment #8) > (In reply to comment #7) > Did you clobber your obj-dir? Sorry, my fault :-/ After cleaning the obj-dir and new build (with "ac_add_options --disable-debug" added) all is working OK. Sorry again, first time with code:) (And first running build of TB now;)
Comment on attachment 487260 [details] [diff] [review] Switch to optimized build as default I can't set the review flag, but I approve this patch.
Flagging for checkin, I'll do this soon.
Comment on attachment 487260 [details] [diff] [review] Switch to optimized build as default >RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v >- [ if test "$enableval" = "no"; then >- MOZ_DEBUG= >- else Nit: I would leave the '= "no"' case as first one, but...
Checked into the new repository: http://hg.mozilla.org/projects/ldap-sdks/rev/8f63d094a718
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.