Development:Building:Build Errors
Contents
- 1 Introduction
- 2 Build Errors extracted from the cbo Build FAQ
- 3 pbxcp: libpermissions.dylib: No such file or directory
- 4 make[7]: *** No rule to make target `nsIProxiedChannel.idl', needed by `_xpidlgen/nsIProxiedChannel.h'. Stop.
- 5 rsync: readlink failed: Too many levels of symbolic links (62)
- 6 /usr/bin/ld: Undefined symbols: .objc_class_name_SharedMenusObj
- 7 make[n]: pipe: Too many open files
- 8 nsString.h:55:15: error: new.h: No such file or directory
- 9 c++: cannot specify -o with -c or -S and multiple compilations
- 10 Other stuff we've seen; details to be filled in
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 (?)
make[7]: *** No rule to make target `nsIProxiedChannel.idl', needed by `_xpidlgen/nsIProxiedChannel.h'. Stop.
In Terminal
Error message
../../../dist/bin/xpidl -m header -w -I. -I../../../dist/idl -o _xpidlgen/nsINetUtil nsINetUtil.idl 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
Unknown
Solution
Unknown
rsync: readlink failed: Too many levels of symbolic links (62)
In Terminal
Error message
Touch /Users/delliott/Documents/Camino/mozilla/camino/build/Development/Camino.app cd /Users/delliott/Documents/Camino/mozilla/camino /usr/bin/touch -c /Users/delliott/Documents/Camino/mozilla/camino/build/Development/Camino.app ** BUILD SUCCEEDED ** 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
You have a symlink to the SharedMenusCocoa.framework directory in your /Library/Frameworks/SharedMenusCocoa.framework directory. Computers do not like recursion.
Solution
Re-install the SharedMenusCocoa framework following these instructions and make
.
In Terminal
Error Message
Ld /Users/ludo/Documents/sources/mozs/obj/Camino/camino/build/Development/Camino.app/Contents/MacOS/Camino normal i386 cd /Users/ludo/Documents/sources/mozs/obj/Camino/camino /usr/bin/g++-4.0 -o /Users/ludo/Documents/sources/mozs/obj/Camino/camino/build/Development/Camino.app/Contents/MacOS/Camino -L/Users/ludo/Documents/sources/mozs/obj/Camino/camino/build/Development -L../dist/bin -L../dist/lib -L../dist/Embed/components -F/Users/ludo/Documents/sources/mozs/obj/Camino/camino/build/Development -filelist /Users/ludo/Documents/sources/mozs/obj/Camino/camino/build/Camino.build/Development/Camino.build/Objects-normal/i386/Camino.LinkFileList -lembed_base_s -lunicharutil_s -lmozz -lxpcom -lxpcom_core -lplds4 -lplc4 -lnspr4 -framework Cocoa -framework PreferencePanes -framework Carbon -framework CoreFoundation -framework SystemConfiguration -framework QuickTime -framework SharedMenusCocoa -lprofdirserviceprovider_s -framework AddressBook -lfreebl3 -arch i386 -Wl,-Y,1455 -mmacosx-version-min=10.4 -lpthread -lm -isysroot /Developer/SDKs/MacOSX10.4u.sdk /usr/bin/ld: warning /Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks/SharedMenusCocoa.framework/SharedMenusCocoa cputype (18, architecture ppc) does not match cputype (7) for specified -arch flag: i386 (file not loaded) /usr/bin/ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used /usr/bin/ld: Undefined symbols: .objc_class_name_SharedMenusObj /Users/ludo/Documents/sources/mozs/obj/Camino/camino/build/Camino.build/Development/Camino.build/Objects-normal/i386/MainController.o reference to undefined .objc_class_name_SharedMenusObj symbol _libVersionPoint used from dynamic library ../dist/bin/libnspr4.dylib(prvrsion.o) not from earlier dynamic library @executable_path/libplds4.dylib(plvrsion.o) symbol _libVersionPoint used from dynamic library ../dist/bin/libnspr4.dylib(prvrsion.o) not from earlier dynamic library @executable_path/libplc4.dylib(plvrsion.o) collect2: ld returned 1 exit status ** BUILD FAILED ** make[4]: *** [libs] Error 1 make[3]: *** [libs_tier_99] Error 2 make[2]: *** [tier_99] Error 2 make[1]: *** [alldep] Error 2 make: *** [alldep] Error 2
Cause
You are building on Intel and your SharedMenusCocoa.framework is PPC-only.
Solution
Create a Universal SharedMenusCocoa framework following these instructions and make
.
make[n]: pipe: Too many open files
In Terminal on 10.3.x
Error Message
Updating dependencies file, .deps/.all.pp Updating dependencies file, .deps/.all.pp Updating dependencies file, .deps/.all.pp Updating dependencies file, .deps/.all.pp make[5]: /Users/smokey/Camino/dev/trunk/mozilla/config/config.mk:788: pipe: Too many open files make[5]: /Users/smokey/Camino/dev/trunk/mozilla/config/config.mk:863: pipe: Too many open files Updating dependencies file, .deps/.all.pp Makefile:43: ../../../config/autoconf.mk: Too many open files Makefile:157: /Users/smokey/Camino/dev/trunk/mozilla/config/rules.mk: Too many open files make[5]: *** No rule to make target `libs'. Stop. make[4]: *** [libs] Error 2 make[3]: *** [libs] Error 2 make[2]: *** [libs_tier_9] Error 2 make[1]: *** [tier_9] Error 2 make: *** [default] Error 2
Cause
- A bug in make that ships with Xcode 1.x (see Bug 335506); happens most often when making in the objdir
Solution
There's no "real" solution to this issue. Work-arounds include:
- Just make again
- If it continues to fail after a couple of tries, go back to mozilla and make -f client.mk
- Manually upgrading your make (not recommended)
nsString.h:55:15: error: new.h: No such file or directory
In Terminal
Error message
In file included from ../../../dist/include/string/nsDependentString.h:43, from nsDependentString.cpp:40: ../../../dist/include/string/nsString.h:55:15: error: new.h: No such file or directory
Cause
You are building using GCC4 instead of GCC 3.3. You cannot use GCC4 with Mac OS X 10.2.8 SDK
Solution
In Terminal.app
sudo gcc_select 3.3 make -f client.mk distclean make -f client.mk
(or follow the instructions in the FAQ for configuring the proper SDK)
c++: cannot specify -o with -c or -S and multiple compilations
Error Message
c++: cannot specify -o with -c or -S and multiple compilations
(need the full error still)
Cause
You switched compilers from gcc 4 to gcc 3 without reconfiguring your tree.
Solution
make -f client.mk distclean make -f client.mk
Other stuff we've seen; details to be filled in
Things that need to be tested
- [5:25pm] mento: also, someone should install xcode 2.4 without my patch and see what bad things happen when you try to build camino with the 10.2.8 sdk
[5:25pm] mento: it's probably the same error from http://developer.mozilla.org/en/docs/Mac_OS_X_Build_Prerequisites#Troubleshooting
- [5:22pm] mento: whoever updates the wiki with this, you might also want to see what bad stuff happens when you take a tree configured for gcc 4 and try to build with gcc 3
- [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
Missing/non-Uni SMF
Other
There are some described on the Camino Build instructions page, on Building Mozilla, and on the Mac Build Instructions pages (links below)
- Mac OS X Build Prerequisites: Troubleshooting
- 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
- Development:Building#FAQ has some non-build errors, and needs to link prominently to this page.