Opened 5 years ago
Closed 4 years ago
#60310 closed defect (fixed)
gnucash @3.9: Could NOT find Threads (missing: Threads_FOUND)
Reported by: | hapaguy (Brian Kurt Fujikawa) | Owned by: | drkp (Dan Ports) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | catalina | Cc: | jjstickel (Jonathan Stickel), posita (Matt Bogosian), michaelld (Michael Dickens) |
Port: | gnucash |
Description
I am using the following:
macOS 10.15.4
Xcode 11.4
MacPorts 2.6.2
The gnucash
build fails:
sudo port -sv upgrade gnucash
sudo port -sv install gnucash
with missing threads, etc.:
-- Performing Test HAVE_OFX_BUG_39 - Failed
-- Performing Test have_stringop_truncation - Failed
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread - not found
I have attached the main.log.
Attachments (2)
Change History (17)
Changed 5 years ago by hapaguy (Brian Kurt Fujikawa)
Attachment: | gnucash main.log added |
---|
comment:1 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | drkp removed |
---|---|
Keywords: | catalina added |
Owner: | set to drkp |
Status: | new → assigned |
Summary: | gnucash @3.9 build failure → gnucash @3.9: Could NOT find Threads (missing: Threads_FOUND) |
Changed 5 years ago by hapaguy (Brian Kurt Fujikawa)
Attachment: | gnucash CMakeError.log added |
---|
comment:2 Changed 5 years ago by hapaguy (Brian Kurt Fujikawa)
Could you also attach the CMakeError.log file?
done, thanks
comment:3 Changed 5 years ago by drkp (Dan Ports)
Well, I'm pretty confused here because I didn't run into this problem when I originally prepared the gnucash 3.9 update (also on Catalina), but now I'm running into it with gnucash 3.10. I guess this is probably related to some update either to Catalina or to Xcode that happened in the interim??
comment:4 Changed 5 years ago by hapaguy (Brian Kurt Fujikawa)
FWIW, I updated macOS and Xcode on Mar 24 - a week before I ran into problems with the gnucash 3.9 update. I didn't encounter any issues with the gnucash 3.8 update in Jan - so, your guess that the problem is related to the macOS/Xcode update is reasonable.
comment:5 Changed 5 years ago by kencu (Ken)
I notice one pthread.h test fails like this:
error: no previous prototype for function 'test_func' [-Werror,-Wmissing-prototypes]
I'd have to check by comparing to some other compiler's behaviour, but it could be that test used to pass, and now it fails due to a stricter clang syntax check.
comment:6 Changed 5 years ago by kencu (Ken)
With clang-9 on 10.6, I see similar errors, but it succeeds in the end:
-- Checking for GTEST -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Check if compiler accepts -pthread -- Check if compiler accepts -pthread - no -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE
so it's not that -- too bad, that might have been easy. You may see useful information in CMakeOutput.log
to help as well.
comment:7 Changed 5 years ago by jjstickel (Jonathan Stickel)
Cc: | jjstickel added |
---|
comment:8 Changed 4 years ago by jjstickel (Jonathan Stickel)
I'd appreciate some movement on this one. I've been using direct download of gnucash from the upstream site, but I am experiencing some weird behavior that might be easier to trouble-shoot with Macports-installed gnucash. I googled and tried solutions suggested on these forums/issues:
https://github.com/fireice-uk/xmr-stak/issues/1597
but no luck. I'm willing to try other things if you have suggestions.
comment:9 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | posita added |
---|
Has duplicate #60724.
comment:10 Changed 4 years ago by kencu (Ken)
On 10.15, the initial configuration of gnucash
fails, as above.
looking at build/CMakeFiles/CMakeError.log
, we see this:
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gnucash/gnucash/work/build/CMakeFiles/CMakeTmp/src.c:3:7: error: no previous prototype for function 'test_func' [-Werror,-Wmissing-prototypes] void* test_func(void* data) ^ /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gnucash/gnucash/work/build/CMakeFiles/CMakeTmp/src.c:3:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void* test_func(void* data) ^ static 1 error generated.
Well, OK, Xcode 11 wants a function prototype. The test is kept in this file:
/opt/local/share/cmake-3.17/Modules/CheckForPthreads.c
and editing that file to add a function prototype:
#include <pthread.h> /* ADD THIS FUNCTION PROTOTYPE */ void* start_routine(void*); void* start_routine(void* args) { return args; } int main(void) { /* This is a compile and link test, no code to actually run things. */ pthread_t thread; pthread_create(&thread, 0, start_routine, 0); pthread_join(thread, 0); return 0; }
and then all is well, pthreads
are found, gnucash
finishes configuring, and installs.
% port -v installed gnucash The following ports are currently installed: gnucash @3.9_0 (active) platform='darwin 19' archs='x86_64' date='2020-06-27T19:42:28-0700'
So - cmake
will need a patch for this, for now, until the inevitable next release, wherein we find out this has already, no doubt, been reported and fixed upstream in some commit that I'm sure someone will find and paste the link to here.
comment:11 Changed 4 years ago by kencu (Ken)
Cc: | michaelld added |
---|
comment:12 Changed 4 years ago by kencu (Ken)
Hi Michael -- adding you in here, as it looks like the pthread
detection module on cmake
is falsely failing on stricter Xcode 11 due to a lack of function prototype in the pthread
test file.
comment:13 Changed 4 years ago by kencu (Ken)
another approach, maybe simpler for now (although cmake should still provide a prototype)...
in the gnucash CMakeList.txt, they do this:
if (UNIX) set( CMAKE_C_FLAGS "-Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-unused ${CMAKE_C_FLAGS}")
So easing up that -Werror
should also fix this in this build.
comment:14 Changed 4 years ago by kencu (Ken)
comment:15 Changed 4 years ago by ken-cunningham-webuse
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
I agree; here's the build failure log from our Catalina buildbot worker. This problem appears to be specific to Catalina.
Could you also attach the CMakeError.log file?