This patch fixes the problem of not correctly configuring for Mac OS X.
On Mac OS X, the compiler is simply called gcc, so the names the switch-arch script would look for were not available. Also uname -m returns i386 on Mac OS X. This value doesn't change on 32bit or 64bit intel processors. On Linux, the value would be x86_64 for 64bit processors and i686 for 32bit processors. The 6 in 686 might be 3,4, or 5 depending on your processor type.
With this patch I was actually able to go pretty far in the building process of making OpenBIOS. I stopped at an issue in elf_info.c. This is another issue to be solved for another time.
signed-off-by: John Arbuckle programmingkidx@gmail.com
Index: config/scripts/switch-arch =================================================================== --- config/scripts/switch-arch (revision 1078) +++ config/scripts/switch-arch (working copy) @@ -89,15 +89,25 @@
archname() { - HOSTARCH=`uname -m | sed -e s/i.86/x86/ -e s/i86pc/x86/ \ - -e s/sun4u/sparc64/ -e s/sparc$/sparc32/ \ - -e s/arm.*/arm/ -e s/sa110/arm/ -e s/x86_64/amd64/ \ - -e "s/Power Macintosh/ppc/"` + OS_NAME=`uname` + if test "$OS_NAME" = "Darwin"; then # Can't depend on uname -m on Mac OS X + IS_64BIT=`sysctl hw.cpu64bit_capable` + if test "$IS_64BIT" = "hw.cpu64bit_capable: 1"; then + HOSTARCH="amd64" + else + HOSTARCH="x86" + fi + else + HOSTARCH=`uname -m | sed -e s/i.86/x86/ -e s/i86pc/x86/ \ + -e s/sun4u/sparc64/ -e s/sparc$/sparc32/ \ + -e s/arm.*/arm/ -e s/sa110/arm/ -e s/x86_64/amd64/ \ + -e "s/Power Macintosh/ppc/"` + fi }
select_prefix() { - for TARGET in ${1}-linux-gnu- ${1}-linux- ${1}-elf- ${1}-eabi- + for TARGET in ${1}-linux-gnu- ${1}-linux- ${1}-elf- ${1}-eabi- '' do if type ${TARGET}gcc > /dev/null 2>&1 then