This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 3/4] libgo/test: Fix compilation for build sysroot
- From: "Maciej W. Rozycki" <macro at wdc dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: libffi-discuss at sourceware dot org, golang-dev at googlegroups dot com
- Date: Mon, 11 Nov 2019 18:12:44 +0000 (GMT)
- Subject: [PATCH 3/4] libgo/test: Fix compilation for build sysroot
- Ironport-sdr: tUPopbhcW2JTkAFACeqN0IfcQVEQ8JMSJf+YSl341bcQi+B52T9A87u5Fk8oMvmIfZaOjE5FJL AROKaTIJAKVrldz5i78DvCHi4WsgNpDTnE5l8w/ZCsj1sw15qAWWTTzf835t7Dp0AQaimLylfI zeq3FpVsuUw8kB7axo5pYOM+lxtbdV1fXr32eloMWCzV09+kE14qpRD1lbPQO6cihDTfyoKtpF u5Ie7V59LvgRVBXr3Vc7UFb3Qy/eErLWAQTtDFli7pdKHlC6vPUmFlBjzRolor9y9Y3L0G2knW L9s=
- Ironport-sdr: gGE29lImBkWx8pN4/Ks39QiRQRf+++rNTJxTUt2mUXmT6vTRqebvOuJao+HawVorCam24lakNM 3PptFImbrFCLsEA2ug5/TDOrjRqOfkPsHoirl6RoghJcy0QQ31sTnYuWc2WtQKjUEN3WBpB74a L4wv9c3UV0wqHL3IH0p5/m8wmpaYX+t03hZZVxb1AB7RWaP4bF5+uxOf3SuI5SPdIBOt95xrQQ ETwmobwBUQysdZ4wkCA+NLleojg0hbOvKx8+wX3ZfgiLFKpawnFnvYHNGhr0tMqrmYaS4CB3nM xkUdj+1H4GmIR2pPZ9WN3e+Q
- Ironport-sdr: an78HJeoZSKsbD5WTBfDq28ab9a1zUKYSx5m0k+9KAx/XUKjxDgISiRa6oEvf/23jfuzejY/9u lSnRAPatvzD0EaSPosz2fwmM8RYcmr44RxD9vGQ9HkU3MwVQQorGSFpo7DIYJGMrMTn/0twXLp i7YByhiIDCf19ZTYCJh1rEGNyCXYrzl6YwDhxqi5482DxJtS99q28QkrWFZymsH97dezphJAtt UmAl8fHHl1CHS0YwM7SeJMl2sPgQdIIPOfuiwiHUVHxM0xStT4N4ujZp2xx91EhK93jbe1Lai8 YsE=
- Wdcironportexception: Internal
Fix a problem with the libgo testsuite using a method to determine the
compiler to use resulting in the tool being different from one the
library has been built with, and causing a catastrophic failure from the
lack of a suitable `--sysroot=' option where the `--with-build-sysroot='
configuration option has been used to build the compiler resulting in
the inability to link executables.
Address this problem by providing a DejaGNU configuration file defining
the compiler to use, via the GOC_UNDER_TEST TCL variable, set from $GOC
by autoconf, which will have all the required options set for the target
compiler to build executables in the environment configured, removing
failures like:
.../bin/riscv64-linux-gnu-ld: cannot find crt1.o: No such file or directory
.../bin/riscv64-linux-gnu-ld: cannot find -lm
.../bin/riscv64-linux-gnu-ld: cannot find -lc
collect2: error: ld returned 1 exit status
compiler exited with status 1
No summary comparison, because the libgo testsuite does not provide one
in this configuration for some reason, however this change improves
overall test results for the `riscv64-linux-gnu' target (here with the
`x86_64-linux-gnu' host and RISC-V QEMU in the Linux user emulation mode
as the target board) from 0 PASSes and 159 FAILs to 133 PASSes and 26
FAILs.
libgo/
* configure.ac: Add testsuite/libgo-test-support.exp to output
files.
* configure: Regenerate.
* testsuite/libgo-test-support.exp.in: New file.
* testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): New
variable.
* testsuite/Makefile.in: Regenerate.
* testsuite/lib/libgo.exp: Don't override GOC_UNDER_TEST
previously set.
---
libgo/configure | 3 ++-
libgo/configure.ac | 2 +-
libgo/testsuite/Makefile.am | 2 ++
libgo/testsuite/Makefile.in | 5 ++++-
libgo/testsuite/lib/libgo.exp | 13 ++++++++-----
libgo/testsuite/libgo-test-support.exp.in | 1 +
6 files changed, 18 insertions(+), 8 deletions(-)
gcc-test-libgo-gcc-under-test.diff
Index: gcc/libgo/configure
===================================================================
--- gcc.orig/libgo/configure
+++ gcc/libgo/configure
@@ -15850,7 +15850,7 @@ else
multilib_arg=
fi
-ac_config_files="$ac_config_files Makefile testsuite/Makefile"
+ac_config_files="$ac_config_files Makefile testsuite/Makefile testsuite/libgo-test-support.exp"
ac_config_commands="$ac_config_commands default"
@@ -17031,6 +17031,7 @@ do
"libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;;
+ "testsuite/libgo-test-support.exp") CONFIG_FILES="$CONFIG_FILES testsuite/libgo-test-support.exp" ;;
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
Index: gcc/libgo/configure.ac
===================================================================
--- gcc.orig/libgo/configure.ac
+++ gcc/libgo/configure.ac
@@ -877,7 +877,7 @@ else
multilib_arg=
fi
-AC_CONFIG_FILES(Makefile testsuite/Makefile)
+AC_CONFIG_FILES(Makefile testsuite/Makefile testsuite/libgo-test-support.exp)
AC_CONFIG_COMMANDS([default],
[if test -n "$CONFIG_FILES"; then
Index: gcc/libgo/testsuite/Makefile.am
===================================================================
--- gcc.orig/libgo/testsuite/Makefile.am
+++ gcc/libgo/testsuite/Makefile.am
@@ -11,6 +11,8 @@ RUNTEST = `if [ -f $(top_srcdir)/../deja
echo $(top_srcdir)/../dejagnu/runtest ; \
else echo runtest; fi`
+EXTRA_DEJAGNU_SITE_CONFIG = libgo-test-support.exp
+
# When running the tests we set GCC_EXEC_PREFIX to the install tree so that
# files that have already been installed there will be found. The -B option
# overrides it, so use of GCC_EXEC_PREFIX will not result in using GCC files
Index: gcc/libgo/testsuite/Makefile.in
===================================================================
--- gcc.orig/libgo/testsuite/Makefile.in
+++ gcc/libgo/testsuite/Makefile.in
@@ -106,7 +106,7 @@ am__configure_deps = $(am__aclocal_m4_de
DIST_COMMON = $(srcdir)/Makefile.am
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_FILES = libgo-test-support.exp
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -299,6 +299,7 @@ RUNTEST = `if [ -f $(top_srcdir)/../deja
echo $(top_srcdir)/../dejagnu/runtest ; \
else echo runtest; fi`
+EXTRA_DEJAGNU_SITE_CONFIG = libgo-test-support.exp
# When running the tests we set GCC_EXEC_PREFIX to the install tree so that
# files that have already been installed there will be found. The -B option
@@ -338,6 +339,8 @@ $(top_srcdir)/configure: @MAINTAINER_MOD
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
+libgo-test-support.exp: $(top_builddir)/config.status $(srcdir)/libgo-test-support.exp.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
mostlyclean-libtool:
-rm -f *.lo
Index: gcc/libgo/testsuite/lib/libgo.exp
===================================================================
--- gcc.orig/libgo/testsuite/lib/libgo.exp
+++ gcc/libgo/testsuite/lib/libgo.exp
@@ -14,13 +14,16 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
-if {$gccdir != ""} {
- set gccdir [file dirname $gccdir]
-}
-set GOC_UNDER_TEST "$gccdir/gccgo -B$gccdir/"
set TESTING_IN_BUILD_TREE 1
+if ![info exists GOC_UNDER_TEST] then {
+ set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
+ if {$gccdir != ""} {
+ set gccdir [file dirname $gccdir]
+ }
+ set GOC_UNDER_TEST "$gccdir/gccgo -B$gccdir/"
+}
+
if [info exists GOTEST_TMPDIR] {
set tmpdir $GOTEST_TMPDIR
}
Index: gcc/libgo/testsuite/libgo-test-support.exp.in
===================================================================
--- /dev/null
+++ gcc/libgo/testsuite/libgo-test-support.exp.in
@@ -0,0 +1 @@
+set GOC_UNDER_TEST {@GOC@}