Closed Bug 600179 Opened 10 years ago Closed 9 years ago

LDAP DLLs reference compiler debug DLLs when building a non-debug build

Categories

(Directory :: LDAP C SDK, defect, critical)

x86
Windows XP
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: mcsmurf, Assigned: mcsmurf)

References

Details

Attachments

(2 files)

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.
Duplicate of this bug: 600555
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.
Attachment #487260 - Flags: review?(richm) → review+
Flagging for checkin, I'll do this soon.
Keywords: checkin-needed
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
Keywords: checkin-needed
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.