Using uname fails e.g. on a 64-bit machine with a 32-bit toolchain.
The following gcc -dumpmachine strings have been verified:
* 32-bit Linux gives i486-linux-gnu
* 64-bit Linux gives x86_64-linux-gnu
* Mac OS X 10.5 gives i686-apple-darwin9
* MinGW gives mingw32
*darwin8* and *bsd* can safely be assumed to be correct, but *cygwin*
is a guess.
Change-Id: I6bef2ab5e97cbd3410aa66b0c4f84d2231884b05
process_common_toolchain() {
if [ -z "$toolchain" ]; then
- uname="$(uname -a)"
+ gcctarget="$(gcc -dumpmachine 2> /dev/null)"
# detect tgt_isa
- case "$uname" in
+ case "$gcctarget" in
*x86_64*)
tgt_isa=x86_64
;;
esac
# detect tgt_os
- case "$uname" in
- *Darwin\ Kernel\ Version\ 8*)
+ case "$gcctarget" in
+ *darwin8*)
tgt_isa=universal
tgt_os=darwin8
;;
- *Darwin\ Kernel\ Version\ 9*)
+ *darwin9*)
tgt_isa=universal
tgt_os=darwin9
;;
- *Msys*|*Cygwin*)
+ *msys*|*cygwin*)
tgt_os=win32
;;
- *Linux*|*BSD*)
+ *linux*|*bsd*)
tgt_os=linux
;;
esac