]> granicus.if.org Git - icu/commitdiff
ICU-10572 Make ICU data symbol private on Mac and Linux
authorJungshik Shin <jshin@chromium.org>
Tue, 3 Mar 2015 17:47:29 +0000 (17:47 +0000)
committerJungshik Shin <jshin@chromium.org>
Tue, 3 Mar 2015 17:47:29 +0000 (17:47 +0000)
X-SVN-Rev: 37109

icu4c/source/tools/toolutil/pkg_genc.c

index e21140332ad7f6903523e211bdea5760e7ddfc06..3096db87f873d3c3586e4b35dc5cb2c437170e90 100644 (file)
@@ -1,5 +1,5 @@
 /******************************************************************************
- *   Copyright (C) 2009-2014, International Business Machines
+ *   Copyright (C) 2009-2015, International Business Machines
  *   Corporation and others.  All Rights Reserved.
  *******************************************************************************
  */
@@ -119,7 +119,10 @@ static const struct AssemblyType {
         ".globl %s\n"
         "\t.section .note.GNU-stack,\"\",%%progbits\n"
         "\t.section .rodata\n"
-        "\t.balign 16\n" 
+        "\t.balign 16\n"
+        "#ifdef U_HIDE_DATA_SYMBOL\n"
+        "\t.hidden %s\n"
+        "#endif\n"
         "\t.type %s,%%object\n"
         "%s:\n\n",
 
@@ -129,6 +132,9 @@ static const struct AssemblyType {
         /*"\t.section __TEXT,__text,regular,pure_instructions\n"
         "\t.section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32\n"*/
         ".globl _%s\n"
+        "#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 +270,7 @@ writeAssemblyCode(const char *filename, const char *destdir, const char *optEntr
         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);