Difference between revisions of "Development:Building:Build Errors"

From Camino Wiki
Jump to navigation Jump to search
(→‎Other stuff we've seen; details to be filled in: remove some more non-relevant/obsolete stuff)
 
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
  
A breakdown of the common Camino build errors, what causes them, and how to resolve the error.
+
This page provides a breakdown of the common Camino build errors, their causes, and instructions for  resolving the errors.
 +
 
 +
'''Before looking for your error on this page, make sure that the [http://tinderbox.mozilla.org/showbuilds.cgi?tree=Camino Camino tinderbox] was green when you pulled your source tree.'''
 +
 
 +
If the Camino tinderbox or the Mac builds or UNIX/Linux builds in the [http://tinderbox.mozilla.org/showbuilds.cgi?tree=SeaMonkey SeaMonkey] or [http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox Firefox] tinderboxes are orange or red, you should avoid checking out.
 +
 
 +
If the tinderbox was green when you checked out your source tree, look for your error below.
 +
 
 +
If you don't see your build error below, be sure to also check [http://developer.mozilla.org/en/docs/Mac_OS_X_Build_Prerequisites#Troubleshooting Mac OS X Build Prerequisites: Troubleshooting] in the Mozilla Developer Center for late-breaking build errors.
 +
 
 +
== Build Errors extracted from the cbo Build FAQ ==
 +
 
 +
          <p><strong>Q. I get a link error when building Camino.</strong><br />
 +
            <strong>A.</strong> This has most likely occurred because you are building from within Xcode and have set up <code>.mozconfig</code> for an optimized build and Xcode for a debug build, or the other way around. Follow the instructions above to set your build mode in both <code>.mozconfig</code> and Xcode. Or just build from the command line using <code>make -f client.mk</code>.</p>
 +
 
 +
          <p><strong>Q. I get errors that the Camino build failed at some &lt;CopyFilesX&gt; where X is some number.</strong><br />
 +
 
 +
            <strong>A.</strong> Usually this is because you forgot to <code>make</code> in <code>embedding/config</code> after making code changes. Follow the instructions carefully, and try again.</p>
  
 
== pbxcp: libpermissions.dylib: No such file or directory ==
 
== pbxcp: libpermissions.dylib: No such file or directory ==
Line 27: Line 44:
 
and <tt>make</tt> again (?)
 
and <tt>make</tt> again (?)
  
== make[7]: *** No rule to make target `nsIProxiedChannel.idl', needed by `_xpidlgen/nsIProxiedChannel.h'. Stop. ==
+
==mozilla-config.h: No such file or directory==
 +
In Xcode
 +
====Error Message====
 +
<pre>ChimeraPrefix.h:2: mozilla-config.h: No such file or directory
 +
PreferencePaneBase.mm:168: error: `ClearUserPref' undeclared (first use this function)
 +
PreferencePaneBase.mm:161: error: `prefValue' undeclared (first use this function)
 +
PreferencePaneBase.mm:161: error: `SetIntPref' undeclared (first use this function)
 +
PreferencePaneBase.mm:160: error: `PRInt32' undeclared (first use this function)
 +
PreferencePaneBase.mm:160: error: parse error before `=' token
 +
PreferencePaneBase.mm:153: error: `PR_TRUE' undeclared (first use this function)
 +
PreferencePaneBase.mm:153: error: `PR_FALSE' undeclared (first use this function)
 +
PreferencePaneBase.mm:153: error: `SetBoolPref' undeclared (first use this function)
 +
PreferencePaneBase.mm:133: error: `SetCharPref' undeclared (first use this function)
 +
PreferencePaneBase.mm:126: error: `intPref' undeclared (first use this function)
 +
PreferencePaneBase.mm:122: error: `PRInt32' undeclared (first use this function)
 +
PreferencePaneBase.mm:122: error: parse error before `=' token
 +
PreferencePaneBase.mm:117: error: `boolPref' undeclared (first use this function)
 +
PreferencePaneBase.mm:112: error: `PRBool' undeclared (first use this function)
 +
PreferencePaneBase.mm:112: error: parse error before `=' token
 +
PreferencePaneBase.mm:73: error: `rv' undeclared (first use this function)
 +
PreferencePaneBase.mm:73: error: `NS_SUCCEEDED' undeclared (first use this function)
 +
PreferencePaneBase.mm:72: error: `nsresult' undeclared (first use this function)
 +
PreferencePaneBase.mm:72: error: parse error before `=' token
 +
PreferencePaneBase.mm:71: error: `nsnull' undeclared (first use this function)
 +
PreferencePaneBase.mm:60: error: `NS_IF_ADDREF' undeclared (first use this function)
 +
PreferencePaneBase.mm:58: error: `prefService' undeclared (first use this function)
 +
PreferencePaneBase.mm:58: error: `NS_ASSERTION' undeclared (first use this function)
 +
PreferencePaneBase.mm:57: error: `nsCOMPtr' undeclared (first use this function)
 +
PreferencePaneBase.mm:57: error: parse error before `>' token
 +
PreferencePaneBase.mm:49: error: `NS_IF_RELEASE' undeclared (first use this function)  (Each undeclared identifier is reported only once for each function it appears in.)
 +
PreferencePaneBase.mm:43: nsIPref.h: No such file or directory
 +
PreferencePaneBase.mm:42: nsIServiceManager.h: No such file or directory
 +
PreferencePaneBase.mm:41: nsCOMPtr.h: No such file or directory</pre>
  
In Terminal
+
====Cause====
  
==== Error message ====
+
You attempted to build in Xcode before completing a command-line (<tt>make</tt>) build.
  
../../../dist/bin/xpidl -m header -w -I. -I../../../dist/idl -o _xpidlgen/nsINetUtil nsINetUtil.idl
+
====Solution====
make[7]: *** No rule to make target `nsIProxiedChannel.idl', needed by `_xpidlgen/nsIProxiedChannel.h'.  Stop.
 
make[6]: *** [export] Error 2
 
make[5]: *** [export] Error 2
 
make[4]: *** [export_tier_9] Error 2
 
make[3]: *** [tier_9] Error 2
 
make[2]: *** [default] Error 2
 
make[1]: *** [build] Error 2
 
make: *** [build] Error 2
 
  
==== Cause ====
+
Re-read [[Development:Building#Pulling_Source_and_Building_Gecko_and_Camino|the instructions on building Gecko and Camino]] and perform the required steps (specifically step 5).
 
 
Unknown
 
 
 
==== Solution ====
 
 
 
Unknown
 
 
 
== rsync: readlink failed: Too many levels of symbolic links (62) ==
 
  
 +
=="/Users/username/Documents/code/CaminoUni/ppc/dist/CaminoDebug.app" failed: No such file or directory (2)==
 
In Terminal
 
In Terminal
 +
====Error Message====
 +
<pre>** BUILD SUCCEEDED **
 +
rsync -a --copy-unsafe-links build/Development/Camino.app/ ../dist/Camino.app
 +
rm -f ../dist/Camino.app/Contents/MacOS/components/camino.xpt
 +
../dist/bin/xpt_link ../dist/Camino.app/Contents/MacOS/camino.xpt ../dist/Camino.app/Contents/MacOS/components/*.xpt
 +
rm -f ../dist/Camino.app/Contents/MacOS/components/*.xpt
 +
mv ../dist/Camino.app/Contents/MacOS/camino.xpt ../dist/Camino.app/Contents/MacOS/components/camino.xpt
 +
tier_testharness: 
 +
/usr/bin/make export_tier_testharness
 +
export_tier_testharness
 +
/usr/bin/make libs_tier_testharness
 +
libs_tier_testharness
 +
set -e; \
 +
for mkfile in build/macosx/universal/flight.mk; do \
 +
  make -f /Users/username/Documents/code/mozilla/$mkfile postflight_all TOPSRCDIR=/Users/username/Documents/code/mozilla MOZ_OBJDIR=/Users/username/Documents/code/mozilla/../CaminoUni MOZ_BUILD_PROJECTS="ppc i386"; \
 +
done
 +
/usr/bin/make -C /Users/username/Documents/code/mozilla/../CaminoUni/ppc/camino/installer \
 +
          UNIVERSAL_BINARY= SIGN_NSS= stage-package
 +
Creating package directory...
 +
building file list ... rsync: link_stat "/Users/username/Documents/code/CaminoUni/ppc/dist/CaminoDebug.app" failed: No such file or directory (2)
 +
done
  
====Error message====
+
sent 25 bytes received 20 bytes 90.00 bytes/sec
 
+
total size is 0 speedup is 0.00
  Touch /Users/delliott/Documents/Camino/mozilla/camino/build/Development/Camino.app
+
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-24/rsync/main.c(717)
    cd /Users/delliott/Documents/Camino/mozilla/camino
+
make[2]: *** [stage-package] Error 23
    /usr/bin/touch -c /Users/delliott/Documents/Camino/mozilla/camino/build/Development/Camino.app
+
make[1]: *** [postflight_all] Error 2
** BUILD SUCCEEDED **
+
make: *** [build] Error 2</pre>
  rsync -a --copy-unsafe-links build/Development/Camino.app/ ../dist/Camino.app
 
rsync: readlink "/Users/delliott/Documents/Camino/mozilla/camino/build/Development/Camino.app/Contents/Frameworks/
 
SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/
 
SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework
 
  SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/
 
SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/
 
SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/
 
SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/
 
SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/
 
SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/SharedMenusCocoa.framework/
 
SharedMenusCocoa.framework/SharedMenusCocoa.framework" failed: Too many levels of symbolic links (62)
 
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-24/rsync/main.c(717)
 
make[5]: *** [libs] Error 23
 
make[4]: *** [libs_tier_99] Error 2
 
make[3]: *** [tier_99] Error 2
 
make[2]: *** [default] Error 2
 
make[1]: *** [build] Error 2
 
make: *** [build] Error 2
 
  
 
====Cause====
 
====Cause====
  
You have a symlink to the SharedMenusCocoa.framework directory in your /Library/Frameworks/SharedMenusCocoa.framework directory. Computers do not like recursion.
+
You attempted to build a Universal debug build (or have tried to <tt>make</tt> in <tt>camino/installer</tt> in a single-architecture debug build). In either case, the <tt>Camino.app</tt> in <tt>dist</tt> has built correctly and can be used for debugging.
  
 
====Solution====
 
====Solution====
  
Re-install the SharedMenusCocoa framework following these instructions: http://www.caminobrowser.org/development/build/ and make.
+
Don’t attempt to package or distribute debug builds, and don’t attempt to build a Universal debug build. If you are doing development, you only need a single-architecture debug build. If you want to distribute builds, use a [[Development:Building:mozconfig|distribution <tt>.mozconfig</tt>]] instead.
 
 
==pipe: Too Many Open Files==
 
In Terminal on 10.3.x
 
  
 +
==internal compiler error: Bus error==
 +
In Terminal
 
====Error Message====
 
====Error Message====
pipe: Too Many Open Files
+
<pre>In file included from /builds/tinderbox/CmTrunk/Darwin_8.6.0_Depend/build/ppc/camino/src/extensions/CHStackView.m:41:
 
+
/builds/tinderbox/CmTrunk/Darwin_8.6.0_Depend/build/ppc/camino/src/extensions/NSView+Utils.h:45: internal compiler error: Bus error
(often repeated a couple of times, followed by some "Error: Tier foo" lines)
+
Please submit a full bug report,
 
+
with preprocessed source if appropriate.
 +
See <URL:http://developer.apple.com/bugreporter> for instructions.
 +
{standard input}:10:FATAL:.abort  detected.  Assembly stopping.
 +
** BUILD FAILED **
 +
make[6]: *** [libs] Error 1
 +
make[5]: *** [libs] Error 2
 +
make[4]: *** [libs_tier_app] Error 2
 +
make[3]: *** [tier_app] Error 2
 +
make[2]: *** [alldep] Error 2
 +
make[1]: *** [alldep] Error 2</pre>
 
====Cause====
 
====Cause====
  
* A bug in <tt>make</tt> that ships with Xcode 1.x (see {{bug|335506}}); happens most often when making in the objdir
+
You upgraded Xcode but did not delete the Xcode header cache.
  
 
====Solution====
 
====Solution====
  
There's no "real" solution to this issue.  Work-arounds include:
+
Delete header cache from <code>/Library/Caches/com.apple.Xcode.501/SharedPrecompiledHeaders</code> as instructed in the [[Development:Building#Upgrading Xcode|build instructions]].
* Just <tt>make</tt> again
 
** If it continues to fail after a couple of tries, go back to <tt>mozilla</tt> and <tt>make -f client.mk</tt>
 
* Manually upgrading your <tt>make</tt> (not recommended)
 
  
 
=Other stuff we've seen; details to be filled in=
 
=Other stuff we've seen; details to be filled in=
  
==Missing/non-Uni SMF==
+
==Things that need to be tested==
 +
 
 +
* [5:43pm] mento: case-sensitive hfs and ufs might not work for camino<br>[5:43pm] mento: we've had at least one patch to correct that, i'm not sure if there are more<br>[5:44pm] mento: problem was we were #including header files with the wrong case<br>[5:44pm] ardissone|away: yeah<br>[5:44pm] mento: nothing in the core, only in camino<br>[5:44pm] mento: someone liked calling it Quickdraw.h<br>[5:44pm] ardissone|away: i think we've fixed all the ones mentioned<br>[5:44pm] ardissone|away: we just need someone to try again <br>[5:44pm] mento: gofer it<br>[5:45pm] mento: actually, just set up a test disk image<br>[5:45pm] mento: copy the sdk to it<br>[5:45pm] mento: and the source tree<br>[5:45pm] mento: and build<br>[5:45pm] mento: no need for a whole system reinstall
  
 
==Other==
 
==Other==
There are some described on the Camino Build instructions page, on Building Mozilla, and on the Mac Build Instructions pages
+
There are some described on the Camino Build instructions page, on Building Mozilla, and on the Mac Build Instructions pages (links below); most are probably not relevant at all.
 +
 
 +
* [http://developer.mozilla.org/en/docs/Mac_OS_X_Build_Prerequisites#Troubleshooting Mac OS X Build Prerequisites: Troubleshooting]
 +
* [http://developer.mozilla.org/en/docs/Mozilla_Build_FAQ#Mac-specific_questions Mozilla Build FAQ: Mac-specific questions] (less interesting, and more tuned to Fx)
 +
*: [5:40pm] mento: the mac-specific questions on there - most of the errors there are no longer relevant, realy

Latest revision as of 22:01, 18 May 2009

Introduction

This page provides a breakdown of the common Camino build errors, their causes, and instructions for resolving the errors.

Before looking for your error on this page, make sure that the Camino tinderbox was green when you pulled your source tree.

If the Camino tinderbox or the Mac builds or UNIX/Linux builds in the SeaMonkey or Firefox tinderboxes are orange or red, you should avoid checking out.

If the tinderbox was green when you checked out your source tree, look for your error below.

If you don't see your build error below, be sure to also check Mac OS X Build Prerequisites: Troubleshooting in the Mozilla Developer Center for late-breaking build errors.

Build Errors extracted from the cbo Build FAQ

Q. I get a link error when building Camino.
A. This has most likely occurred because you are building from within Xcode and have set up .mozconfig for an optimized build and Xcode for a debug build, or the other way around. Follow the instructions above to set your build mode in both .mozconfig and Xcode. Or just build from the command line using make -f client.mk.

Q. I get errors that the Camino build failed at some <CopyFilesX> where X is some number.
A. Usually this is because you forgot to make in embedding/config after making code changes. Follow the instructions carefully, and try again.

pbxcp: libpermissions.dylib: No such file or directory

In XCode 2.3:

Error message

Build target "Camino" of project "Camino" with configuration "Development" - (1 error)
Copying ../dist/bin/components/libpermissions.dylib - (1 error)
pbxcp: libpermissions.dylib: No such file or directory
Build failed (1 error)

Cause

You have enabled a static build of Camino in your .mozconfig, but not in Xcode (target mismatch).

Solution

Remove the following lines from your .mozconfig (rather than change Xcode's target, since static builds aren't useful for development)

ac_add_options --disable-shared
ac_add_options --enable-static

and make again (?)

mozilla-config.h: No such file or directory

In Xcode

Error Message

ChimeraPrefix.h:2: mozilla-config.h: No such file or directory
PreferencePaneBase.mm:168: error: `ClearUserPref' undeclared (first use this function)
PreferencePaneBase.mm:161: error: `prefValue' undeclared (first use this function)
PreferencePaneBase.mm:161: error: `SetIntPref' undeclared (first use this function)
PreferencePaneBase.mm:160: error: `PRInt32' undeclared (first use this function)
PreferencePaneBase.mm:160: error: parse error before `=' token
PreferencePaneBase.mm:153: error: `PR_TRUE' undeclared (first use this function)
PreferencePaneBase.mm:153: error: `PR_FALSE' undeclared (first use this function)
PreferencePaneBase.mm:153: error: `SetBoolPref' undeclared (first use this function)
PreferencePaneBase.mm:133: error: `SetCharPref' undeclared (first use this function)
PreferencePaneBase.mm:126: error: `intPref' undeclared (first use this function)
PreferencePaneBase.mm:122: error: `PRInt32' undeclared (first use this function)
PreferencePaneBase.mm:122: error: parse error before `=' token
PreferencePaneBase.mm:117: error: `boolPref' undeclared (first use this function)
PreferencePaneBase.mm:112: error: `PRBool' undeclared (first use this function)
PreferencePaneBase.mm:112: error: parse error before `=' token
PreferencePaneBase.mm:73: error: `rv' undeclared (first use this function)
PreferencePaneBase.mm:73: error: `NS_SUCCEEDED' undeclared (first use this function)
PreferencePaneBase.mm:72: error: `nsresult' undeclared (first use this function)
PreferencePaneBase.mm:72: error: parse error before `=' token
PreferencePaneBase.mm:71: error: `nsnull' undeclared (first use this function)
PreferencePaneBase.mm:60: error: `NS_IF_ADDREF' undeclared (first use this function)
PreferencePaneBase.mm:58: error: `prefService' undeclared (first use this function)
PreferencePaneBase.mm:58: error: `NS_ASSERTION' undeclared (first use this function)
PreferencePaneBase.mm:57: error: `nsCOMPtr' undeclared (first use this function)
PreferencePaneBase.mm:57: error: parse error before `>' token
PreferencePaneBase.mm:49: error: `NS_IF_RELEASE' undeclared (first use this function)  (Each undeclared identifier is reported only once for each function it appears in.)
PreferencePaneBase.mm:43: nsIPref.h: No such file or directory
PreferencePaneBase.mm:42: nsIServiceManager.h: No such file or directory
PreferencePaneBase.mm:41: nsCOMPtr.h: No such file or directory

Cause

You attempted to build in Xcode before completing a command-line (make) build.

Solution

Re-read the instructions on building Gecko and Camino and perform the required steps (specifically step 5).

"/Users/username/Documents/code/CaminoUni/ppc/dist/CaminoDebug.app" failed: No such file or directory (2)

In Terminal

Error Message

** BUILD SUCCEEDED **
rsync -a --copy-unsafe-links build/Development/Camino.app/ ../dist/Camino.app
rm -f ../dist/Camino.app/Contents/MacOS/components/camino.xpt
../dist/bin/xpt_link ../dist/Camino.app/Contents/MacOS/camino.xpt ../dist/Camino.app/Contents/MacOS/components/*.xpt
rm -f ../dist/Camino.app/Contents/MacOS/components/*.xpt
mv ../dist/Camino.app/Contents/MacOS/camino.xpt ../dist/Camino.app/Contents/MacOS/components/camino.xpt
tier_testharness:  
/usr/bin/make export_tier_testharness
export_tier_testharness
/usr/bin/make libs_tier_testharness
libs_tier_testharness
set -e; \
for mkfile in build/macosx/universal/flight.mk; do \
  make -f /Users/username/Documents/code/mozilla/$mkfile postflight_all TOPSRCDIR=/Users/username/Documents/code/mozilla MOZ_OBJDIR=/Users/username/Documents/code/mozilla/../CaminoUni MOZ_BUILD_PROJECTS="ppc i386"; \
done
/usr/bin/make -C /Users/username/Documents/code/mozilla/../CaminoUni/ppc/camino/installer \
          UNIVERSAL_BINARY= SIGN_NSS= stage-package
Creating package directory...
building file list ... rsync: link_stat "/Users/username/Documents/code/CaminoUni/ppc/dist/CaminoDebug.app" failed: No such file or directory (2)
done

sent 25 bytes  received 20 bytes  90.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-24/rsync/main.c(717)
make[2]: *** [stage-package] Error 23
make[1]: *** [postflight_all] Error 2
make: *** [build] Error 2

Cause

You attempted to build a Universal debug build (or have tried to make in camino/installer in a single-architecture debug build). In either case, the Camino.app in dist has built correctly and can be used for debugging.

Solution

Don’t attempt to package or distribute debug builds, and don’t attempt to build a Universal debug build. If you are doing development, you only need a single-architecture debug build. If you want to distribute builds, use a distribution .mozconfig instead.

internal compiler error: Bus error

In Terminal

Error Message

In file included from /builds/tinderbox/CmTrunk/Darwin_8.6.0_Depend/build/ppc/camino/src/extensions/CHStackView.m:41:
/builds/tinderbox/CmTrunk/Darwin_8.6.0_Depend/build/ppc/camino/src/extensions/NSView+Utils.h:45: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
{standard input}:10:FATAL:.abort  detected.  Assembly stopping.
** BUILD FAILED **
make[6]: *** [libs] Error 1
make[5]: *** [libs] Error 2
make[4]: *** [libs_tier_app] Error 2
make[3]: *** [tier_app] Error 2
make[2]: *** [alldep] Error 2
make[1]: *** [alldep] Error 2

Cause

You upgraded Xcode but did not delete the Xcode header cache.

Solution

Delete header cache from /Library/Caches/com.apple.Xcode.501/SharedPrecompiledHeaders as instructed in the build instructions.

Other stuff we've seen; details to be filled in

Things that need to be tested

  • [5:43pm] mento: case-sensitive hfs and ufs might not work for camino
    [5:43pm] mento: we've had at least one patch to correct that, i'm not sure if there are more
    [5:44pm] mento: problem was we were #including header files with the wrong case
    [5:44pm] ardissone|away: yeah
    [5:44pm] mento: nothing in the core, only in camino
    [5:44pm] mento: someone liked calling it Quickdraw.h
    [5:44pm] ardissone|away: i think we've fixed all the ones mentioned
    [5:44pm] ardissone|away: we just need someone to try again
    [5:44pm] mento: gofer it
    [5:45pm] mento: actually, just set up a test disk image
    [5:45pm] mento: copy the sdk to it
    [5:45pm] mento: and the source tree
    [5:45pm] mento: and build
    [5:45pm] mento: no need for a whole system reinstall

Other

There are some described on the Camino Build instructions page, on Building Mozilla, and on the Mac Build Instructions pages (links below); most are probably not relevant at all.