Introduce build target for bundled data on Windows
On non-Windows platforms, we generate assembly to bundle ICU data.
On Windows however, we previously use a checked in icudt.dll, which
is no longer maintained.
We could use the same assembly approach if we wrap in inline assembly.
Bug: chromium:938223
Change-Id: Ieced205ae2e082a5290bd45499216c6c86751ca1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/deps/icu/+/1503032
Reviewed-by: Jungshik Shin <jshin@chromium.org>
diff --git a/scripts/make_data_assembly.py b/scripts/make_data_assembly.py
index 250c132..eb2bf72 100755
--- a/scripts/make_data_assembly.py
+++ b/scripts/make_data_assembly.py
@@ -12,7 +12,10 @@
parser.add_option("--mac",
help="generate assembly file for Mac/iOS (default: False)",
action="store_true", default=False)
-parser.set_usage("""make_data_assembly icu_data [assembly_file] [--mac]
+parser.add_option("--win",
+ help="generate assembly file for Windows (default: False)",
+ action="store_true", default=False)
+parser.set_usage("""make_data_assembly icu_data [assembly_file] [--mac] [--win]
icu_data: ICU data file to generate assembly from.
assembly_file: Output file converted from icu_data file.""")
(options, args) = parser.parse_args()
@@ -56,6 +59,11 @@
"\t.const\n"
"\t.align 4\n"
"_icudt%s_dat:\n" %tuple([version_number] * 3))
+elif options.win:
+ output.write(".globl icudt%s_dat\n"
+ "\t.section .rdata\n"
+ "\t.balign 16\n"
+ "icudt%s_dat:\n" % tuple([version_number] * 2))
else:
output.write(".globl icudt%s_dat\n"
"\t.section .note.GNU-stack,\"\",%%progbits\n"