You need to build darwin driver to use -arch. Try using build_gcc
script to configure and build llvm-gcc.
Well, I guess this task exceeds my expertise. I just thought there was some obvious mistake I made because a lot of people might be using llvm-gcc4 as a drop-in to Apple's gcc to build multi-architecture binaries.
I'll have a look at build_gcc, maybe I can figure this out. I guess that in future versions of the front-end binary releases for Mac OS X this problem won't exist anymore.
No. I never looked at the buildit script. There be dragons there!
The build_gcc script could be scoured to look for how it uses the -arch stuff. From what I've seen as the build goes by on the screen, it builds llvm-gcc 4 times and then applies some magic afterwards to make it "universal." Search for "lipo" in build_gcc for more info.
Right, but it should be possible to invoke build_gcc directly, that way you don't have to replicate its intelligence. My hope for the next release is that we can do this for the llvm 2.1 binaries on mac os.
Yes, it is simple. All buildit does is invoke GNUMakefile from
top level directory after setting appropriate variables.
buildit does not know anythig about build_gcc. It can not afford to learn
build_gcc magic, because it is a single interface to build all kind of
projects in the world.
GNUMakefile inovkes build_gcc. It should be easier to understand
build_gcc parameters from GNUMakefile. First and second build_gcc
parameters, $(RC_ARCHS) and $(TARGETS), sets host and target for
build_gcc. All other variables set by buildit and interpreted by GNUMMakefile
are easy to understand based on their name.