Open Quuxplusone opened 3 years ago
Bugzilla Link | PR51117 |
Status | NEW |
Importance | P enhancement |
Reported by | Tomasz Kłoczko (kloczko.tomasz@gmail.com) |
Reported on | 2021-07-16 13:23:54 -0700 |
Last modified on | 2021-09-30 14:18:00 -0700 |
Version | trunk |
Hardware | PC Windows NT |
CC | ivan.murashko@gmail.com, llvm-bugs@lists.llvm.org, protze@itc.rwth-aachen.de |
Fixed by commit(s) | |
Attachments | |
Blocks | |
Blocked by | |
See also |
Is this on Windows (as indicated in the Hardware drop down) or Linux as
indicated by the path names?
What is the gcc version used? Some of the tests flag gcc-4 to gcc-9 as
unsupported, but don't include flags for gcc-10 / gcc-11 yet.
Which directory is used as the CMake base source directory? llvm-project/openmp?
Most tests write their output into files like
/home/tkloczko/rpmbuild/BUILD/openmp-12.0.1.src/x86_64-redhat-linux-gnu/tools/archer/tests/races/Output/lock-nested-unrelated.c.tmp.log
If any of the files for failing tests contains some output, attaching the file
would be helpful.
Linux x86_64
I'm using gcc 11.1.1
Source tar ball https://github.com/llvm/llvm-project/releases/download/llvmorg-
12.0.1/openmp-12.0.1.src.tar.xz
I don't have gcc 11 at hand, but a relatively recent gcc build from git. I can
reproduce several of the failing tests:
Failed Tests (7):
libarcher :: task/task_early_fulfill.c
libarcher :: task/task_late_fulfill.c
libomp :: ompt/tasks/task_early_fulfill.c
libomp :: ompt/tasks/task_late_fulfill.c
libomp :: tasking/hidden_helper_task/capacity_nthreads.cpp
libomp :: tasking/omp_detach_taskwait.c
libomp :: tasking/omp_task_red_taskloop.c
2b0d95fb584e6d6409c57c84bd992f3d62b0eac6 fixes
libomp :: tasking/hidden_helper_task/capacity_nthreads.cpp
I just pushed c46ccb8538c5c0b4724a842e110ad46d7e1b107a to fix the remaining 6
tests (mainly marking them as XFAIL).
I cannot reproduce the other failing tests, but I'll try to get gcc/11.1 next
week and try again.
It is totally unexpected that they segfault. Any chance that you collect a
stack trace for one of the tests? Ideally LD_PRELOAD libomp from the build
directory to make sure that the right library is used.
BTW it would be nioce to integrate all test ubits as ctest "tests" target instead adding anothet DIY tarted (the same issue in other LLVM components).
I tried to reproduce the failures with gcc/11, but could not reproduce the failing tests on my machine.
Could you probably rerun the tests using the release-13-rc tar?
I'm not sure, what compile flags rpmbuild applies, but could your issue be
related to a similar issue with deb packages?
https://bugs.llvm.org/show_bug.cgi?id=45945
When building deb packages, "-Wl,-Bsymbolic-functions" is among the LDFLAGS and
renders libarcher useless. When linking libarcher, this flag must not be there.
Please use below script:
CFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-
D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -
mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-
protection -fdata-sections -ffunction-sections'
CXXFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-
D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -
mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-
protection -fdata-sections -ffunction-sections'
FFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-
D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -
mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-
protection -fdata-sections -ffunction-sections -I/usr/lib64/gfortran/modules'
FCFLAGS='-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-
D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -
mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-
protection -fdata-sections -ffunction-sections -I/usr/lib64/gfortran/modules'
LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now'
CC=/usr/bin/gcc
CXX=/usr/bin/g++
FC=/usr/bin/gfortran
AR=/usr/bin/gcc-ar
NM=/usr/bin/gcc-nm
RANLIB=/usr/bin/gcc-ranlib
export CFLAGS CXXFLAGS FFLAGS FCFLAGS LDFLAGS CC CXX FC AR NM RANLIB
/usr/bin/cmake -B x86_64-redhat-linux-gnu -D BUILD_SHARED_LIBS=ON -D
CMAKE_AR=/usr/bin/gcc-ar -D CMAKE_BUILD_TYPE=RelWithDebInfo -D
CMAKE_C_FLAGS_RELEASE=-DNDEBUG -D CMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -D
CMAKE_Fortran_FLAGS_RELEASE=-DNDEBUG -D CMAKE_INSTALL_PREFIX=/usr -D
CMAKE_NM=/usr/bin/gcc-nm -D CMAKE_RANLIB=/usr/bin/gcc-ranlib -D
CMAKE_VERBOSE_MAKEFILE=ON -D DBUILD_SHARED_LIBS=ON -D
INCLUDE_INSTALL_DIR=/usr/include -D LIB_INSTALL_DIR=/usr/lib64 -D LIB_SUFFIX=64
-D SHARE_INSTALL_PREFIX=/usr/share -D SYSCONF_INSTALL_DIR=/etc -S . -D
ENABLE_CHECK_TARGETS=ON -D LIBOMP_INSTALL_ALIASES=OFF -D
LIBOMP_HEADERS_INSTALL_PATH=/usr/lib64/clang/12.0.1/include -D
OPENMP_LIBDIR_SUFFIX=64
/usr/bin/cmake --build x86_64-redhat-linux-gnu --verbose
/usr/bin/cmake --build x86_64-redhat-linux-gnu -j48 --verbose --target check-
openmp
Just checked 13.0.0-rc4 and lookd like nothing has changed.