Fix x86/64 build for *BSD.
authorKeir Fraser <keir@xensource.com>
Fri, 19 Oct 2007 13:49:08 +0000 (14:49 +0100)
committerKeir Fraser <keir@xensource.com>
Fri, 19 Oct 2007 13:49:08 +0000 (14:49 +0100)
 - Config.mk: uname -m prints "amd64". Deal with this.
 - do not assume python is always in /usr/bin
 - get-fields.sh: make it portable and non-bash specific
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Config.mk
xen/include/Makefile
xen/tools/compat-build-header.py
xen/tools/compat-build-source.py
xen/tools/get-fields.sh

index 909e21787e0b08faaf8249369d79ba443b3c9525..d79d7184a1b9aeaec71527db55a5cc4fb6a69281 100644 (file)
--- a/Config.mk
+++ b/Config.mk
@@ -4,7 +4,8 @@
 debug ?= n
 
 XEN_COMPILE_ARCH    ?= $(shell uname -m | sed -e s/i.86/x86_32/ \
-                         -e s/ppc/powerpc/ -e s/i86pc/x86_32/)
+                         -e s/ppc/powerpc/ -e s/i86pc/x86_32/   \
+                         -e s/amd64/x86_64/)
 XEN_TARGET_ARCH     ?= $(XEN_COMPILE_ARCH)
 XEN_OS              ?= $(shell uname -s)
 
index 0b1d38231ce4f650fa6af3a0b7b89d54168bca70..2d0d8104696340e5dc81e82f47b30dff6b5b23ea 100644 (file)
@@ -61,7 +61,7 @@ compat/%.c: public/%.h xlat.lst Makefile
 compat/xlat.h: xlat.lst $(filter-out compat/xlat.h,$(headers-y)) $(BASEDIR)/tools/get-fields.sh Makefile
        grep -v '^[      ]*#' xlat.lst | \
        while read what name hdr; do \
-               /bin/bash $(BASEDIR)/tools/get-fields.sh "$$what" compat_$$name $$(echo compat/$$hdr | sed 's,@arch@,$(compat-arch-y),g') || exit $$?; \
+               /bin/sh $(BASEDIR)/tools/get-fields.sh "$$what" compat_$$name $$(echo compat/$$hdr | sed 's,@arch@,$(compat-arch-y),g') || exit $$?; \
        done >$@.new
        mv -f $@.new $@
 
index c802f60e3c43c6688dcfeea808776b9514537710..fba2f37861a7b0e418a3548ed460ba2d4a58c637 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 
 import re,sys
 
index 449e738188dcd4d52e1abf1607d13b16ee400832..3906b71ea041aa550fb29cdaba62d2153f52021a 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 
 import re,sys
 
index 0936bb8fe3139e227f6821b023e8a7d56728c249..098abab389594bd3e3232f532d05b9509411ff0a 100644 (file)
@@ -1,11 +1,12 @@
-#!/bin/bash
+#!/bin/sh
 test -n "$1" -a -n "$2" -a -n "$3"
 set -ef
 
 SED=sed
-[ -x /usr/xpg4/bin/sed ] && SED=/usr/xpg4/bin/sed
+test -x /usr/xpg4/bin/sed && SED=/usr/xpg4/bin/sed
 
-get_fields() {
+get_fields ()
+{
        local level=1 aggr=0 name= fields=
        for token in $2
        do
@@ -24,7 +25,7 @@ get_fields() {
                                return 0
                        fi
                        ;;
-               [[:alpha:]_]*)
+               [a-zA-Z_]*)
                        test $aggr = 0 -o -n "$name" || name="$token"
                        ;;
                esac
@@ -32,7 +33,8 @@ get_fields() {
        done
 }
 
-build_enums() {
+build_enums ()
+{
        local level=1 kind= fields= members= named= id= token
        for token in $2
        do
@@ -64,7 +66,7 @@ build_enums() {
                                named='?'
                        fi
                        ;;
-               [[:alpha:]]*)
+               [a-zA-Z]*)
                        id=$token
                        if [ -n "$named" -a -n "${kind#*;}" ]
                        then
@@ -85,7 +87,8 @@ build_enums() {
        done
 }
 
-handle_field() {
+handle_field ()
+{
        if [ -z "$5" ]
        then
                echo " \\"
@@ -161,7 +164,7 @@ for line in sys.stdin.readlines():
                                        array_type=$token
                                fi
                                ;;
-                       [[:alpha:]]*)
+                       [a-zA-Z]*)
                                id=$token
                                ;;
                        [\,\;])
@@ -202,13 +205,15 @@ for line in sys.stdin.readlines():
        fi
 }
 
-copy_array() {
+copy_array ()
+{
        echo " \\"
        echo "${1}if ((_d_)->$2 != (_s_)->$2) \\"
        echo -n "$1    memcpy((_d_)->$2, (_s_)->$2, sizeof((_d_)->$2));"
 }
 
-handle_array() {
+handle_array ()
+{
        local i="i$(echo $4 | $SED 's,[^;], ,g' | wc -w | $SED 's,[[:space:]]*,,g')"
        echo " \\"
        echo "$1{ \\"
@@ -225,7 +230,8 @@ handle_array() {
        echo -n "$1}"
 }
 
-build_body() {
+build_body ()
+{
        echo
        echo -n "#define XLAT_$1(_d_, _s_) do {"
        local level=1 fields= id= array= arrlvl=1 array_type= type= token
@@ -270,7 +276,7 @@ build_body() {
                                array_type=$token
                        fi
                        ;;
-               [[:alpha:]_]*)
+               [a-zA-Z_]*)
                        if [ -n "$array" ]
                        then
                                array="$array $token"
@@ -308,7 +314,8 @@ build_body() {
        echo ""
 }
 
-check_field() {
+check_field ()
+{
        if [ -z "$(echo "$4" | $SED 's,[^{}],,g')" ]
        then
                echo "; \\"
@@ -320,7 +327,7 @@ check_field() {
                                case $n in
                                struct|union)
                                        ;;
-                               [[:alpha:]_]*)
+                               [a-zA-Z_]*)
                                        echo -n "    CHECK_$n"
                                        break
                                        ;;
@@ -350,7 +357,7 @@ check_field() {
                        "}")
                                level=$(expr $level - 1) id=
                                ;;
-                       [[:alpha:]]*)
+                       [a-zA-Z]*)
                                id=$token
                                ;;
                        [\,\;])
@@ -366,7 +373,8 @@ check_field() {
        fi
 }
 
-build_check() {
+build_check ()
+{
        echo
        echo "#define CHECK_$1 \\"
        local level=1 fields= kind= id= arrlvl=1 token
@@ -395,7 +403,7 @@ build_check() {
                "]")
                        arrlvl=$(expr $arrlvl - 1)
                        ;;
-               [[:alpha:]_]*)
+               [a-zA-Z_]*)
                        test $level != 2 -o $arrlvl != 1 || id=$token
                        ;;
                [\,\;])