Skip to content

Commit

Permalink
Fix linking on FreeBSD (#138)
Browse files Browse the repository at this point in the history
In CMakeLists.txt, calling link_directories(${PROJECT_SOURCE_DIR}/lib)
for FreeBSD builds causes linking to fail with the error below.

ld: error: undefined symbol: __errno_location
>>> referenced by kmp_alloc.cpp
>>>               kmp_alloc.cpp.o:(kmpc_aligned_malloc) in archive /wrkdirs/usr/ports/biology/iqtree/work/iqtree2-2.2.2.7/lib/libomp.a
>>> referenced by kmp_i18n.cpp
>>>               kmp_i18n.cpp.o:(__kmp_i18n_do_catopen()) in archive /wrkdirs/usr/ports/biology/iqtree/work/iqtree2-2.2.2.7/lib/libomp.a
>>> referenced by kmp_runtime.cpp
>>>               kmp_runtime.cpp.o:(__kmp_allocate_team) in archive /wrkdirs/usr/ports/biology/iqtree/work/iqtree2-2.2.2.7/lib/libomp.a
>>> referenced 16 more times

ld: error: undefined symbol: stderr
>>> referenced by kmp_io.cpp
>>>               kmp_io.cpp.o:(__kmp_vprintf) in archive /wrkdirs/usr/ports/biology/iqtree/work/iqtree2-2.2.2.7/lib/libomp.a
>>> referenced by kmp_io.cpp
>>>               kmp_io.cpp.o:(__kmp_vprintf) in archive /wrkdirs/usr/ports/biology/iqtree/work/iqtree2-2.2.2.7/lib/libomp.a
>>> referenced by kmp_io.cpp
>>>               kmp_io.cpp.o:(__kmp_vprintf) in archive /wrkdirs/usr/ports/biology/iqtree/work/iqtree2-2.2.2.7/lib/libomp.a
>>> referenced 1 more times

ld: error: undefined symbol: pthread_getattr_np
>>> referenced by z_Linux_util.cpp
>>>               z_Linux_util.cpp.o:(__kmp_set_stack_info(int, kmp_info*)) in archive /wrkdirs/usr/ports/biology/iqtree/work/iqtree2-2.2.2.7/lib/libomp.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)

Co-authored-by: Thomas Wong <thomaskf@gmail.com>
  • Loading branch information
Jehops and thomaskf authored Apr 23, 2024
1 parent b2ce36c commit 3c618cb
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -419,14 +419,14 @@ if (NOT IQTREE_FLAGS MATCHES "single")
if(OSX_NATIVE_ARCHITECTURE STREQUAL "arm64")
link_directories(${PROJECT_SOURCE_DIR}/libmac_m1)
else()
link_directories(${PROJECT_SOURCE_DIR}/libmac)
endif()
elseif (UNIX)
if (__ARM_NEON)
link_directories(${PROJECT_SOURCE_DIR}/liblinux_arm)
else()
link_directories(${PROJECT_SOURCE_DIR}/lib)
endif()
link_directories(${PROJECT_SOURCE_DIR}/libmac)
endif()
elseif (UNIX AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
if (__ARM_NEON)
link_directories(${PROJECT_SOURCE_DIR}/liblinux_arm)
else()
link_directories(${PROJECT_SOURCE_DIR}/lib)
endif()
elseif (WIN32)
if (BINARY32)
link_directories(${PROJECT_SOURCE_DIR}/lib32)
Expand Down

0 comments on commit 3c618cb

Please sign in to comment.