This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] libgomp/test: Add flags to find libatomic in build-tree testing
- From: "Maciej W. Rozycki" <macro at wdc dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sat, 9 Nov 2019 01:07:24 +0000 (GMT)
- Subject: [PATCH] libgomp/test: Add flags to find libatomic in build-tree testing
- Ironport-sdr: 9RKcYGi3hXdigabqEAkuiAJZRuailkG3tvyHAIFsVMqrOUjoN/5OLmVk3SRPb4XHTi9I1G4j/e SP7RybYZPRGSAlH3wfELh/w0w6syFp8QzEoaNboE0YFGlDS8VLCBhssY+pkwq41IygWOzw4bwE xC/e2UFFvBxMQP1gPizwq0edX83LKtbEY3pZnI1rNbgDt1lKJIuQxdgmvNikjN0SW35WjUvt5R S8gCvLAiwQ+spGLClVZcfPr6Wjdpf+2oFJW+Ce/kUvqk8AdhYXm1XZ2XuvkHyWtcUAlC4mdxed S30=
- Ironport-sdr: An0p8FM53bYEbaYk4S7mMFuR7+ap3EmrBdnE3N6BO/hOhKI3I5MFXBVXIoePDVSbnullB4Dxbd ECJI41IAbsYwq31uztNEkOImEbWlAqrMfs12ciHQzqs2XQq7WeM2j8KvVi/6CJmt1PomXL8Sn2 Y/fxxiMCvOPsl5VHQuUIi1WNQNizOGeYDNOq1S8dfxJhDGD7W/ZQCLKObWfe0YdqRglMXdRax0 E5T0tWiuVfO6T4Ik5jHoOAYD/csjvHbwEDi8wh6+pdnfd6IjGjVC1OUt8JYWHys4yuHmCHmMWc rmr5nPbmDH5LstKJny7zpH+G
- Ironport-sdr: 9tc9mGGTEuH7fCYeJwBztg7eNH5Wbpi1wNV8jPHRTh96iP9i3K3SpBm/Nx5GW1vdS8ppIHpiXQ 91a8t6qiPJdql+qE7eZnSjDkV1ItIAV3yxy1epTF/LsjBt0cjPcxZhzCNuSi2pCM7jgHsaf9Xb TyY3ho3vgrvINomoiAqK0ZTfs+647NwJ9c1Mpbb68RzjUEHb3CBmc3SyEbFDjb62ytWIbzLwDe zitdxJldsQfK3CqtBgqGiOdtwmx5a+IqcbV48O/mRFEpswjSZ2hZjOk7TfUISY/Ivl6s3jkEQB IzA=
- Wdcironportexception: Internal
Add flags to find libatomic in build-tree testing, fixing a catastrophic
libgomp testsuite failure with targets such as `riscv-linux-gnu' that
imply `-latomic' with the `-pthread' GCC option, implied in turn by the
offload options, removing failures like:
.../bin/riscv64-linux-gnu-ld: cannot find -latomic
collect2: error: ld returned 1 exit status
compiler exited with status 1
FAIL: libgomp.c/../libgomp.c-c++-common/atomic-18.c (test for excess errors)
Excess errors:
.../bin/riscv64-linux-gnu-ld: cannot find -latomic
UNRESOLVED: libgomp.c/../libgomp.c-c++-common/atomic-18.c compilation failed to produce executable
and bringing overall test results for the said target (here with the
`x86_64-linux-gnu' host and RISC-V QEMU in the Linux user emulation mode
as the target board) from:
=== libgomp Summary ===
# of expected passes 90
# of unexpected failures 3267
# of expected failures 2
# of unresolved testcases 3247
# of unsupported tests 548
to:
=== libgomp Summary ===
# of expected passes 6834
# of unexpected failures 4
# of expected failures 4
# of unsupported tests 518
libgomp/
* testsuite/lib/libgomp.exp (libgomp_init): Add flags to find
libatomic in build-tree testing.
---
libgomp/testsuite/lib/libgomp.exp | 10 ++++++++++
1 file changed, 10 insertions(+)
gcc-test-libgomp-atomic-lib-path.diff
Index: gcc/libgomp/testsuite/lib/libgomp.exp
===================================================================
--- gcc.orig/libgomp/testsuite/lib/libgomp.exp
+++ gcc/libgomp/testsuite/lib/libgomp.exp
@@ -174,6 +174,16 @@ proc libgomp_init { args } {
# For build-tree testing, also consider the library paths used for builing.
# For installed testing, we assume all that to be provided in the sysroot.
if { $blddir != "" } {
+ # Offload options imply `-pthread', and that implies `-latomic'
+ # on some targets, so wire in libatomic build directories.
+ set shlib_ext [get_shlib_extension]
+ set atomic_library_path "${blddir}/../libatomic/.libs"
+ if { [file exists "${atomic_library_path}/libatomic.a"]
+ || [file exists \
+ "${atomic_library_path}/libatomic.${shlib_ext}"] } {
+ lappend ALWAYS_CFLAGS "additional_flags=-L${atomic_library_path}"
+ append always_ld_library_path ":${atomic_library_path}"
+ }
global cuda_driver_include
global cuda_driver_lib
if { $cuda_driver_include != "" } {