You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Michael Smith (Jira)" <ji...@apache.org> on 2023/08/08 18:36:00 UTC

[jira] [Updated] (IMPALA-12346) ARM core job fails with link error due to Boost locale's ICU dependency

     [ https://issues.apache.org/jira/browse/IMPALA-12346?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Smith updated IMPALA-12346:
-----------------------------------
    Labels: arm  (was: )

> ARM core job fails with link error due to Boost locale's ICU dependency
> -----------------------------------------------------------------------
>
>                 Key: IMPALA-12346
>                 URL: https://issues.apache.org/jira/browse/IMPALA-12346
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Infrastructure
>    Affects Versions: Impala 4.3.0
>            Reporter: Joe McDonnell
>            Priority: Major
>              Labels: arm
>
> On ubuntu-20.04-from-scratch-ARM, the core job fails with the following issue linking impalad:
> {noformat}
> 15:37:21 ../../../toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/lib/libboost_locale.a(icu_backend.o):icu_backend.cpp:function boost::locale::impl_icu::create_localization_backend(): error: undefined reference to 'icu_66::Locale::Locale()'
> 15:37:21 ../../../toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/lib/libboost_locale.a(icu_backend.o):icu_backend.cpp:function boost::locale::impl_icu::icu_localization_backend::clone() const: error: undefined reference to 'icu_66::Locale::Locale()'
> 15:37:21 ../../../toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/lib/libboost_locale.a(icu_backend.o):icu_backend.cpp:function boost::locale::impl_icu::icu_localization_backend::install(std::locale const&, unsigned int, unsigned int): error: undefined reference to 'icu_66::Locale::createCanonical(char const*)'
> ...{noformat}
> Boost locale has an implementation that uses the ICU library and a non-ICU implementation that uses only the standard C++ libraries:
> "Boost.Locale creates the natural glue between the C++ locales framework, iostreams, and the powerful ICU library.
> Boost.Locale provides non-ICU based localization support as well. It is based on the operating system native API or on the standard C++ library support. Sacrificing some less important features, Boost.Locale becomes less powerful but lighter and easier to deploy."
> The native-toolchain inside Docker used for the standard toolchain uses the non-ICU version. The ARM job (not in Docker) is detecting ICU and building the ICU version.
> Option 1: Disable building the ICU implementation even if ICU is present. (This can be done by passing boost.locale.icu=off to boost's b2 script.)
> Option 2: Always use the ICU implementation and take an explicit dependency on ICU.
> Option 1 seems easier if we don't need the extra ICU functionality.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org