aboutsummaryrefslogtreecommitdiff
path: root/Makefile.def
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@ericsson.com>2016-02-08 14:00:49 -0500
committerSimon Marchi <simon.marchi@ericsson.com>2016-02-08 14:00:49 -0500
commit437277d47a15711f29e02e5265ce8bbb8c8ef4f5 (patch)
treef280914e961d12f8e372745003301700e362fa8c /Makefile.def
parent5488790363bf8f338e7aec4731f8bed472a2fcf9 (diff)
downloadfsf-binutils-gdb-437277d47a15711f29e02e5265ce8bbb8c8ef4f5.zip
fsf-binutils-gdb-437277d47a15711f29e02e5265ce8bbb8c8ef4f5.tar.gz
fsf-binutils-gdb-437277d47a15711f29e02e5265ce8bbb8c8ef4f5.tar.bz2
Fix in-tree, parallel running of Ada tests
While testing the following patch, [PATCH] Always organize test artifacts in a directory hierarchy https://sourceware.org/ml/gdb-patches/2016-01/msg00133.html I noticed that it broke Ada testing. This lead me to think that parallel testing when building in-tree didn't work previously in Ada. It is confirmed by this test: $ make check TESTS="gdb.ada/fun_addr.exp" -j 2 ... Running ./gdb.ada/fun_addr.exp ... FAIL: gdb.ada/fun_addr.exp: compilation foo.adb ... This patch fixes in-tree parallel testing for Ada, and consequently serial and parallel testing when the aforementioned patch is applied. The problem originates from the fact that Ada support code cd's to the builddir before compiling. In itself it's not a problem, it allows to place intermediate auto-generated files in that directory. The Ada compilation refers to the source file, which is in another directory, only by its base name (e.g. foo.adb). In serial mode, that worked because builddir was the same as the source directory (e.g. gdb.ada/fun_addr/). In an out-of-tree build, it works because the source directory is added as an include directory (note: this is not the same $srcdir as autoconf's): set srcdir [file dirname $source] additional_flags=-I$srcdir which becomes: additional_flags=-I/home/emaisin/build/binutils-gdb/gdb/testsuite/gdb.ada/fun_addr However, when building in-tree, srcdir is relative: ./gdb.ada/fun_addr. When using parallel or always-in-outputs-directory mode, we are cd'ed in the outputs directory. So -I$srcdir is relative to the current directory, which is wrong. To fix it, I made the TCL variable srcdir (set in site.exp, from which everything else is derived) always absolute. It is done by assigning autoconf's abs_srcdir instead of autoconf's srcdir. This way -I$srcdir will always be good, regardless of where we cd'ed to. A small apparent change is that when running tests, DejaGnu will say: Running /tmp/binutils-gdb/gdb/testsuite/gdb.ada/fun_addr.exp ... instead of Running ./gdb.ada/fun_addr.exp ... I hope it's not too much of an annoyance. I think that it should make the testsuite a tiny bit more robust against other bugs of the same class. Regtested in & out of tree, only with native target. gdb/testsuite/ChangeLog: * Makefile.in (abs_srcdir): Assign @abs_srcdir@. (site.exp): Assign abs_srcdir to tcl's srcdir.
Diffstat (limited to 'Makefile.def')
0 files changed, 0 insertions, 0 deletions