testuite: fix libtdc++ libatomic flags
commitfb6b24c66ea5a2ccbf6fb9f299c20a69f962ac9b
authorDavid Edelsohn <dje.gcc@gmail.com>
Fri, 23 Apr 2021 21:45:10 +0000 (23 17:45 -0400)
committerDavid Edelsohn <dje.gcc@gmail.com>
Sat, 24 Apr 2021 15:57:05 +0000 (24 11:57 -0400)
treef1d92572fa31b5606ab780084946202a44d41e57
parentb6600392bf71c4a9785f8f49948b611425896830
testuite: fix libtdc++ libatomic flags

Some ports require libatomic for atomic operations, at least for some
data types and widths.  The libstdc++ testsuite previously was updated
to link against libatomic, but the search path was hard-coded to
something that is not always correct, and the shared library search
path was not set.

The search path was hard-coded to the expected location of the
libatomic build directory relative to the libstdc++ testsuite
directory, but if one uses parallelism when invoking the libstdc++
testsuite, the tests are run in the "normalXX" sub-directories, for
which the hard-coded search path is incorrect. The path also is
incorrect for alternative multilib and tool options.

This patch adopts the logic from gcc/testsuite/lib/atomic-dg.exp to
search for the library and adds the logic to the libstdc++ testsuite
libatomic seatch path code.  Previously the libstdc++ testsuite atomic
tests failed depending on the build configuration and if a build of
libatomic was installed in the default search path.

Bootstrapped on powerpc-ibm-aix7.2.3.0.

libstdc++-v3/ChangeLog:

* testsuite/lib/dg-options.exp (atomic_link_flags): New.
(add_options_for_libatomic): Use atomic_link_flags.
libstdc++-v3/testsuite/lib/dg-options.exp