On 2013/04/20 19:45, Alan Corey wrote:
I forgot to mention it, but rtl_sdr (the simplest one) also doesn't work. I was looking at trying to adapt them to use the Gnu pth threads.
I think Pth won't help things on OpenBSD versions which already use kernel threads (5.2+), and unlikely to have helped earlier versions with userland threads either, the problem with userland thread implementations is how file descriptor blocking is handled.
I was trying to figure out whether pth was abandoned or just mature enough that it doesn't need any more updates. Looks like it's just mature. I was suspicious that it was somebody's thesis project.
It's not all that much needed now that most unix-like OS have posix threads support..
Your patch/diff for the cmake stuff works fine under OpenBSD, but not under Linux:
bleh, silly mistake ;)
OK - just setup an fc18 box to test it; here's a fixed version.
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4b91a4b..4cc77fc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -101,12 +101,17 @@ target_link_libraries(rtl_adsb rtlsdr_shared if(UNIX) target_link_libraries(rtl_fm m) target_link_libraries(rtl_adsb m) -if(APPLE) - target_link_libraries(rtl_test m) -else() - target_link_libraries(rtl_test m rt) -endif() -endif() + +include(CheckFunctionExists) +check_function_exists(clock_gettime LIBRT_LIBC_HAS_CLOCK_GETTIME) +if(LIBRT_LIBC_HAS_CLOCK_GETTIME) + set(LIBRT_LIBRARIES) +else(LIBRT_LIBC_HAS_CLOCK_GETTIME) + find_library(LIBRT_LIBRARIES NAMES rt) +endif(LIBRT_LIBC_HAS_CLOCK_GETTIME) + +target_link_libraries(rtl_test m ${LIBRT_LIBRARIES}) +endif(UNIX)
if(WIN32) target_link_libraries(rtl_sdr libgetopt_static)