modula-2, testsuite: Make libs and interfaces consistent.

In some case the libraries list was being set before gm2_init_xxx was
called.  In some cases it was omitted - this could lead to a difference
between the link libs and the interfaces (the effect of this would be
dependent on the order in which the .exps were run, which makes it also
depend on the -j and the system).

To avoid a mismatch between the module include paths and the added libs
we now make sure that they are both added in the gm_init_xxxx functions
(if finer control over granularity is needed, then we should as a TODO
add a generic gm_init_xxx that takes a library list and ensures that the
imports and libs are matched in the same order).

Also we cannot use a default variable in tcl if the source for that
variable could be absent, but something else follows, there is no way
to put an empty placeholder in.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>

gcc/testsuite/ChangeLog:

	* gm2/complex/run/pass/complex-run-pass.exp: Remove gm2_link_lib.
	* gm2/iso/run/pass/iso-run-pass.exp: Likewise.
	* gm2/link/externalscaffold/pass/link-externalscaffold-pass.exp:
	* gm2/pimlib/logitech/run/pass/pimlib-logitech-run-pass.exp: Likewise.
	* gm2/pimlib/run/pass/pimlib-run-pass.exp: Likewise.
	* gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp:
	Likewise.
	* gm2/projects/iso/run/pass/hello/projects-iso-run-pass-hello.exp:
	Likewise.
	* gm2/projects/pim/run/pass/hello/projects-pim-run-pass-hello.exp:
	Likewise.
	* gm2/sets/run/pass/sets-run-pass.exp: Likewise.
	* gm2/switches/none/run/pass/gm2-none.exp: Likewise.
	* gm2/switches/pic/run/pass/switches-pic-run-pass.exp: Likewise.
	* gm2/projects/pim/run/pass/random/projects-pim-run-pass-random.exp:
	Likewise, and also ensure that the -g option is appended to avoid it
	being taken as a path.
	* lib/gm2.exp: Ensure for each gm2_init_xxxx function that the set of
	libraries added matches the set of -I and -L options.
This commit is contained in:
Iain Sandoe
2023-01-14 19:33:52 +00:00
parent 5115508919
commit f8cb07a7a4
13 changed files with 26 additions and 37 deletions

View File

@@ -27,7 +27,6 @@ load_lib gm2-torture.exp
set gm2src ${srcdir}/../gm2
gm2_link_lib "m2iso m2pim"
gm2_init_iso "${srcdir}/gm2/complex/run/pass"

View File

@@ -24,7 +24,6 @@ if $tracelevel then {
# load support procs
load_lib gm2-torture.exp
gm2_link_lib "m2iso m2pim"
gm2_init_iso "${srcdir}/gm2/iso/run/pass" -fsoft-check-all
gm2_link_obj fileio.o

View File

@@ -25,7 +25,6 @@ if $tracelevel then {
# load support procs
load_lib gm2-torture.exp
gm2_link_lib "m2pim"
gm2_init_pim "${srcdir}/gm2/pim/pass" -fscaffold-main -fno-scaffold-dynamic
gm2_link_obj scaffold.o
set output [target_compile $srcdir/$subdir/scaffold.c scaffold.o object "-g"]

View File

@@ -27,10 +27,8 @@ load_lib gm2-torture.exp
set gm2src ${srcdir}/../m2
gm2_link_lib "m2log m2pim m2iso"
gm2_init_log
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {
# If we're only testing specific files and this isn't one of them, skip it.
if ![runtest_file_p $runtests $testcase] then {

View File

@@ -27,10 +27,8 @@ load_lib gm2-torture.exp
set gm2src ${srcdir}/../m2
gm2_link_lib "m2pim m2log m2iso"
gm2_init_log
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {
# If we're only testing specific files and this isn't one of them, skip it.
if ![runtest_file_p $runtests $testcase] then {

View File

@@ -27,7 +27,6 @@ load_lib gm2-torture.exp
set gm2src ${srcdir}/../m2
gm2_link_lib "m2iso m2pim"
gm2_init_iso
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {

View File

@@ -27,7 +27,6 @@ load_lib gm2-torture.exp
set gm2src ${srcdir}/../m2
gm2_link_lib "m2iso m2pim"
gm2_init_iso
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {

View File

@@ -27,7 +27,6 @@ load_lib gm2-torture.exp
set gm2src ${srcdir}/../m2
gm2_link_lib "m2pim m2log m2iso"
gm2_init_pim
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {

View File

@@ -25,27 +25,26 @@ if $tracelevel then {
# load support procs
load_lib gm2-torture.exp
set gm2src ${srcdir}/../m2
gm2_link_lib "m2pim m2log m2iso"
gm2_init_pim "-g -I$srcdir/$subdir"
gm2_init_pim "$srcdir/$subdir" -g
gm2_link_obj "WriteMap.o AdvMap.o BoxMap.o Chance.o Geometry.o MakeBoxes.o MapOptions.o Options.o RoomMap.o StoreCoords.o"
# If we want these to be re-built for each torture option we need some different
# logic.
gm2_target_compile $srcdir/$subdir/AdvMap.mod AdvMap.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/BoxMap.mod BoxMap.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/Chance.mod Chance.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/Geometry.mod Geometry.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/MakeBoxes.mod MakeBoxes.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/MapOptions.mod MapOptions.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/Options.mod Options.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/RoomMap.mod RoomMap.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/StoreCoords.mod StoreCoords.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/WriteMap.mod WriteMap.o object "-g -I$srcdir/$subdir/"
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/Map.mod]] {
# If we're only testing specific files and this isn't one of them, skip it.
if ![runtest_file_p $runtests $testcase] then {
continue
}
gm2_target_compile $srcdir/$subdir/AdvMap.mod AdvMap.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/BoxMap.mod BoxMap.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/Chance.mod Chance.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/Geometry.mod Geometry.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/MakeBoxes.mod MakeBoxes.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/MapOptions.mod MapOptions.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/Options.mod Options.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/RoomMap.mod RoomMap.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/StoreCoords.mod StoreCoords.o object "-g -I$srcdir/$subdir/"
gm2_target_compile $srcdir/$subdir/WriteMap.mod WriteMap.o object "-g -I$srcdir/$subdir/"
gm2-torture-execute $testcase "" "pass"
}

View File

@@ -27,7 +27,6 @@ load_lib gm2-torture.exp
set gm2src ${srcdir}/../m2
gm2_link_lib "m2iso m2pim"
gm2_init_iso "${srcdir}/gm2/sets/run/pass/"
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {

View File

@@ -26,7 +26,6 @@ load_lib gm2-simple.exp
set gm2src ${srcdir}/../m2
gm2_link_lib "m2pim m2iso"
gm2_init_pim
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {

View File

@@ -26,10 +26,8 @@ load_lib gm2-torture.exp
set gm2src ${srcdir}/../m2
gm2_link_lib "m2pim m2iso"
gm2_init_pim "${srcdir}/gm2/switches/pic/run/pass" -fPIC
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {
# If we're only testing specific files and this isn't one of them, skip it.
if ![runtest_file_p $runtests $testcase] then {

View File

@@ -352,6 +352,7 @@ proc gm2_init_pimx { dialect {path ""} args } {
append theIpath " -I"
append theIpath ${path}
}
gm2_link_lib "m2pim m2iso"
gm2_init {*}${theIpath} {*}${dialect} {*}${theLpath} {*}${args};
}
@@ -422,6 +423,7 @@ proc gm2_init_iso { {path ""} args } {
append theIpath ${path}
}
gm2_link_lib "m2iso m2pim m2cor"
gm2_init {*}${theIpath} -fiso {*}${theLpath} {*}${args};
}
@@ -450,6 +452,7 @@ proc gm2_init_ulm { {path ""} args } {
append theIpath ${path}
}
gm2_link_lib "m2ulm m2pim"
gm2_init {*}${theIpath} -fpim {*}${theLpath} {*}${args};
}
@@ -540,24 +543,26 @@ proc gm2_init_cor { {path ""} args } {
proc gm2_init_minx { dialect {path ""} args } {
global srcdir;
global gccpath;
set gm2src ${srcdir}/../m2;
send_log "srcdir is $srcdir\n"
send_log "gccpath is $gccpath\n"
send_log "gm2src is $gm2src\n"
set minIpath "${gccpath}/libgm2/libm2min";
set minLpath "${gccpath}/libgm2/libm2min/.libs";
set theIpath " -I${gccpath}/libgm2/libm2min"
append theIpath " -I${gm2src}/gm2-libs-min"
set theIpath "-I${minIpath}";
set theLpath "-L${minLpath}";
set theLpath " -L${gccpath}/libgm2/libm2min/.libs";
if { $path != "" } then {
append theIpath " -I"
append theIpath ${path}
}
gm2_init {*}${theIpath} {*}${dialect} {*}${theLpath} {*}${args};
gm2_link_lib "m2min"
append args " -fno-exceptions "
append args " -fno-libs=- "
gm2_init {*}${theIpath} {*}${dialect} {*}${theLpath} {*}${args}
}
#
@@ -566,6 +571,5 @@ proc gm2_init_minx { dialect {path ""} args } {
#
proc gm2_init_min { {path ""} args } {
append args " -fno-exceptions"
gm2_init_minx -fpim {*}${path} {*}${args};
gm2_init_minx -fpim {*}${path} {*}${args}
}