Index: source/data/Makefile.in
===================================================================
--- source/data/Makefile.in	(revision 259715)
+++ source/data/Makefile.in	(working copy)
@@ -240,7 +240,14 @@
 #  2010-dec Removed pnames.icu.
 # These are now hardcoded in ICU4C and only loaded in ICU4J.
 #
-DAT_FILES_SHORT=unames.icu cnvalias.icu coll/ucadata.icu coll/invuca.icu nfc.nrm nfkc.nrm nfkc_cf.nrm uts46.nrm
+# CHROME: unames.icu is excluded from the data file.
+# coll/invuca.icu is also excluded. When building a ICU data file to check in,
+# we need to copy data/in/coll/invuca.icu to the build location (expected
+# by genrb : out/build/icudt46l/coll) by hand because genrb requires its
+# presence when compiling coll/root.txt. We have to put it back if Webkit
+# begins to use it.
+# See https://bugs.webkit.org/show_bug.cgi?id=30437#c32 about invuca.icu.
+DAT_FILES_SHORT=cnvalias.icu coll/ucadata.icu nfc.nrm nfkc.nrm nfkc_cf.nrm uts46.nrm
 DAT_FILES=$(DAT_FILES_SHORT:%=$(BUILDDIR)/%)
 
 ## BRK files
@@ -271,7 +278,8 @@
 -include $(UCMSRCDIR)/ucmfiles.mk
 -include $(UCMSRCDIR)/ucmebcdic.mk
 -include $(UCMSRCDIR)/ucmlocal.mk
-ALL_UCM_SOURCE=ibm-37_P100-1995.ucm ibm-1047_P100-1995.ucm $(UCM_SOURCE_CORE) $(UCM_SOURCE_FILES) $(UCM_SOURCE_EBCDIC) $(UCM_SOURCE_LOCAL)
+# CHROME: we don't need any EBCDIC converters.
+ALL_UCM_SOURCE=$(UCM_SOURCE_CORE) $(UCM_SOURCE_FILES) $(UCM_SOURCE_EBCDIC) $(UCM_SOURCE_LOCAL)
 UCM_FILES = $(ALL_UCM_SOURCE:%=$(SRCDATADIR)/%)
 CNV_FILES = $(ALL_UCM_SOURCE:%.ucm=$(BUILDDIR)/%.cnv)
 CNV_FILES_SHORT = $(ALL_UCM_SOURCE:%.ucm=%.cnv)
@@ -338,7 +346,8 @@
 TRANSLIT_SRC_FILES = $(TRANSLIT_SRC:%=$(TRANSLITSRCDIR)/%)
 INSTALLED_TRANSLIT_FILES = $(TRANSLIT_SOURCE:%.txt=%)  $(TRANSLIT_SOURCE_LOCAL:%.txt=%)
 endif
-GENRBOPTS=-k
+# CHROME : To save space, use '-R' option.
+GENRBOPTS=-k -R
 
 ## MISC files
 -include $(MISCSRCDIR)/miscfiles.mk
Index: source/tools/toolutil/pkg_genc.c
===================================================================
--- source/tools/toolutil/pkg_genc.c	(revision 259715)
+++ source/tools/toolutil/pkg_genc.c	(working copy)
@@ -119,7 +119,11 @@
         ".globl %s\n"
         "\t.section .note.GNU-stack,\"\",%%progbits\n"
         "\t.section .rodata\n"
-        "\t.balign 16\n" 
+        "\t.balign 16\n"
+        /* The 3 lines below are added for Chrome. */
+        "#ifdef U_HIDE_DATA_SYMBOL\n"
+        "\t.hidden %s\n"
+        "#endif\n"
         "\t.type %s,%%object\n"
         "%s:\n\n",
 
@@ -129,6 +133,10 @@
         /*"\t.section __TEXT,__text,regular,pure_instructions\n"
         "\t.section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32\n"*/
         ".globl _%s\n"
+        /* The 3 lines below are added for Chrome. */
+        "#ifdef U_HIDE_DATA_SYMBOL\n"
+        "\t.private_extern _%s\n"
+        "#endif\n"
         "\t.data\n"
         "\t.const\n"
         "\t.balign 16\n"
@@ -264,7 +272,7 @@
         exit(U_FILE_ACCESS_ERROR);
     }
 
-    getOutFilename(filename, destdir, bufferStr, entry, ".s", optFilename);
+    getOutFilename(filename, destdir, bufferStr, entry, ".S", optFilename);
     out=T_FileStream_open(bufferStr, "w");
     if(out==NULL) {
         fprintf(stderr, "genccode: unable to open output file %s\n", bufferStr);
