diff options
Diffstat (limited to 'icu-Add-sw64-architecture-compat.patch')
-rw-r--r-- | icu-Add-sw64-architecture-compat.patch | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/icu-Add-sw64-architecture-compat.patch b/icu-Add-sw64-architecture-compat.patch new file mode 100644 index 0000000..d9f639b --- /dev/null +++ b/icu-Add-sw64-architecture-compat.patch @@ -0,0 +1,314 @@ +From a4fb55ae3de789cf645d4939ed8af9dbaad242ce Mon Sep 17 00:00:00 2001 +From: wuzx <wuzx1226@qq.com> +Date: Fri, 18 Nov 2022 02:53:10 +0800 +Subject: [PATCH] Add sw64 architecture + +Signed-off-by: wuzx <wuzx1226@qq.com> +--- + source/acinclude.m4 | 6 ++ + source/config.guess | 8 +++ + source/config.sub | 2 + + source/config/mh-sw_64-linux-cc | 87 +++++++++++++++++++++++++++ + source/config/mh-sw_64-linux-gcc | 85 ++++++++++++++++++++++++++ + source/configure | 8 ++- + source/configure.ac | 2 +- + source/i18n/double-conversion-utils.h | 2 +- + 8 files changed, 197 insertions(+), 3 deletions(-) + create mode 100644 source/config/mh-sw_64-linux-cc + create mode 100644 source/config/mh-sw_64-linux-gcc + +diff --git a/source/acinclude.m4 b/source/acinclude.m4 +index 507f41f..381a91f 100644 +--- a/source/acinclude.m4 ++++ b/source/acinclude.m4 +@@ -21,6 +21,12 @@ case "${host}" in + else + icu_cv_host_frag=mh-solaris + fi ;; ++sw_64*-*-linux-gnu) ++ if test "$GCC" = yes; then ++ icu_cv_host_frag=mh-sw_64-linux-gcc ++ else ++ icu_cv_host_frag=mh-sw_64-linux-cc ++ fi ;; + alpha*-*-linux-gnu) + if test "$GCC" = yes; then + icu_cv_host_frag=mh-alpha-linux-gcc +diff --git a/source/config.guess b/source/config.guess +index 31e01ef..1dfe5d5 100644 +--- a/source/config.guess ++++ b/source/config.guess +@@ -894,6 +894,14 @@ EOF + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; ++ sw_64:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ SW) UNAME_MACHINE=sw_64 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi ++ echo ${UNAME_MACHINE}-sunway-linux-${LIBC} ++ exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; +diff --git a/source/config.sub b/source/config.sub +index fb57947..07dc65e 100644 +--- a/source/config.sub ++++ b/source/config.sub +@@ -244,6 +244,7 @@ case $basic_machine in + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | sw_64 \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ +@@ -368,6 +369,7 @@ case $basic_machine in + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | sw_64-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +diff --git a/source/config/mh-sw_64-linux-cc b/source/config/mh-sw_64-linux-cc +new file mode 100644 +index 0000000..f27259a +--- /dev/null ++++ b/source/config/mh-sw_64-linux-cc +@@ -0,0 +1,87 @@ ++## -*-makefile-*- ++## Copyright (C) 2016 and later: Unicode, Inc. and others. ++## License & terms of use: http://www.unicode.org/copyright.html ++## Sw-64-Linux-specific setup ++## Copyright (c) 1999-2006, International Business Machines Corporation and ++## others. All Rights Reserved. ++ ++## Commands to generate dependency files ++#GEN_DEPS.c= $(CC) $(DEFS) $(CPPFLAGS) -MD -c -msg_quiet ++#GEN_DEPS.cc= $(CXX) $(DEFS) $(CPPFLAGS) -D__USE_STD_IOSTREAM -c -MD -msg_quiet ++ ++## Flags for position independent code ++SHAREDLIBCFLAGS = -fPIC ++SHAREDLIBCXXFLAGS = -fPIC ++SHAREDLIBCPPFLAGS = -DPIC ++ ++## Additional flags when building libraries and with threads ++THREADSCPPFLAGS = -D_REENTRANT ++LIBCPPFLAGS = ++ ++# The tests need complete IEEE floating point support ++CFLAGS += -ieee ++CXXFLAGS += -ieee ++ ++## Commands to compile ++COMPILE.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -c -signed -accept nogccinline ++COMPILE.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c -signed -D__USE_STD_IOSTREAM -accept nogcc_inline ++ ++ ++## Commands to link ++LINK.c= $(CC) -call_shared $(CFLAGS) $(LDFLAGS) ++LINK.cc= $(CXX) -call_shared $(CXXFLAGS) $(LDFLAGS) ++ ++## Compiler switch to embed a runtime search path ++LD_RPATH= ++LD_RPATH_PRE= -Wl,-rpath, ++ ++## Compiler switch to embed a library name ++LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET)) ++ ++## Shared object suffix ++SO = so ++## Non-shared intermediate object suffix ++STATIC_O = ao ++ ++## Compilation rules ++%.$(STATIC_O): $(srcdir)/%.c ++ $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< ++%.o: $(srcdir)/%.c ++ $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ++ ++%.$(STATIC_O): $(srcdir)/%.cpp ++ $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< ++%.o: $(srcdir)/%.cpp ++ $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< ++ ++ ++## Dependency rules ++#%.d: $(srcdir)/%.c ++# @echo "generating dependency information for $<" ++# @$(SHELL) -ec '$(GEN_DEPS.c) $< \ ++# | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ ++# [ -s $@ ] || rm -f $@' ++ ++#%.d: $(srcdir)/%.cpp ++# @echo "generating dependency information for $<" ++# @$(SHELL) -ec '$(GEN_DEPS.cc) $< \ ++# | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ ++# [ -s $@ ] || rm -f $@' ++# ++## Versioned libraries rules ++ ++%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) ++ $(RM) $@ && ln -s ${<F} $@ ++%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR) ++ $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@ ++ ++## Bind internal references ++ ++# LDflags that pkgdata will use ++BIR_LDFLAGS= -Wl,-Bsymbolic ++ ++# Dependencies [i.e. map files] for the final library ++BIR_DEPS= ++ ++## End Linux-specific setup ++ +diff --git a/source/config/mh-sw_64-linux-gcc b/source/config/mh-sw_64-linux-gcc +new file mode 100644 +index 0000000..a3531d2 +--- /dev/null ++++ b/source/config/mh-sw_64-linux-gcc +@@ -0,0 +1,85 @@ ++## -*-makefile-*- ++## Copyright (C) 2016 and later: Unicode, Inc. and others. ++## License & terms of use: http://www.unicode.org/copyright.html ++## Linux-specific setup ++## Copyright (c) 1999-2009, International Business Machines Corporation and ++## others. All Rights Reserved. ++ ++## Commands to generate dependency files ++GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS) ++GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) ++ ++## Flags for position independent code ++SHAREDLIBCFLAGS = -fPIC ++SHAREDLIBCXXFLAGS = -fPIC ++SHAREDLIBCPPFLAGS = -DPIC ++ ++## Additional flags when building libraries and with threads ++THREADSCPPFLAGS = -D_REENTRANT ++LIBCPPFLAGS = ++ ++# The tests need complete IEEE floating point support ++CFLAGS += -mieee ++CXXFLAGS += -mieee ++ ++## Compiler switch to embed a runtime search path ++LD_RPATH= ++LD_RPATH_PRE= -Wl,-rpath, ++ ++## Compiler switch to embed a library name ++LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET)) ++ ++ ++## Shared library options ++LD_SOOPTIONS= -Wl,-Bsymbolic ++ ++## Shared object suffix ++SO = so ++## Non-shared intermediate object suffix ++STATIC_O = ao ++ ++## Compilation rules ++%.$(STATIC_O): $(srcdir)/%.c ++ $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< ++%.o: $(srcdir)/%.c ++ $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ++ ++%.$(STATIC_O): $(srcdir)/%.cpp ++ $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< ++%.o: $(srcdir)/%.cpp ++ $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< ++ ++ ++## Dependency rules ++%.d: $(srcdir)/%.c ++ @echo "generating dependency information for $<" ++ @$(SHELL) -ec '$(GEN_DEPS.c) $< \ ++ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ ++ [ -s $@ ] || rm -f $@' ++ ++%.d: $(srcdir)/%.cpp ++ @echo "generating dependency information for $<" ++ @$(SHELL) -ec '$(GEN_DEPS.cc) $< \ ++ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \ ++ [ -s $@ ] || rm -f $@' ++ ++## Versioned libraries rules ++ ++%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) ++ $(RM) $@ && ln -s ${<F} $@ ++%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR) ++ $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@ ++ ++# The type of assembly to write for generating an object file ++GENCCODE_ASSEMBLY=-a gcc ++ ++## Bind internal references ++ ++# LDflags that pkgdata will use ++BIR_LDFLAGS= -Wl,-Bsymbolic ++ ++# Dependencies [i.e. map files] for the final library ++BIR_DEPS= ++ ++## End Linux-specific setup ++ +diff --git a/source/configure b/source/configure +index a2ff7e4..a190250 100755 +--- a/source/configure ++++ b/source/configure +@@ -5249,6 +5249,12 @@ case "${host}" in + else + icu_cv_host_frag=mh-solaris + fi ;; ++sw_64*-*-linux-gnu) ++ if test "$GCC" = yes; then ++ icu_cv_host_frag=mh-sw_64-linux-gcc ++ else ++ icu_cv_host_frag=mh-sw_64-linux-cc ++ fi ;; + alpha*-*-linux-gnu) + if test "$GCC" = yes; then + icu_cv_host_frag=mh-alpha-linux-gcc +@@ -6511,7 +6517,7 @@ if test "$CC" = ccc; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"C compiler set to CCC ${CC}\" " >&5 + $as_echo "\"C compiler set to CCC ${CC}\" " >&6; } + case "${host}" in +- alpha*-*-*) U_HAVE_INTTYPES_H=0; ++ alpha*-*-* | sw_64*-*-*) U_HAVE_INTTYPES_H=0; + CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INTTYPES_H=0" + esac + fi +diff --git a/source/configure.ac b/source/configure.ac +index 425fdc7..6acf133 100644 +--- a/source/configure.ac ++++ b/source/configure.ac +@@ -685,7 +685,7 @@ fi + if test "$CC" = ccc; then + AC_MSG_RESULT("C compiler set to CCC ${CC}" ) + case "${host}" in +- alpha*-*-*) U_HAVE_INTTYPES_H=0; ++ alpha*-*-* | sw_64*-*-*) U_HAVE_INTTYPES_H=0; + CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INTTYPES_H=0" + esac + fi +diff --git a/source/i18n/double-conversion-utils.h b/source/i18n/double-conversion-utils.h +index c937463..7dcdbf8 100644 +--- a/source/i18n/double-conversion-utils.h ++++ b/source/i18n/double-conversion-utils.h +@@ -122,7 +122,7 @@ int main(int argc, char** argv) { + defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ + defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ + defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ +- defined(__SH4__) || defined(__alpha__) || \ ++ defined(__SH4__) || defined(__alpha__) || defined(__sw_64__) || \ + defined(_MIPS_ARCH_MIPS32R2) || defined(__ARMEB__) ||\ + defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ + defined(__riscv) || defined(__e2k__) || \ +-- +2.33.0 + |