xref: /AOO42X/main/icu/icu4c-4_2_1-src.patch (revision 92209e56e55aa1ca39fb627c8f54a90614411820) !
13d04c30dSArrigo Marchioridiff -ru misc/icu/source/common/putil.c misc/build/icu/source/common/putil.c
23d04c30dSArrigo Marchiori--- misc/icu/source/common/putil.c  2009-07-01 20:50:38.000000000 +0200
33d04c30dSArrigo Marchiori+++ misc/build/icu/source/common/putil.c    2024-06-14 21:17:04.184218726 +0200
43d04c30dSArrigo Marchiori@@ -52,7 +52,7 @@
53d04c30dSArrigo Marchiori Poorly upgraded Solaris machines can't have this defined.
63d04c30dSArrigo Marchiori Cleanly installed Solaris can use this #define.
73d04c30dSArrigo Marchiori */
83d04c30dSArrigo Marchiori-#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ >= 199901L)
93d04c30dSArrigo Marchiori+#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
103d04c30dSArrigo Marchiori #define _XOPEN_SOURCE_EXTENDED 1
113d04c30dSArrigo Marchiori #endif
123d04c30dSArrigo Marchiori
133d04c30dSArrigo Marchioridiff -ru misc/icu/source/common/uloc.c misc/build/icu/source/common/uloc.c
143d04c30dSArrigo Marchiori--- misc/icu/source/common/uloc.c   2009-07-01 20:50:38.000000000 +0200
153d04c30dSArrigo Marchiori+++ misc/build/icu/source/common/uloc.c 2024-06-14 21:25:59.612644465 +0200
163d04c30dSArrigo Marchiori@@ -1736,7 +1736,7 @@
173d04c30dSArrigo Marchiori                 int32_t variantLen = _deleteVariant(variant, uprv_min(variantSize, (nameCapacity-len)), variantToCompare, n);
183d04c30dSArrigo Marchiori                 len -= variantLen;
193d04c30dSArrigo Marchiori                 if (variantLen > 0) {
203d04c30dSArrigo Marchiori-                    if (name[len-1] == '_') { /* delete trailing '_' */
213d04c30dSArrigo Marchiori+                    if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */
223d04c30dSArrigo Marchiori                         --len;
233d04c30dSArrigo Marchiori                     }
243d04c30dSArrigo Marchiori                     addKeyword = VARIANT_MAP[j].keyword;
253d04c30dSArrigo Marchiori@@ -1744,7 +1744,7 @@
263d04c30dSArrigo Marchiori                     break;
273d04c30dSArrigo Marchiori                 }
283d04c30dSArrigo Marchiori             }
293d04c30dSArrigo Marchiori-            if (name[len-1] == '_') { /* delete trailing '_' */
303d04c30dSArrigo Marchiori+            if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */
313d04c30dSArrigo Marchiori                 --len;
323d04c30dSArrigo Marchiori             }
333d04c30dSArrigo Marchiori         }
343d04c30dSArrigo Marchioridiff -ru misc/icu/source/config/mh-bsd-gcc misc/build/icu/source/config/mh-bsd-gcc
353d04c30dSArrigo Marchiori--- misc/icu/source/config/mh-bsd-gcc   2009-07-01 20:50:48.000000000 +0200
363d04c30dSArrigo Marchiori+++ misc/build/icu/source/config/mh-bsd-gcc 2024-06-14 21:16:18.187059931 +0200
373d04c30dSArrigo Marchiori@@ -18,8 +18,12 @@
383d04c30dSArrigo Marchiori
393d04c30dSArrigo Marchiori ## Compiler switch to embed a runtime search path
403d04c30dSArrigo Marchiori LD_RPATH=
413d04c30dSArrigo Marchiori-LD_RPATH_PRE=  -Wl,-rpath,
423d04c30dSArrigo Marchiori+LD_RPATH_PRE=  -Wl,-z,origin -Wl,-rpath,
433d04c30dSArrigo Marchiori
443d04c30dSArrigo Marchiori+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
453d04c30dSArrigo Marchiori+## (incl. the C++ runtime libs potentially found in the URE lib dir):
463d04c30dSArrigo Marchiori+ENABLE_RPATH=YES
473d04c30dSArrigo Marchiori+RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'
483d04c30dSArrigo Marchiori ## Compiler switch to embed a library name
493d04c30dSArrigo Marchiori LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
503d04c30dSArrigo Marchiori
513d04c30dSArrigo Marchioridiff -ru misc/icu/source/config/mh-darwin misc/build/icu/source/config/mh-darwin
523d04c30dSArrigo Marchiori--- misc/icu/source/config/mh-darwin    2009-07-01 20:50:48.000000000 +0200
533d04c30dSArrigo Marchiori+++ misc/build/icu/source/config/mh-darwin  2024-06-14 21:19:02.155170814 +0200
543d04c30dSArrigo Marchiori@@ -25,7 +25,7 @@
553d04c30dSArrigo Marchiori SHLIB.cc=  $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS)
563d04c30dSArrigo Marchiori
573d04c30dSArrigo Marchiori ## Compiler switches to embed a library name and version information
583d04c30dSArrigo Marchiori-LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
593d04c30dSArrigo Marchiori+LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name @executable_path/$(notdir $(FINAL_SO_TARGET))
603d04c30dSArrigo Marchiori
613d04c30dSArrigo Marchiori ## Compiler switch to embed a runtime search path
623d04c30dSArrigo Marchiori LD_RPATH=
633d04c30dSArrigo Marchiori@@ -41,10 +41,6 @@
643d04c30dSArrigo Marchiori ## Non-shared intermediate object suffix
653d04c30dSArrigo Marchiori STATIC_O = ao
663d04c30dSArrigo Marchiori
673d04c30dSArrigo Marchiori-## Override Versioned target for a shared library.
683d04c30dSArrigo Marchiori-FINAL_SO_TARGET=  $(basename $(SO_TARGET)).$(SO_TARGET_VERSION).$(SO)
693d04c30dSArrigo Marchiori-MIDDLE_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION_MAJOR).$(SO)
703d04c30dSArrigo Marchiori-
713d04c30dSArrigo Marchiori ## Compilation rules
723d04c30dSArrigo Marchiori %.$(STATIC_O): $(srcdir)/%.c
733d04c30dSArrigo Marchiori    $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
743d04c30dSArrigo Marchiori@@ -76,15 +72,9 @@
753d04c30dSArrigo Marchiori
763d04c30dSArrigo Marchiori ## Versioned libraries rules
773d04c30dSArrigo Marchiori
783d04c30dSArrigo Marchiori-%.$(SO_TARGET_VERSION_MAJOR).$(SO): %.$(SO_TARGET_VERSION).$(SO)
793d04c30dSArrigo Marchiori+%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
803d04c30dSArrigo Marchiori    $(RM) $@ && ln -s ${<F} $@
813d04c30dSArrigo Marchiori-%.$(SO): %.$(SO_TARGET_VERSION_MAJOR).$(SO)
823d04c30dSArrigo Marchiori-   $(RM) $@ && ln -s ${*F}.$(SO_TARGET_VERSION).$(SO) $@
833d04c30dSArrigo Marchiori-
843d04c30dSArrigo Marchiori-# tzcode option
853d04c30dSArrigo Marchiori-TZORIG_EXTRA_CFLAGS=-DSTD_INSPIRED
863d04c30dSArrigo Marchiori-
873d04c30dSArrigo Marchiori-# genren opts
883d04c30dSArrigo Marchiori-GENREN_PL_OPTS=-x Mach-O -n '-g' -p '| c++filt'
893d04c30dSArrigo Marchiori+%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
903d04c30dSArrigo Marchiori+   $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
913d04c30dSArrigo Marchiori
923d04c30dSArrigo Marchiori ## End Darwin-specific setup
933d04c30dSArrigo Marchioridiff -ru misc/icu/source/config/mh-linux misc/build/icu/source/config/mh-linux
943d04c30dSArrigo Marchiori--- misc/icu/source/config/mh-linux 2009-07-01 20:50:48.000000000 +0200
953d04c30dSArrigo Marchiori+++ misc/build/icu/source/config/mh-linux   2024-06-14 21:19:31.827909846 +0200
963d04c30dSArrigo Marchiori@@ -20,6 +20,11 @@
973d04c30dSArrigo Marchiori LD_RPATH=
983d04c30dSArrigo Marchiori LD_RPATH_PRE = -Wl,-rpath,
993d04c30dSArrigo Marchiori
1003d04c30dSArrigo Marchiori+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
1013d04c30dSArrigo Marchiori+## (incl. the C++ runtime libs potentially found in the URE lib dir):
1023d04c30dSArrigo Marchiori+ENABLE_RPATH=YES
1033d04c30dSArrigo Marchiori+RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'
1043d04c30dSArrigo Marchiori+
1053d04c30dSArrigo Marchiori ## These are the library specific LDFLAGS
1063d04c30dSArrigo Marchiori LDFLAGSICUDT=-nodefaultlibs -nostdlib
1073d04c30dSArrigo Marchiori
1083d04c30dSArrigo Marchioridiff -ru misc/icu/source/config/mh-mingw misc/build/icu/source/config/mh-mingw
1093d04c30dSArrigo Marchiori--- misc/icu/source/config/mh-mingw 2009-07-01 20:50:48.000000000 +0200
1103d04c30dSArrigo Marchiori+++ misc/build/icu/source/config/mh-mingw   2024-06-14 21:20:44.741721341 +0200
1113d04c30dSArrigo Marchiori@@ -76,6 +76,8 @@
1123d04c30dSArrigo Marchiori # Current full path directory for use in source code in a -D compiler option.
1133d04c30dSArrigo Marchiori #CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS
1143d04c30dSArrigo Marchiori CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
1153d04c30dSArrigo Marchiori+SRCDIR_DEPEND=$(shell cd $(SRCDIR) && pwd)
1163d04c30dSArrigo Marchiori+DATAFILEPATHS_DEPEND=$(foreach p,$(DATAFILEPATHS),$(shell cd $(dir $(p)) && pwd)/$(notdir $(p)))
1173d04c30dSArrigo Marchiori
1183d04c30dSArrigo Marchiori ## Compilation rules
1193d04c30dSArrigo Marchiori %.$(STATIC_O): $(srcdir)/%.c
1203d04c30dSArrigo Marchioridiff -ru misc/icu/source/config/mh-solaris misc/build/icu/source/config/mh-solaris
1213d04c30dSArrigo Marchiori--- misc/icu/source/config/mh-solaris   2009-07-01 20:50:48.000000000 +0200
1223d04c30dSArrigo Marchiori+++ misc/build/icu/source/config/mh-solaris 2024-06-14 21:22:01.599625394 +0200
1233d04c30dSArrigo Marchiori@@ -18,17 +18,21 @@
1243d04c30dSArrigo Marchiori
1253d04c30dSArrigo Marchiori ## Commands to link
1263d04c30dSArrigo Marchiori ## For Sun Workshop, use CC to link to bring in C++ runtime
1273d04c30dSArrigo Marchiori-LINK.c=        $(CXX) $(CXXFLAGS) $(LDFLAGS)
1283d04c30dSArrigo Marchiori-LINK.cc=   $(CXX) $(CXXFLAGS) $(LDFLAGS)
1293d04c30dSArrigo Marchiori+LINK.c=        $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath
1303d04c30dSArrigo Marchiori+LINK.cc=   $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath
1313d04c30dSArrigo Marchiori
1323d04c30dSArrigo Marchiori ## Commands to make a shared library
1333d04c30dSArrigo Marchiori SHLIB.c=   $(CC) $(CFLAGS) $(LDFLAGS) -G
1343d04c30dSArrigo Marchiori-SHLIB.cc=  $(CXX) $(CXXFLAGS) $(LDFLAGS) -G
1353d04c30dSArrigo Marchiori+SHLIB.cc=  $(CXX) $(CXXFLAGS) $(LDFLAGS) -G -norunpath
1363d04c30dSArrigo Marchiori
1373d04c30dSArrigo Marchiori ## Compiler switch to embed a runtime search path
1383d04c30dSArrigo Marchiori LD_RPATH=  -R
1393d04c30dSArrigo Marchiori LD_RPATH_PRE=
1403d04c30dSArrigo Marchiori
1413d04c30dSArrigo Marchiori+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
1423d04c30dSArrigo Marchiori+ENABLE_RPATH=YES
1433d04c30dSArrigo Marchiori+RPATHLDFLAGS=${LD_RPATH}'$$ORIGIN'
1443d04c30dSArrigo Marchiori+
1453d04c30dSArrigo Marchiori #LIBRARY_PATH_PREFIX=/usr/lib/lwp:
1463d04c30dSArrigo Marchiori
1473d04c30dSArrigo Marchiori ## Compiler switch to embed a library name
1483d04c30dSArrigo Marchioridiff -ru misc/icu/source/layout/ArabicShaping.cpp misc/build/icu/source/layout/ArabicShaping.cpp
1493d04c30dSArrigo Marchiori--- misc/icu/source/layout/ArabicShaping.cpp    2009-07-01 20:51:24.000000000 +0200
1503d04c30dSArrigo Marchiori+++ misc/build/icu/source/layout/ArabicShaping.cpp  2024-06-14 21:23:05.557119301 +0200
1513d04c30dSArrigo Marchiori@@ -79,7 +79,6 @@
1523d04c30dSArrigo Marchiori #define markFeatureMask 0x00040000UL
1533d04c30dSArrigo Marchiori #define mkmkFeatureMask 0x00020000UL
1543d04c30dSArrigo Marchiori
1553d04c30dSArrigo Marchiori-#define NO_FEATURES   0
1563d04c30dSArrigo Marchiori #define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
1573d04c30dSArrigo Marchiori
1583d04c30dSArrigo Marchiori #define SHAPE_MASK 0xF0000000UL
1593d04c30dSArrigo Marchiori@@ -174,11 +173,7 @@
1603d04c30dSArrigo Marchiori         LEUnicode c = chars[in];
1613d04c30dSArrigo Marchiori         ShapeType t = getShapeType(c);
1623d04c30dSArrigo Marchiori
1633d04c30dSArrigo Marchiori-        if (t == ST_NOSHAPE_NONE) {
1643d04c30dSArrigo Marchiori-            glyphStorage.setAuxData(out, NO_FEATURES, success);
1653d04c30dSArrigo Marchiori-        } else {
1663d04c30dSArrigo Marchiori-            glyphStorage.setAuxData(out, ISOL_FEATURES, success);
1673d04c30dSArrigo Marchiori-        }
1683d04c30dSArrigo Marchiori+        glyphStorage.setAuxData(out, ISOL_FEATURES, success);
1693d04c30dSArrigo Marchiori
1703d04c30dSArrigo Marchiori         if ((t & MASK_TRANSPARENT) != 0) {
1713d04c30dSArrigo Marchiori             continue;
1723d04c30dSArrigo Marchioridiff -ru misc/icu/source/tools/genuca/genuca.cpp misc/build/icu/source/tools/genuca/genuca.cpp
1733d04c30dSArrigo Marchiori--- misc/icu/source/tools/genuca/genuca.cpp 2009-07-01 20:50:40.000000000 +0200
1743d04c30dSArrigo Marchiori+++ misc/build/icu/source/tools/genuca/genuca.cpp   2024-06-14 21:27:57.031211233 +0200
1753d04c30dSArrigo Marchiori@@ -395,7 +395,7 @@
1763d04c30dSArrigo Marchiori                        copyright, status);
1773d04c30dSArrigo Marchiori
1783d04c30dSArrigo Marchiori     if(U_FAILURE(*status)) {
1793d04c30dSArrigo Marchiori-        fprintf(stderr, "Error: unable to create %s"INVC_DATA_NAME", error %s\n", outputDir, u_errorName(*status));
1803d04c30dSArrigo Marchiori+        fprintf(stderr, "Error: unable to create %s" INVC_DATA_NAME ", error %s\n", outputDir, u_errorName(*status));
1813d04c30dSArrigo Marchiori         return;
1823d04c30dSArrigo Marchiori     }
1833d04c30dSArrigo Marchiori
1843d04c30dSArrigo Marchiori@@ -757,7 +757,7 @@
1853d04c30dSArrigo Marchiori                        copyright, status);
1863d04c30dSArrigo Marchiori
1873d04c30dSArrigo Marchiori     if(U_FAILURE(*status)) {
1883d04c30dSArrigo Marchiori-        fprintf(stderr, "Error: unable to create %s"UCA_DATA_NAME", error %s\n", outputDir, u_errorName(*status));
1893d04c30dSArrigo Marchiori+        fprintf(stderr, "Error: unable to create %s" UCA_DATA_NAME ", error %s\n", outputDir, u_errorName(*status));
1903d04c30dSArrigo Marchiori         return;
1913d04c30dSArrigo Marchiori     }
1923d04c30dSArrigo Marchiori
1933d04c30dSArrigo Marchiori@@ -904,9 +904,9 @@
1943d04c30dSArrigo Marchiori       {0x20000, 0x2A6D6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24)  },  //6 CJK_IMPLICIT_TAG,   /* 0x20000-0x2A6D6*/
1953d04c30dSArrigo Marchiori       {0x2F800, 0x2FA1D, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24)  },  //7 CJK_IMPLICIT_TAG,   /* 0x2F800-0x2FA1D*/
1963d04c30dSArrigo Marchiori #endif
1973d04c30dSArrigo Marchiori-      {0xAC00, 0xD7B0, UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24) },  //0 HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/
1983d04c30dSArrigo Marchiori+      {0xAC00, 0xD7B0, static_cast<int32_t>(UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24)) },  //0 HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/
1993d04c30dSArrigo Marchiori       //{0xD800, 0xDC00, UCOL_SPECIAL_FLAG | (LEAD_SURROGATE_TAG << 24)  },  //1 LEAD_SURROGATE_TAG,  /* D800-DBFF*/
2003d04c30dSArrigo Marchiori-      {0xDC00, 0xE000, UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24) },  //2 TRAIL_SURROGATE DC00-DFFF
2013d04c30dSArrigo Marchiori+      {0xDC00, 0xE000, static_cast<int32_t>(UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24)) },  //2 TRAIL_SURROGATE DC00-DFFF
2023d04c30dSArrigo Marchiori       // Now directly handled in the collation code by the swapCJK function.
2033d04c30dSArrigo Marchiori       //{0x3400, 0x4DB6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24)    },  //3 CJK_IMPLICIT_TAG,   /* 0x3400-0x4DB5*/
2043d04c30dSArrigo Marchiori       //{0x4E00, 0x9FA6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24)    },  //4 CJK_IMPLICIT_TAG,   /* 0x4E00-0x9FA5*/
2053d04c30dSArrigo Marchiori
206*92209e56SArrigo Marchiori--- misc/icu/source/configure   2009-07-01 14:51:26.000000000 -0400
207*92209e56SArrigo Marchiori+++ misc/build/icu/source/configure 2024-10-19 16:35:02.000000000 -0400
208*92209e56SArrigo Marchiori@@ -7061,8 +7061,10 @@
209*92209e56SArrigo Marchiori    # Check for potential -arch flags.  It is not universal unless
210*92209e56SArrigo Marchiori    # there are some -arch flags.  Note that *ppc* also matches
211*92209e56SArrigo Marchiori    # ppc64.  This check is also rather less than ideal.
212*92209e56SArrigo Marchiori+   echo "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}"
213*92209e56SArrigo Marchiori    case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in  #(
214*92209e56SArrigo Marchiori-     *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
215*92209e56SArrigo Marchiori+     *-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=no;;
216*92209e56SArrigo Marchiori+     *-arch*ppc*) ac_cv_c_bigendian=yes;;
217*92209e56SArrigo Marchiori    esac
218*92209e56SArrigo Marchiori else
219*92209e56SArrigo Marchiori   $as_echo "$as_me: failed program was:" >&5
220*92209e56SArrigo Marchiori--- misc/icu/source/i18n/uspoof.cpp 2009-07-01 14:50:10.000000000 -0400
221*92209e56SArrigo Marchiori+++ misc/build/icu/source/i18n/uspoof.cpp   2024-10-19 16:36:44.000000000 -0400
222*92209e56SArrigo Marchiori@@ -366,7 +366,7 @@
223*92209e56SArrigo Marchiori         // u_strToUTF8() in preflight mode is an easy way to do it.
224*92209e56SArrigo Marchiori         U_ASSERT(position16 <= len16);
225*92209e56SArrigo Marchiori         u_strToUTF8(NULL, 0, position, text16, position16, status);
226*92209e56SArrigo Marchiori-        if (position > 0) {
227*92209e56SArrigo Marchiori+        if (position) {
228*92209e56SArrigo Marchiori             // position is the required buffer length from u_strToUTF8, which includes
229*92209e56SArrigo Marchiori             // space for a terminating NULL, which we don't want, hence the -1.
230*92209e56SArrigo Marchiori             *position -= 1;
231