From cb4b085a99c726875ec848162770185a00f388c6 Mon Sep 17 00:00:00 2001 From: pierre Date: Mon, 6 May 2019 21:08:47 +0000 Subject: [PATCH] * 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 - --- rtl/unix/scripts/check_sys.sh | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/rtl/unix/scripts/check_sys.sh b/rtl/unix/scripts/check_sys.sh index 1a748b2812..c511993dbb 100755 --- a/rtl/unix/scripts/check_sys.sh +++ b/rtl/unix/scripts/check_sys.sh @@ -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=$?