summaryrefslogtreecommitdiff
path: root/debian/patches/ada-acats.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/ada-acats.diff')
-rw-r--r--debian/patches/ada-acats.diff206
1 files changed, 206 insertions, 0 deletions
diff --git a/debian/patches/ada-acats.diff b/debian/patches/ada-acats.diff
new file mode 100644
index 0000000..1a3cb39
--- /dev/null
+++ b/debian/patches/ada-acats.diff
@@ -0,0 +1,206 @@
+# DP: - When running the ACATS, look for the gnat tools in their new
+# DP: directory (build/gnattools), and for the shared libraries in
+# DP: build/gcc/ada/rts, build/libgnatvsn and build/libgnatprj.
+
+Index: b/src/gcc/testsuite/ada/acats/run_acats
+===================================================================
+--- a/src/gcc/testsuite/ada/acats/run_acats
++++ b/src/gcc/testsuite/ada/acats/run_acats
+@@ -20,52 +20,30 @@ which () {
+ return 1
+ }
+
++echo '#!/bin/sh' > host_gnatchop
++echo exec /usr/bin/gnatchop --GCC=gcc-6 '$*' >> host_gnatchop
++
++chmod +x host_gnatchop
++
++echo '#!/bin/sh' > host_gnatmake
++echo echo '$PATH' '$*' >> host_gnatmake
++echo exec /usr/bin/gnatmake '$*' >> host_gnatmake
++
++chmod +x host_gnatmake
++
+ # Set up environment to use the Ada compiler from the object tree
+
+-host_gnatchop=`which gnatchop`
+-host_gnatmake=`which gnatmake`
+ ROOT=`${PWDCMD-pwd}`
+ BASE=`cd $ROOT/../../..; ${PWDCMD-pwd}`
+-
+ PATH=$BASE:$ROOT:$PATH
+-ADA_INCLUDE_PATH=$BASE/ada/rts
+-LD_LIBRARY_PATH=$ADA_INCLUDE_PATH:$BASE:$LD_LIBRARY_PATH
+-ADA_OBJECTS_PATH=$ADA_INCLUDE_PATH
+-
+-if [ ! -d $ADA_INCLUDE_PATH ]; then
+- echo gnatlib missing, exiting.
+- exit 1
+-fi
+-
+-if [ ! -f $BASE/gnatchop ]; then
+- echo gnattools missing, exiting.
+- exit 1
+-fi
+-
+-if [ ! -f $BASE/gnatmake ]; then
+- echo gnattools missing, exiting.
+- exit 1
+-fi
+-
+ GCC_DRIVER="$BASE/xgcc"
++TARGET=`${GCC_DRIVER} -v 2>&1 |grep '^Target:' | cut -d' ' -f2`
++GNATTOOLS=`cd $BASE/../gnattools; ${PWDCMD-pwd}`
++LIBGNATVSN=`cd $BASE/../${TARGET}/libgnatvsn; ${PWDCMD-pwd}`
++LIBGNATPRJ=`cd $BASE/../${TARGET}/libgnatprj; ${PWDCMD-pwd}`
+ GCC="$BASE/xgcc -B$BASE/"
+ export PATH ADA_INCLUDE_PATH ADA_OBJECTS_PATH GCC_DRIVER GCC LD_LIBRARY_PATH
+-
+-echo '#!/bin/sh' > host_gnatchop
+-echo PATH=`dirname $host_gnatchop`:'$PATH' >> host_gnatchop
+-echo unset ADA_INCLUDE_PATH ADA_OBJECTS_PATH GCC_EXEC_PREFIX >> host_gnatchop
+-echo export PATH >> host_gnatchop
+-echo exec gnatchop '"$@"' >> host_gnatchop
+-
+-chmod +x host_gnatchop
+-
+-echo '#!/bin/sh' > host_gnatmake
+-echo PATH=`dirname $host_gnatmake`:'$PATH' >> host_gnatmake
+-echo unset ADA_INCLUDE_PATH ADA_OBJECTS_PATH GCC_EXEC_PREFIX >> host_gnatmake
+-echo export PATH >> host_gnatmake
+-echo exec gnatmake '"$@"' >> host_gnatmake
+-
+-chmod +x host_gnatmake
++export GNATTOOLS LIBGNATVSN LIBGNATPRJ
+
+ # Limit the stack to 16MB for stack checking
+ ulimit -s 16384
+Index: b/src/gcc/testsuite/ada/acats/run_all.sh
+===================================================================
+--- a/src/gcc/testsuite/ada/acats/run_all.sh
++++ b/src/gcc/testsuite/ada/acats/run_all.sh
+@@ -1,4 +1,5 @@
+ #!/bin/sh
++
+ # Run ACATS with the GNU Ada compiler
+
+ # The following functions are to be customized if you run in cross
+@@ -12,6 +13,10 @@
+ gccflags="-O2"
+ gnatflags="-gnatws"
+
++RTS=`cd $GNATTOOLS/../gcc/ada/rts; ${PWDCMD-pwd}`
++LD_LIBRARY_PATH=$RTS:$LIBGNATVSN:$LIBGNATPRJ
++export LD_LIBRARY_PATH
++
+ target_run () {
+ eval $EXPECT -f $testdir/run_test.exp $*
+ }
+@@ -63,12 +68,15 @@ if [ "$dir" = "$testdir" ]; then
+ fi
+
+ target_gnatchop () {
+- gnatchop --GCC="$GCC_DRIVER" $*
++ ADA_INCLUDE_PATH=$GNATTOOLS/../../src/gcc/ada $GNATTOOLS/gnatchop --GCC="$GCC_DRIVER" $*
+ }
+
+ target_gnatmake () {
+- echo gnatmake --GCC=\"$GCC\" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC=\"$GCC\"
+- gnatmake --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC"
++ EXTERNAL_OBJECTS="$EXTERNAL_OBJECTS $RTS/adaint.o $RTS/sysdep.o $RTS/init.o $RTS/raise-gcc.o"
++ $GNATTOOLS/gnatmake -I- -I$RTS -I. \
++ --GCC="$GCC" --GNATBIND="$GNATTOOLS/gnatbind" \
++ --GNATLINK="$GNATTOOLS/gnatlink" $gnatflags $gccflags $* \
++ -bargs -static -largs $EXTERNAL_OBJECTS --GCC="$GCC -I- -I$RTS -I."
+ }
+
+ target_gcc () {
+@@ -101,8 +109,8 @@ display target gcc is $GCC
+ display `$GCC -v 2>&1`
+ display host=`gcc -dumpmachine`
+ display target=$target
+-display `type gnatmake`
+-gnatls -v >> $dir/acats.log
++display `type $GNATTOOLS/gnatmake`
++$GNATTOOLS/gnatls -I- -I$RTS -v >> $dir/acats.log
+ display ""
+
+ if [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ]; then
+@@ -129,7 +137,7 @@ cp $testdir/support/*.ada $testdir/suppo
+ # Find out the size in bit of an address on the target
+ target_gnatmake $testdir/support/impbit.adb >> $dir/acats.log 2>&1
+ target_run $dir/support/impbit > $dir/support/impbit.out 2>&1
+-target_bit=`cat $dir/support/impbit.out`
++target_bit=`cat $dir/support/impbit.out | sed -e 's/ //g' -e 's/\r//g'`
+ echo target_bit="$target_bit" >> $dir/acats.log
+
+ # Find out a suitable asm statement
+Index: b/src/gcc/testsuite/lib/gnat.exp
+===================================================================
+--- a/src/gcc/testsuite/lib/gnat.exp
++++ b/src/gcc/testsuite/lib/gnat.exp
+@@ -88,18 +88,25 @@ proc gnat_init { args } {
+ global GNAT_UNDER_TEST
+ global TOOL_EXECUTABLE
+ global gnat_target_current
++ global ld_library_path
+
+ set gnat_target_current ""
+
+ if { $gnat_initialized == 1 } { return }
+
+- if ![info exists GNAT_UNDER_TEST] then {
+- if [info exists TOOL_EXECUTABLE] {
+- set GNAT_UNDER_TEST "$TOOL_EXECUTABLE"
+- } else {
+- set GNAT_UNDER_TEST "[local_find_gnatmake]"
+- }
+- }
++ set target [target_info name]
++ set GNAT_UNDER_TEST "$rootme/../gnattools/gnatmake -I$rootme/ada/rts --GCC=$rootme/xgcc --GNATBIND=$rootme/../gnattools/gnatbind --GNATLINK=$rootme/../gnattools/gnatlink -cargs -B$rootme -largs --GCC=$rootme/xgcc -B$rootme -margs"
++ append ld_library_path ":$rootme/ada/rts"
++ append ld_library_path ":$rootme/../$target/libgnatvsn"
++ append ld_library_path ":$rootme/../$target/libgnatprj"
++ set_ld_library_path_env_vars
++
++ # gnatlink looks for system.ads itself and has no --RTS option, so
++ # specify via environment
++ verbose -log "ADA_INCLUDE_PATH=$rootme/ada/rts"
++ verbose -log "ADA_OBJECTS_PATH=$rootme/ada/rts"
++ setenv ADA_INCLUDE_PATH "$rootme/ada/rts"
++ setenv ADA_OBJECTS_PATH "$rootme/ada/rts"
+
+ if ![info exists tmpdir] then {
+ set tmpdir /tmp
+@@ -121,31 +128,6 @@ proc gnat_target_compile { source dest t
+ return [gcc_target_compile $source $dest $type $options]
+ }
+
+- # If we detect a change of target, we need to recompute both
+- # GNAT_UNDER_TEST and the appropriate RTS.
+- if { $gnat_target_current!="[current_target_name]" } {
+- set gnat_target_current "[current_target_name]"
+- if [info exists TOOL_OPTIONS] {
+- set rtsdir "[get_multilibs ${TOOL_OPTIONS}]/libada"
+- } else {
+- set rtsdir "[get_multilibs]/libada"
+- }
+- if [info exists TOOL_EXECUTABLE] {
+- set GNAT_UNDER_TEST "$TOOL_EXECUTABLE"
+- } else {
+- set GNAT_UNDER_TEST "[local_find_gnatmake]"
+- }
+- set GNAT_UNDER_TEST "$GNAT_UNDER_TEST --RTS=$rtsdir"
+-
+- # gnatlink looks for system.ads itself and has no --RTS option, so
+- # specify via environment
+- setenv ADA_INCLUDE_PATH "$rtsdir/adainclude"
+- setenv ADA_OBJECTS_PATH "$rtsdir/adainclude"
+- # Always log so compilations can be repeated manually.
+- verbose -log "ADA_INCLUDE_PATH=$rtsdir/adainclude"
+- verbose -log "ADA_OBJECTS_PATH=$rtsdir/adainclude"
+- }
+-
+ lappend options "compiler=$GNAT_UNDER_TEST -q -f"
+ lappend options "timeout=[timeout_value]"
+