Fix ld tests with sysroot=/ and --enable-targets=all and test --print-sysroot
authorHans-Peter Nilsson <hp@bitrange.com>
Fri, 17 Oct 2014 11:10:18 +0000 (13:10 +0200)
committerHans-Peter Nilsson <hp@bitrange.com>
Fri, 17 Oct 2014 11:11:42 +0000 (13:11 +0200)
commit3f7308212cefe5cd958b29e0b9e92d92c4dbe941
treedc100e5c5f17f5abcf8f260148e6b49dc8d9adf6
parentc1e29d6622533257267e6dd136a34f9785edfb28
Fix ld tests with sysroot=/ and --enable-targets=all and test --print-sysroot

* ld-scripts/sysroot-prefix.exp: Log $ld_sysroot.  Handle sysroot
== "/" as a separate sysroot-configuration with separable
test-types.
(sysroot_prefix_tests): Include all existing sysroot tests in
sysroot == "/" tests except exclude those where a --sysroot option
is not specified.
* lib/ld-lib.exp (check_sysroot_available): Rewrite to use
--print-sysroot instead of relying on error code from using
--sysroot=...  Also, set $ld_sysroot.

The reason we exclude not just the failing "full-path =-prefixed
without" but also the passing "plain =-prefixed without but -Lpath"
for sysroot == "/" is that for the latter to succeed, we have to make
assumptions about the system not having a /sysroot directory or
assumptions about its contents etc.

When passing --enable-targets=all --enable-64-bit-bfd (the
latter not required for a "64-bit-host" of course) the ld --help
output got too much to handle for poor tcl (or maybe dejagnu is
to blame) and remote_exec exited with an error, so the
configuration being tested was mishandled as being a
sysroot-less configuration.  Using --version instead of --help
would work too, but the new --print-sysroot option calls for
nominal coverage, so why not use that instead.
ld/testsuite/ChangeLog
ld/testsuite/ld-scripts/sysroot-prefix.exp
ld/testsuite/lib/ld-lib.exp