170d526e91
Some compilers, such as the Blackfin GNU compiler, prefix a character to any C symbol in generated assembly code. If any assembly symbol is invoked from C code, it needs to be prefixed as well. Note: since autoreconf doesn't work with this package because automake isn't used. Fixes: http://autobuild.buildroot.net/results/c40a22814b405de2c5c75139cfc393c863ed4b81/ [Ryan: add information about why patching configure is ok] [Ryan: add renaming of patches to be consistent with standard] Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
113 lines
6.4 KiB
Diff
113 lines
6.4 KiB
Diff
detect and add compiler symbol prefix to the assembly code
|
|
|
|
Some compiler, such as Blackfin GNU compiler, prefix a charater to any
|
|
C symbol in generated assembly code. If any assembly symbol is invoked
|
|
from C code, it needs to be prefixed as well.
|
|
|
|
Note: since autoreconf doesn't work with this package because automake
|
|
isn't support
|
|
|
|
[Ryan: add information about why patching configure is ok]
|
|
|
|
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
|
|
Signed-off-by: Ryan Barnett <rjbarnet@rockwellcollins.com>
|
|
|
|
--- icu-51.2/source/configure 2014-01-06 17:13:20.907249812 +0800
|
|
+++ icu-51.2.bak/source/configure 2014-01-06 17:12:57.335248659 +0800
|
|
@@ -612,6 +612,7 @@
|
|
ICUDATA_CHAR
|
|
SAMPLES_TRUE
|
|
TESTS_TRUE
|
|
+SYMBOL_PREFIX
|
|
ICULIBSUFFIXCNAME
|
|
U_HAVE_LIB_SUFFIX
|
|
ICULIBSUFFIX
|
|
@@ -7226,7 +7227,16 @@
|
|
U_HAVE_LIB_SUFFIX=0
|
|
fi
|
|
|
|
+# Check compiler generated symbol profix
|
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for symbol prefix" >&5
|
|
+$as_echo "checking for symbol prefix... " >&6; }
|
|
+ SYMBOL_PREFIX=`echo "PREFIX=__USER_LABEL_PREFIX__" \
|
|
+ | ${CPP-${CC-gcc} -E} - 2>&1 \
|
|
+ | ${EGREP-grep} "^PREFIX=" \
|
|
+ | sed -e "s:^PREFIX=::" -e "s:__USER_LABEL_PREFIX__::"`
|
|
|
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SYMBOL_PREFIX" >&5
|
|
+$as_echo "$SYMBOL_PREFIX" >&6; }
|
|
|
|
# Enable/disable tests
|
|
# Check whether --enable-tests was given.
|
|
--- icu-51.2/source/extra/uconv/Makefile.in 2014-01-06 17:47:13.991347946 +0800
|
|
+++ icu-51.2.bak/source/extra/uconv/Makefile.in 2014-01-06 17:48:01.571355282 +0800
|
|
@@ -57,7 +57,7 @@
|
|
## Static mode
|
|
ifeq ($(UCONVMSG_MODE),static)
|
|
DEFS += -DUCONVMSG_LINK=$(MSGNAME)
|
|
-UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)$(MSGNAME).$(A)
|
|
+UCONVMSG_LIB = $(RESDIR)/$(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)@SYMBOL_PREFIX@$(MSGNAME).$(A)
|
|
LIBS += $(UCONVMSG_LIB)
|
|
PKGMODE=static
|
|
INSTALLTO=$(libdir)
|
|
@@ -151,7 +151,7 @@
|
|
endif
|
|
|
|
$(UCONVMSG_LIB): $(RESFILES) $(RESDIR)/$(RESDIR).lst pkgdata.inc
|
|
- $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p $(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
|
|
+ $(INVOKE) $(PKGDATA_INVOKE_OPTS) $(TOOLBINDIR)/pkgdata -p @SYMBOL_PREFIX@$(MSGNAME) $(PKGDATA_OPTS) -m $(PKGMODE) -s $(RESDIR) -d $(RESDIR) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
|
|
|
|
$(RESDIR)/$(RESDIR).lst: Makefile $(srcdir)/resfiles.mk
|
|
@-$(RMV) $@
|
|
--- icu-51.2/source/data/Makefile.in 2014-01-06 19:00:28.879570005 +0800
|
|
+++ icu-51.2.bak/source/data/Makefile.in 2014-01-06 19:00:07.891570170 +0800
|
|
@@ -175,13 +175,13 @@
|
|
packagedata: icupkg.inc $(PKGDATA_LIST) build-local
|
|
ifneq ($(ENABLE_STATIC),)
|
|
ifeq ($(PKGDATA_MODE),dll)
|
|
- $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
|
|
+ $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
|
|
endif
|
|
endif
|
|
ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
|
|
- $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
|
|
+ $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
|
|
ifeq ($(OS390BATCH),1)
|
|
- $(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(OS390_PDS_NAME) $(PKGDATA_LIST)
|
|
+ $(PKGDATA_INVOKE) $(PKGDATA) -e @SYMBOL_PREFIX@$(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(OS390_PDS_NAME) $(PKGDATA_LIST)
|
|
endif
|
|
else
|
|
$(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(OUTDIR)
|
|
@@ -203,11 +203,11 @@
|
|
endif
|
|
ifneq ($(ENABLE_STATIC),)
|
|
ifeq ($(PKGDATA_MODE),dll)
|
|
- $(PKGDATA_INVOKE) $(PKGDATA) -m static -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -s $(BUILDDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) $(PKGDATA_LIST) -I $(ICUPKGDATA_INSTALL_LIBDIR)
|
|
+ $(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)
|
|
endif
|
|
endif
|
|
ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
|
|
- $(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)
|
|
+ $(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)
|
|
else
|
|
$(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(DESTDIR)$(ICUPKGDATA_DIR)
|
|
endif
|
|
@@ -218,7 +218,7 @@
|
|
#### 390 support
|
|
install390: package390
|
|
$(MKINSTALLDIRS) $(TMPDATADIR) $(DESTDIR)$(libdir)
|
|
- $(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)
|
|
+ $(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)
|
|
ifeq ($(PKGDATA_MODE),dll)
|
|
$(INSTALL-L) $(ICUPKGDATA_OUTDIR)/$(FINAL_IMPORT_LIB) $(DESTDIR)$(ICUPKGDATA_DIR)/$(FINAL_IMPORT_LIB)
|
|
endif
|
|
@@ -226,7 +226,7 @@
|
|
#### $(LIB_ICUDATA_NAME)$(STUB_SUFFIX) is the subset data for batch mode
|
|
package390: $(OUTTMPDIR)/icudata390.lst $(PKGDATA_LIST) ./icupkg.inc packagedata
|
|
ln -s $(ICUDATA_NAME) $(OUTDIR)/build/$(ICUDATA_NAME)$(STUB_SUFFIX)
|
|
- $(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)
|
|
+ $(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)
|
|
cp $(ICUPKGDATA_OUTDIR)/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO) $(top_builddir)/stubdata/$(LIB_ICUDATA_NAME)$(STUB_SUFFIX).$(SO)
|
|
|
|
|