Improve the (cross-)build experience especially with LLVM (#353)

* Suppress clang warnings caused by boost headers

* Make binutils selectable via environment variables

Some build environments specify what tools to use via environment variables.

e.g. NM could be 'x86_64-unknown-linux-gnu-nm' when cross-compiling

* Use llvm-nm friendly non-short format value

LLVM's nm implementaion (llvm-nm) wants the entire string to match.
It doesn't allow just 'p' it wants 'posix'.

- https://github.com/llvm/llvm-project/blob/llvmorg-21.1.3/llvm/tools/llvm-nm/llvm-nm.cpp#L2435-L2448

The nm implementations from GNU binutils and FreeBSD parse the format
argument value only by looking at the first character.
They are accept both 'p' and 'posix'.

- https://github.com/bminor/binutils-gdb/blob/binutils-2_45/binutils/nm.c#L410-L438
- https://github.com/freebsd/freebsd-src/blob/release/14.3.0/contrib/elftoolchain/nm/nm.c#L506-L529
This commit is contained in:
tnias
2025-10-12 17:37:47 +02:00
committed by Konstantinos Margaritis
parent f472bfee05
commit 44dc317d9d
2 changed files with 9 additions and 8 deletions

View File

@@ -36,11 +36,9 @@ if(NETBSD)
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -DHAVE_BUILTIN_POPCOUNT")
endif()
if(MACOSX)
# Boost headers cause such complains on MacOS
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-deprecated-declarations -Wno-unused-parameter")
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-deprecated-declarations -Wno-unused-parameter")
endif()
# Boost headers cause such complains on MacOS or when building with LLVM toolchains
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-deprecated-declarations -Wno-unused-parameter")
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-deprecated-declarations -Wno-unused-parameter")
# these end up in the config file
CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAS_C_HIDDEN)