While building the 8.0 releases on FreeBSD, I encountered the following
warnings in openmp quite a few times:
In file included from projects/openmp/runtime/src/kmp_settings.cpp:27: projects/openmp/runtime/src/kmp_wrapper_getpid.h:35:2: warning: #warning is a language extension [-Wpedantic] #warning No gettid found, use getpid instead ^ projects/openmp/runtime/src/kmp_wrapper_getpid.h:35:2: warning: No gettid found, use getpid instead [-W#warnings] 2 warnings generated.
I added a gettid wrapper that uses FreeBSD's pthread_getthreadid_np(3)
function for this.
Another problem occurred while running the regression tests, where the
ompt/misc/interoperability.cpp failed to compile, with:
projects/openmp/runtime/test/ompt/misc/interoperability.cpp:7:10: fatal error: 'alloca.h' file not found #include <alloca.h> ^~~~~~~~~~
Like on NetBSD, alloca(3) is defined in <stdlib.h> instead. Also,
to make this test case link, I had to -lpthread to the command line,
otherwise it would fail with:
ld: /tmp/lit_tmp_o4Emdi/interoperability-ce6e27.o: undefined reference to symbol 'pthread_create@@FBSD_1.0'
This line is missing quotes and breaks cmake if ${CMAKE_THREAD_LIBS_INIT} is empty see https://bugs.llvm.org/show_bug.cgi?id=41401