mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 16:06:09 +02:00
* 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:
parent
eae156d07e
commit
cb4b085a99
@ -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=$?
|
||||
|
Loading…
Reference in New Issue
Block a user