* Also allow '-' in include file names

+ Add os_cpu and cpu_source variables
  * Cope with aarch64 GNU C compiler that does not support -m64 option
  + Add support for arm test on aarch64 machine
  * Better accept expressions instead of constants in C #define

git-svn-id: trunk@42014 -
This commit is contained in:
pierre 2019-05-06 21:08:47 +00:00
parent eae156d07e
commit cb4b085a99

View File

@ -30,6 +30,7 @@ if [ -d "rtl" ] ; then
fi
os=`uname -s | tr [:upper:] [:lower:] `
os_cpu=`uname -m | tr [:upper:] [:lower:] `
now_pwd=`pwd`
now_dir=`basename $now_pwd`
if [ -d "$os" ] ; then
@ -70,7 +71,7 @@ fi
if [ -f "$fpc_sysnr" ] ; then
echo "Checking $fpc_sysnr content for Free Pascal syscall numbers"
fpc_sysnr_dir=`dirname $fpc_sysnr `
sysnr_includes=`grep -o '{\$i *[a-z_A-Z0-9/.]*' $fpc_sysnr | sed 's:.*{\$i *:'$fpc_sysnr_dir/: `
sysnr_includes=`grep -o '{\$i *[a-z_A-Z0-9/.-]*' $fpc_sysnr | sed 's:.*{\$i *:'$fpc_sysnr_dir/: `
if [ -n "$sysnr_includes" ] ; then
echo "Found $sysnr_includes include files"
fpc_sysnr="$fpc_sysnr $sysnr_includes"
@ -103,6 +104,7 @@ if [ -z "$CC" ] ; then
fi
cpu=`$FPC -iTP`
cpu_source=`$FPC -iSP`
is_16=0
is_32=0
is_64=0
@ -129,10 +131,23 @@ case $cpu in
esac
if [ $is_64 -eq 1 ] ; then
CC_OPT="$CC_OPT -m64"
if [ "$os_cpu" == "aarch64" ] ; then
CC_OPT="$CC_OPT -Wall"
else
CC_OPT="$CC_OPT -m64 -Wall"
fi
CPUBITS=64
elif [ $is_32 -eq 1 ] ;then
CC_OPT="$CC_OPT -m32"
if [ "$os_cpu" == "aarch64" ] ; then
CC=arm-linux-gnueabihf-gcc-4.8
export BINUTILSPREFIX=arm-linux-
fi
if [ "${FPC/ppcarm/}" != "$FPC" ] ; then
CC_OPT="$CC_OPT -march=armv7-a -Wall"
else
CC_OPT="$CC_OPT -m32 -Wall"
fi
CPUBITS=32
elif [ $is_16 -eq 1 ] ; then
CPUBITS=16
@ -253,10 +268,10 @@ if [ -n "$AWK" ] ; then
$AWK -v proc=$cpu -v cpubits=$CPUBITS -f $awkfile ${fpc_sysnr} > $tmp_fpc_sysnr
fpc_sysnr=$tmp_fpc_sysnr
fi
sed -n "s:^\(.*\)*[ \t]*${fpc_syscall_prefix}\\([_a-zA-Z0-9]*\\)[ \t]*=[ \t]*\\([0-9]*\\)\\(.*\\)$:check_c_syscall_number_from_fpc_rtl \2 \3 \"\1 \4\":p" $fpc_sysnr > check_sys_list.sh
sed -n "s:^\(.*\)*[ \t]*${fpc_syscall_prefix}\\([_a-zA-Z0-9]*\\)[ \t]*=[ \t]*\\(.*\\);\\(.*\\)$:check_c_syscall_number_from_fpc_rtl \2 \"\3\" \"\1 \4\":p" $fpc_sysnr > check_sys_list.sh
sed -n "s:^.*#[[:space:]]*define[[:space:]]*${syscall_prefix}\\([_a-zA-Z0-9]*\\)[[:space:]]*\\([0-9]*\\)\\(.*\\)$:check_c_syscall_number_in_fpc_rtl \1 \2 \"\3\":p" ${syscall_header} > check_sys_list_reverse.sh
sed -n "s:^.*#[[:space:]]*define[[:space:]]*${syscall_prefix}\\([_a-zA-Z0-9]*\\)[[:space:]]*\\([0-9]*\\)\\(.*\\)$:check_c_syscall_number_in_fpc_rtl \1 \"\2\" \"\3\":p" ${syscall_header} > check_sys_list_reverse.sh
forward_count=0
forward_ok_count=0
@ -266,7 +281,7 @@ function check_c_syscall_number_from_fpc_rtl ()
{
bare_sys=$1
sys=${syscall_prefix}$bare_sys
value=$2
let "value=$2"
comment="$3"
if [[ ! ( ( -n "$value" ) && ( $value -ge 0 ) ) ]] ; then
echo "Computing $2 value"
@ -352,7 +367,12 @@ function check_c_syscall_number_in_fpc_rtl ()
sys=${fpc_syscall_prefix}${bare_sys}
c_sys=${syscall_prefix}${bare_sys}
value=$2
comment="$3"
if [ -z "$value" ] ; then
let "value=$3"
comment="expression $3"
else
comment="$3"
fi
echo -en "Testing $sys value $value \r"
$CC $CC_OPT -DSYS_MACRO=${c_sys} -o ./test_c_${bare_sys} $c_syscall_source > ./test_${bare_sys}.comp-log 2>&1
C_COMP_RES=$?