0003-detect-compiler-symbol-prefix.patch 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. detect and add compiler symbol prefix to the assembly code
  2. Some compiler, such as Blackfin GNU compiler, prefix a charater to any
  3. C symbol in generated assembly code. If any assembly symbol is invoked
  4. from C code, it needs to be prefixed as well.
  5. Note: since autoreconf doesn't work with this package because automake
  6. isn't support
  7. [Ryan: add information about why patching configure is ok]
  8. [Gustavo: update for ICU4C 54.1]
  9. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
  10. Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com>
  11. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
  12. diff -Nura icu.orig/source/configure icu/source/configure
  13. --- icu.orig/source/configure 2014-12-18 15:49:43.038628644 -0300
  14. +++ icu/source/configure 2014-12-18 15:56:05.793832186 -0300
  15. @@ -637,6 +637,7 @@
  16. ICUDATA_CHAR
  17. SAMPLES_TRUE
  18. TESTS_TRUE
  19. +SYMBOL_PREFIX
  20. ICULIBSUFFIXCNAME
  21. U_HAVE_LIB_SUFFIX
  22. ICULIBSUFFIX
  23. @@ -7414,6 +7415,17 @@
  24. { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_UTF16_STRING_RESULT" >&5
  25. $as_echo "$CHECK_UTF16_STRING_RESULT" >&6; }
  26. +# Check compiler generated symbol profix
  27. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for symbol prefix" >&5
  28. +$as_echo "checking for symbol prefix... " >&6; }
  29. + SYMBOL_PREFIX=`echo "PREFIX=__USER_LABEL_PREFIX__" \
  30. + | ${CPP-${CC-gcc} -E} - 2>&1 \
  31. + | ${EGREP-grep} "^PREFIX=" \
  32. + | sed -e "s:^PREFIX=::" -e "s:__USER_LABEL_PREFIX__::"`
  33. +
  34. + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SYMBOL_PREFIX" >&5
  35. +$as_echo "$SYMBOL_PREFIX" >&6; }
  36. +
  37. # Enable/disable extras
  38. # Check whether --enable-extras was given.
  39. if test "${enable_extras+set}" = set; then :
  40. diff -Nura icu.orig/source/data/Makefile.in icu/source/data/Makefile.in
  41. --- icu.orig/source/data/Makefile.in 2014-12-18 15:49:42.908624160 -0300
  42. +++ icu/source/data/Makefile.in 2014-12-18 16:01:32.751110913 -0300
  43. @@ -182,11 +182,11 @@
  44. packagedata: icupkg.inc $(PKGDATA_LIST) build-local
  45. ifneq ($(ENABLE_STATIC),)
  46. ifeq ($(PKGDATA_MODE),dll)
  47. - $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
  48. + $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
  49. endif
  50. endif
  51. ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
  52. - $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
  53. + $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
  54. else
  55. $(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(OUTDIR)
  56. endif
  57. @@ -209,11 +209,11 @@
  58. endif
  59. ifneq ($(ENABLE_STATIC),)
  60. ifeq ($(PKGDATA_MODE),dll)
  61. - $(PKGDATA_INVOKE) $(PKGDATA) -m static -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_LIBDIR)
  62. + $(PKGDATA_INVOKE) $(PKGDATA) -m static -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_LIBDIR)
  63. endif
  64. endif
  65. ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
  66. - $(PKGDATA_INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_DIR)
  67. + $(PKGDATA_INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_DIR)
  68. else
  69. $(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(DESTDIR)$(ICUPKGDATA_DIR)
  70. endif
  71. @@ -224,7 +224,7 @@
  72. #### 390 support
  73. install390: package390
  74. $(MKINSTALLDIRS) $(TMPDATADIR) $(DESTDIR)$(libdir)
  75. - $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e $(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING) -I $(DESTDIR)$(ICUPKGDATA_DIR)
  76. + $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING) -I $(DESTDIR)$(ICUPKGDATA_DIR)
  77. ifeq ($(PKGDATA_MODE),dll)
  78. $(INSTALL-L) $(ICUPKGDATA_OUTDIR)/$(FINAL_IMPORT_LIB) $(DESTDIR)$(ICUPKGDATA_DIR)/$(FINAL_IMPORT_LIB)
  79. endif
  80. @@ -232,7 +232,7 @@
  81. #### $(LIB_ICUDATA_NAME)$(STUB_SUFFIX) is the subset data for batch mode
  82. package390: $(OUTTMPDIR)/icudata390.lst $(PKGDATA_LIST) ./icupkg.inc packagedata
  83. ln -s $(ICUDATA_NAME) $(OUTDIR)/build/$(ICUDATA_NAME)$(STUB_SUFFIX)
  84. - $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e $(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING)
  85. + $(INVOKE) $(PKGDATA) -s $(BUILDDIR)$(STUB_SUFFIX) -T $(OUTTMPDIR_390STUB) -p $(ICUDATA_NAME)$(STUB_SUFFIX) $(PKGDATA_LIBNAME)$(STUB_SUFFIX) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) $(OS390LIST) -m dll $(PKGDATA_VERSIONING)
  86. cp $(ICUPKGDATA_OUTDIR)/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO) $(top_builddir)/stubdata/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO)
  87. diff -Nura icu.orig/source/extra/uconv/Makefile.in icu/source/extra/uconv/Makefile.in
  88. --- icu.orig/source/extra/uconv/Makefile.in 2014-12-18 15:49:42.986626850 -0300
  89. +++ icu/source/extra/uconv/Makefile.in 2014-12-18 15:57:40.558101179 -0300
  90. @@ -58,7 +58,8 @@
  91. ## Static mode
  92. ifeq ($(UCONVMSG_MODE),static)
  93. DEFS += -DUCONVMSG_LINK=$(MSGNAME)
  94. -UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)$(MSGNAME).$(A)
  95. +UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)@SYMBOL_PREFIX@$(MSGNAME).$(A)
  96. +
  97. LIBS += $(UCONVMSG_LIB)
  98. PKGMODE=static
  99. INSTALLTO=$(libdir)
  100. @@ -152,7 +153,7 @@
  101. endif
  102. $(UCONVMSG_LIB): $(RESFILES) $(RESDIR)/$(RESDIR).lst pkgdata.inc
  103. - $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p $(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
  104. + $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p @SYMBOL_PREFIX@$(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
  105. $(RESDIR)/$(RESDIR).lst: Makefile $(srcdir)/resfiles.mk
  106. @-$(RMV) $@