This patch allows for building OpenBIOS on Mac OS X, but without the "Trying" output. It has been tested on Mac OS 10.6 and Debian Linux.
signed-off-by: John Arbuckle programmingkidx@gmail.com
Index: trunk/openbios-devel/config/scripts/switch-arch =================================================================== --- trunk/openbios-devel/config/scripts/switch-arch (revision 1133) +++ trunk/openbios-devel/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}-unknown-linux-gnu- ${1}-linux-gnu- ${1}-linux- ${1}-elf- ${1}-eabi- + for TARGET in ${1}-unknown-linux-gnu- ${1}-linux-gnu- ${1}-linux- ${1}-elf- ${1}-eabi- ppc-elf- do if type ${TARGET}gcc > /dev/null 2>&1 then
Am 08.05.2013 01:54, schrieb Programmingkid:
This patch allows for building OpenBIOS on Mac OS X, but without the "Trying" output. It has been tested on Mac OS 10.6 and Debian Linux.
signed-off-by: John Arbuckle programmingkidx@gmail.com
Index: trunk/openbios-devel/config/scripts/switch-arch
--- trunk/openbios-devel/config/scripts/switch-arch (revision 1133) +++ trunk/openbios-devel/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
This is clearly wrong, Segher already pointed you to that: You are wrongly assuming Darwin to mean x86/amd64 exclusively! "hw.cpu64bit_capable: 1" can mean ppc64 just as well on 10.5, so it would be best to check for Darwin 64-bitness *after* the original `uname -m` architecture sanitization.
- 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}-unknown-linux-gnu- ${1}-linux-gnu- ${1}-linux- ${1}-elf- ${1}-eabi-
- for TARGET in ${1}-unknown-linux-gnu- ${1}-linux-gnu- ${1}-linux- ${1}-elf- ${1}-eabi- ppc-elf-
This has nothing to do with Mac OS X and thus, if we want this at all, belongs in a separate patch. git-svn can help with that.
I think it is wrong that you are hardcoding ppc here, so it will fall back to ppc-elf- prefix for sparc, etc. as well. powerpc-elf- prefix is covered by ${1}-elf- here, so you'd need to check the call sites of select_prefix() instead.
Regards, Andreas
do if type ${TARGET}gcc > /dev/null 2>&1 then
"hw.cpu64bit_capable: 1" can mean ppc64 just as well on 10.5, so it would be best to check for Darwin 64-bitness *after* the original `uname -m` architecture sanitization.
It also doesn't exist before 10.5; on 10.4 you test for 64-bit differently.
- for TARGET in ${1}-unknown-linux-gnu- ${1}-linux-gnu- ${1}-
linux- ${1}-elf- ${1}-eabi-
- for TARGET in ${1}-unknown-linux-gnu- ${1}-linux-gnu- ${1}-
linux- ${1}-elf- ${1}-eabi- ppc-elf-
This has nothing to do with Mac OS X and thus, if we want this at all, belongs in a separate patch. git-svn can help with that.
I think it is wrong that you are hardcoding ppc here, so it will fall back to ppc-elf- prefix for sparc, etc. as well. powerpc-elf- prefix is covered by ${1}-elf- here, so you'd need to check the call sites of select_prefix() instead.
And again, ppc-elf- is just a random made-up name.
Segher