Closed pisajew closed 9 months ago
Noticed the same issue today on CentOS 6.
Worked around by patching file "libs/locale/build/Jamfile.v2", changing line
exe has_iconv : $(TOP)/build/has_iconv.cpp ;
to
obj has_iconv : $(TOP)/build/has_iconv.cpp ;
Noticed the same issue today on CentOS 6.
Worked around by patching file "libs/locale/build/Jamfile.v2", changing line
That is likely a different issue then as in the initial report iconv is found: - iconv (separate) : yes [2]
With your workaround you basically skip testing if it requires linking against libiconv. I Suspect for you both iconv (separate)
and iconv (libc)
are "no"? You might need to set ICONV_PATH
as documented.
@pisajew Looks like the compiler you are using is lacking C++11 support. See e.g. cxx11_noexcept : no
. Check the config.log
as this looks odd as appearently Clang 15 is used which should default to a higher standard.
@Flamefire
I checked, the linking is OK: if I build it manually with gcc has_iconv.cpp -o has_iconv.cpp.exe
, it gets the symbol iconv_open
from /lib64/libc.so.6
. I wanted to debug what happens inside the failing command configure.builds has_iconv : $(properties) : "iconv (libc)"
, but I couldn't figure out how can I do that. (Can you advice how to do that?)
I can submit a separate issue for this if preferred.
Strange indeed. If I checkout master boost_locale builds correctly. It is just for version tag 1.83.0 where it's not being built (sad as I need that one compiled). For version 1.83.0 here is the relevant output from config.log:
clang-darwin.compile.c++ ../build/boost/bin.v2/libs/config/checks/clang-darwin-15/release/link-static/threading-multi/visibility-hidden/cxx11_noexcept.o
"clang++" -fvisibility-inlines-hidden -O3 -Wall -fvisibility=hidden -Wno-inline --target=arm64-apple-darwin -DBOOST_ALL_NO_LIB=1 -DNDEBUG -DTEST_BOOST_NO_CXX11_NOEXCEPT -I"." -c -o "../build/boost/bin.v2/libs/config/checks/clang-darwin-15/release/link-static/threading-multi/visibility-hidden/cxx11_noexcept.o" "libs/config/checks/test_case.cpp"
libs/config/checks/test_case.cpp:901:7: error: "Defect macro BOOST_NO_CXX11_NOEXCEPT is defined."
# error "Defect macro BOOST_NO_CXX11_NOEXCEPT is defined."
^
1 error generated.
...failed updating 1 target...
but if I rerun the command manually adding correct standard option, it works:
% "clang++" -fvisibility-inlines-hidden -O3 -Wall -fvisibility=hidden -Wno-inline --target=arm64-apple-darwin -DBOOST_ALL_NO_LIB=1 -DNDEBUG -DTEST_BOOST_NO_CXX11_NOEXCEPT -I"." -c -o "../build/boost/bin.v2/libs/config/checks/clang-darwin-15/release/link-static/threading-multi/visibility-hidden/cxx11_noexcept.o" "libs/config/checks/test_case.cpp"
libs/config/checks/test_case.cpp:901:7: error: "Defect macro BOOST_NO_CXX11_NOEXCEPT is defined."
# error "Defect macro BOOST_NO_CXX11_NOEXCEPT is defined."
^
1 error generated.
% "clang++" -std=c++11 -fvisibility-inlines-hidden -O3 -Wall -fvisibility=hidden -Wno-inline --target=arm64-apple-darwin -DBOOST_ALL_NO_LIB=1 -DNDEBUG -DTEST_BOOST_NO_CXX11_NOEXCEPT -I"." -c -o "../build/boost/bin.v2/libs/config/checks/clang-darwin-15/release/link-static/threading-multi/visibility-hidden/cxx11_noexcept.o" "libs/config/checks/test_case.cpp"
%
I've ended up manually specifying -std=c++11
for cxxflags in project-config.jam, which does the job for me. As the problem doesn't exist on master I think this workaround is good enough and I'm closing this issue now.
Ok so I guess that Clang is older and/or has C++98 as the default standard.
Note that you can pass cxxstd=11
to b2
instead
I'm building on a silicon Mac and cross-compiling to x86_64 (however tried with arm target, and the result is the same). Output of b2 command:
but there is no libboost_locale.a in staging.