Difference between revisions of "Mozilla2Seamonkey/Problem Log/Windows"

From Apache OpenOffice Wiki
Jump to: navigation, search
(workaround)
(cause)
Line 71: Line 71:
  
 
That seems to be a problem with manifest files - the xpidl.exe and xpt_link.exe used during the build need a manifest file.
 
That seems to be a problem with manifest files - the xpidl.exe and xpt_link.exe used during the build need a manifest file.
 
 
  
 
==== solution ====
 
==== solution ====

Revision as of 10:15, 10 November 2008

The following problems appeared while building the Seamonkey sources on Windows, after the great preliminary work done by Pierre Pasteau.

Building with Microsoft Visual Studio 2005

msvcp.dll not found

problem

Configure fails with a complaint that msvcp.dll is not found in C:\Program Files\Microsoft Visual Studio 8\VC\..\SDK\v2.0\bin. Well, that's true, it's in %SRC_ROOT\external\msvcp80 - actually, that's a pre-requisite. Submitted as Issue 95642

workaround

copy all the files from %SRC_ROOT\external\msvcp80 to the locate where configure expects them

cairo not found during configure

problem

the configure step for Mozilla fails, with a "package cairo was not found ..." message.

solution

Fixed in makefile.mk (use --enable-system-cairo on non-Windows platforms only)

strange error message in .../ldap/include

problem

Building Mozilla in directory/c-sdk/ldap/include fails with an error message

 Makefile:89: *** target pattern contains no `%'.  Stop.

Huh?

solution

Aunt Google says: make 1.81, as currently part of cygwin, does not support Windows paths anymore. So, targets, and target dependencies, in the makefile need to be converted to cygwin notation.

(source)

Fixed in seamonkey-source-1.1.12.patch.

compiling IDLs fails

problem

during compilation of some IDL files, message boxes pop up saying something about runtime libraries used in an invalid way

cause

The vc71*.zip archives to be put into the download folder contain DLLs which are not compatible with the 2005 compiler.

workaround

place the files extracted from vc8-moztools.zip in %SRC_ROOT\wntmsci11.pro\misc\build\moztoolsinst and %SRC_ROOT\wntmsci11.pro\misc\build\moztoolsinst\vc71

TODO: clarify: why is there moztoolsinst and moztoolsinst\vc71, in parts containing the same files?

solution

None yet.

TODO: Implement a real solution which requires vc8-moztools.zip to be present in the download folder

building mozilla/xpcom/base fails

problem

build fails in mozilla/xpcom/base without a meaningful error message

cause

That seems to be a problem with manifest files - the xpidl.exe and xpt_link.exe used during the build need a manifest file.

solution

Embed manifest files into the .dll resp. .exe. Fortunately, there is a patch for this already in Bugzilla, which with slight adjustments also solved our problem.

Fix is committed to moz/patches/embed_manifest.patch and moz/seamonkey-source-1.1.12.patch.

building mozilla/security/coreconf fails

problem

builds fails in mozilla/security/coreconf with

 ../coreconf/rules.mk:383: target `g' doesn't match the target pattern
 ../coreconf/rules.mk:430: target `g' doesn't match the target pattern
 ../coreconf/rules.mk:431: warning: overriding commands for target `g'
 ../coreconf/rules.mk:384: warning: ignoring old commands for target `g'
 ../coreconf/rules.mk:461: target `g' doesn't match the target pattern
 ../coreconf/rules.mk:462: warning: overriding commands for target `g'
 ../coreconf/rules.mk:431: warning: ignoring old commands for target `g'
 ../coreconf/rules.mk:469: target `g' doesn't match the target pattern
 ../coreconf/rules.mk:470: warning: overriding commands for target `g'
 ../coreconf/rules.mk:462: warning: ignoring old commands for target `g'
 ../coreconf/rules.mk:473: target `g' doesn't match the target pattern
 ../coreconf/rules.mk:474: warning: overriding commands for target `g'
 ../coreconf/rules.mk:470: warning: ignoring old commands for target `g'
 ../coreconf/rules.mk:488: target `g' doesn't match the target pattern
 ../coreconf/rules.mk:489: warning: overriding commands for target `g'
 ../coreconf/rules.mk:474: warning: ignoring old commands for target `g'
 ../coreconf/rules.mk:492: target `g' doesn't match the target pattern
 ../coreconf/rules.mk:493: warning: overriding commands for target `g'
 ../coreconf/rules.mk:489: warning: ignoring old commands for target `g'
 ../coreconf/rules.mk:990: *** multiple target patterns.  Stop.

workaround

Use a cygwin-make version other than 3.81, which is simply broken. 3.82 is said to have this bug fixed, but does not exist, yet. 3.80 is available from here. If this doesn't exist anymore, google for make-3.80-1.tar.bz2, some sites might still have this archive.

solution

None yet. I am not even sure that it is worth investing time here. Finally, that's a bug in cygwin's make, and compiling SeaMonkey during an OOo build eats enough of my time to workaround cygwin bugs :).

Bug 345482 describes a fix, but it consists of a patch to SeaMonkey, plus a patch to cygwin's make. I failed with the latter, but didn't really spend much time on it.

build fails in security/nss/cmd/shlibsign

problem

build fails with the following log:

 sh /cygdrive/g/src/moz/wntmsci11.pro/misc/build/mozilla/./build/cygwin-wrapper ./sign.sh  \
  WIN95 \
 /cygdrive/g/src/moz/wntmsci11.pro/misc/build/mozilla/security/nss/cmd/shlibsign/sign.sh: line 43: cd: WIN95/lib: No such file or directory
 /shlibsign -v -i
 /cygdrive/g/src/moz/wntmsci11.pro/misc/build/mozilla/security/nss/cmd/shlibsign/sign.sh: line 56: /shlibsign: No such file or directory
 make[3]: *** [g:/src/moz/wntmsci11.pro/misc/build/mozilla/dist/lib/softokn3.chk] Error 127
 make[3]: Leaving directory `/cygdrive/g/src/moz/wntmsci11.pro/misc/build/mozilla/security/nss/cmd/shlibsign'
 make[2]: *** [libs] Error 2
 make[2]: Leaving directory `/cygdrive/g/src/moz/wntmsci11.pro/misc/build/mozilla/security/manager'
 make[1]: *** [tier_50] Error 2
 make[1]: Leaving directory `/cygdrive/g/src/moz/wntmsci11.pro/misc/build/mozilla'
 make: *** [default] Error 2
 dmake:  Error code 2, while making './wntmsci11.pro/misc/build/so_built_ooo_mozab'
 ERROR: Error 65280 occurred while making /cygdrive/g/src/moz

solution

Like on the other platforms, it seems the $(call core_abspath,...) directive in the security/nss/cmd/shlibsign/Makefile does not work - it resolves to an empty string, no matter what. Like for the other platforms, this can be worked around by creating a platform-specific branch in the makefile, which does not use core_abspath. In the case of Windows, I replaced core_abspath with the usage of $(shell cygpath -d -a ...).

Personal tools