diff options
Diffstat (limited to 'config/external/icu4x')
-rw-r--r-- | config/external/icu4x/icu4x_data.S | 29 | ||||
-rw-r--r-- | config/external/icu4x/moz.build | 35 |
2 files changed, 64 insertions, 0 deletions
diff --git a/config/external/icu4x/icu4x_data.S b/config/external/icu4x/icu4x_data.S new file mode 100644 index 0000000000..95a647f9ef --- /dev/null +++ b/config/external/icu4x/icu4x_data.S @@ -0,0 +1,29 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#if defined(_WIN32) && defined(__i386__) +// Mark the object as SAFESEH-enabled. +.def @feat.00; +.scl 3; +.type 0; +.endef +.global @feat.00 +.set @feat.00, 1 +#endif + +.global ICU4X_DATA_SYMBOL +#if defined(__APPLE__) +.data +.const +#elif defined(__wasi__) +.section .rodata,"",@ +#else +.section .rodata +#endif +.balign 16 +ICU4X_DATA_SYMBOL: +.incbin ICU4X_DATA_FILE +#ifdef __wasi__ +.size ICU4X_DATA_SYMBOL, . - ICU4X_DATA_SYMBOL +#endif diff --git a/config/external/icu4x/moz.build b/config/external/icu4x/moz.build new file mode 100644 index 0000000000..63273b83ff --- /dev/null +++ b/config/external/icu4x/moz.build @@ -0,0 +1,35 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Build the ICU4X data directly into the binary file. This is an experiment that can +# be enabled by adding `ac_add_options --enable-icu4x` to your mozconfig. +# See `intl/ICU4X.md`. + +if CONFIG["MOZ_ICU4X"]: + DEFINES["MOZ_ICU4X"] = 1 + Library("icu4xdata") + LOCAL_INCLUDES += ["."] + + # The "mangled" symbol gets prefixed by a "_" in certain platforms. + symbol_prefix = "" + if (CONFIG["OS_ARCH"] == "WINNT" and CONFIG["CPU_ARCH"] == "x86") or CONFIG[ + "OS_ARCH" + ] == "Darwin": + symbol_prefix = "_" + + # To re-generate this file run: intl/update-icu4x.sh + DEFINES["ICU4X_DATA_FILE"] = '"icu4x.postcard"' + + # In C++ this data will be available via: + # + # extern uint8_t icu4x_static_locale_data; + # uint8_t firstByte = (&icu4x_static_locale_data)[0]; + DEFINES["ICU4X_DATA_SYMBOL"] = "%s%s" % (symbol_prefix, "icu4x_static_locale_data") + + # This is assembly which has instructions to include the binary locale data directly. + SOURCES += [ + "icu4x_data.S", + ] |