Comments (5)
From the given information I can't tell. I'd need the full build output. I'd assume it found neither ICU nor Iconv which would skip the build with a message:
Lines 257 to 258 in 0552ffc
Or some of the other requirement isn't met
from locale.
Including the full build output, one thing I noticed in the start now is: Unicode/ICU support for Boost.Regex?... not found.
I can't find the mentioned ECHO line in the build though.
EDIT This is with ICU 70.1.2 and Iconv 1.17.3
from locale.
Yes it looks like it found iconv and ICU:
- iconv (separate) : yes [3]
- icu : yes [3]
However it seems it didn't detect that the std library supports <type_traits>
and even support for static_assert:
- cxx11_static_assert : no [2]
- cxx11_hdr_type_traits : no [2]
Checking the Boost.Config sources this is influenced by #if (BOOST_LIBSTDCXX_VERSION < 50100) || !defined(BOOST_LIBSTDCXX11)
which has __cplusplus >= 201103
for the latter
Both should be correctly set so I can't tell what in your setup causes the issue.
You can try invoking something like ./b2 -d+2 -a libs/config/checks//cxx11_hdr_type_traits
in that boost tree to to show the command executed for that check. Maybe with additional b2-args if you pass any in your setup.
Edit: Actually the commands invoked and potential error messages should be in bin.v2/config.log
Search for cxx11_hdr_type_traits
and cxx11_static_assert
Note that the issue isn't specifically with Boost.Locale as indicated by many "C++03 support is deprecated..." messages
from locale.
The open PR to update our boost is linked above (it contains the recipe for the build and the patches I've added).
Some of the patches have been around for a while and have been updated to the newer release.
A major part I reworked (as that part changed in the source) to get the build started was here:
--- a/tools/build/src/engine/build.sh
+++ b/tools/build/src/engine/build.sh
@@ -325,6 +325,23 @@ case "${B2_TOOLSET}" in
CXX_VERSION_OPT=${CXX_VERSION_OPT:---version}
B2_CXXFLAGS_RELEASE="-O2 -s"
B2_CXXFLAGS_DEBUG="-O0 -g"
+
+ CXX=${CXX:=g++}
+ # Check whether it's MinGW GCC, which has Windows headers and none of POSIX ones.
+ machine=$(${CXX} -dumpmachine 2>/dev/null)
+ if [ $? -ne 0 ]; then
+ echo "B2_TOOLSET is gcc, but the 'gcc' command cannot be executed."
+ echo "Make sure 'gcc' is in PATH, or use a different toolset."
+ exit 1
+ fi
+ case $machine in
+ *haiku*)
+ B2_CXX="${CXX} -x c++ -std=c++17"
+ B2_CXXFLAGS_RELEASE="-O2 -s -D_DEFAULT_SOURCE -lbsd"
+ B2_CXXFLAGS_DEBUG="-O0 -g"
+ ;;
+ esac
;;
intel-*)
--
Seeing you mention gcc being a part of it (already did a new port for ICU73.2 to check also), it could very well be that I made a mistake here.
boost1.70 still builds OK with gcc13, so somehow some detection is off here on our side.
Edit: Actually the commands invoked and potential error messages should be in
bin.v2/config.log
Search forcxx11_hdr_type_traits
andcxx11_static_assert
Looing in there I don't see anything special:
...found 1 target...
...found 1 target...
...updating 1 target...
config-cache.write bin.v2/project-cache.jam
...updated 1 target...
In that directory there is project-cache.jam wich contains:
set "cxx11_static_assert-<deduced-address-model>64-<deduced-architecture>x86-<inlining>on-<threading>multi-<toolset-gcc:version>13-<toolset>gcc-<variant>release-<visibility>hidden" : "false" ;
...
set "cxx11_hdr_type_traits-<deduced-address-model>64-<deduced-architecture>x86-<inlining>on-<threading>multi-<toolset-gcc:version>13-<toolset>gcc-<variant>release-<visibility>hidden" : "false" ;
EDIT: after running that command you supplied earlier I'm getting a better log, attatching it here
EDIT2: after hunting down found these functions are disabled in boost/config/platform/haiku.hpp? These havent changed over the version (looking into the files date it originates from 2014?)
https://github.com/boostorg/config/blob/33b12777cff1c818e31ec33333cc821e9f506fd6/include/boost/config/platform/haiku.hpp#L19
EDIT3: uncommenting both lines for these functions in haiku.hpp solves the problem and even gets me a new library boost_nowide.
from locale.
EDIT2: after hunting down found these functions are disabled in boost/config/platform/haiku.hpp? These havent changed over the version (looking into the files date it originates from 2014?) https://github.com/boostorg/config/blob/33b12777cff1c818e31ec33333cc821e9f506fd6/include/boost/config/platform/haiku.hpp#L19
EDIT3: uncommenting both lines for these functions in haiku.hpp solves the problem and even gets me a new library boost_nowide.
Yes it seems those defect macros are wrong/outdated. Boost.Locale requires C++11 since Boost 1.81 (see the changelog) as well as some other libraries which is likely why you see this (only) now.
I opened an issue for this in Boost.Config: boostorg/config#482
If you happen to know why those macros were defined (i.e. until when they were correct) please comment in that issue.
Anyway, glad you were able to find and resolved that, thanks a lot!
from locale.
Related Issues (20)
- Add test for wconv_to_utf
- [Q] Meaning of utf8_from_wide/utf8_native_with_wide HOT 1
- Std backend falls back to system locale instead of C locale on Windows HOT 8
- Stream read/write with generated locales defaults to classic format/parse HOT 4
- test_formatting failure, ICU >= 72.1
- error C2220: warning treated as error, warning C4702: unreachable code HOT 1
- icu only build on windows fails
- Boost-locale compiled with vcpkg won't pass program linking HOT 4
- Bad behaviour with multiple curly braces in format string HOT 2
- Crash on macOS 14.0 HOT 8
- locale::conv::from_utf freezing on macOS14 and iOS17 because iconv library HOT 12
- boost 1.83.0 on macOS Sonoma doesn't build boost_locale.a HOT 6
- libboost_locale 1.82.0 will not build on MacOS Sonoma Intel HOT 11
- Use of boost::locale::collator crashes when not using ICU/WinAPI HOT 1
- date_time created with decimals HOT 8
- Fail to build wich cxxstd=20 on Clang HOT 6
- Boost.Locale 1.84.0: boost::locale::to_title() is no longer threadsafe under Windows with ICU HOT 2
- How to Verify boost::locale::generator? HOT 1
- Test libraries and executables should be declared EXCLUDE_FROM_ALL HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from locale.