This is an automated email from the ASF dual-hosted git repository. ardovm pushed a commit to branch AOO41X in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 7ccb0d530a82b7ad7d024d7230ef1f4a7f5faac3 Author: Arrigo Marchiori <ard...@yahoo.it> AuthorDate: Fri Jun 14 21:43:10 2024 +0200 Switch to icu 4.2.1 Update createmak.pl to adjust paths. Update createmak.cfg to the new sources. (adapted from commit b0de321897d0795c98972c112b1134c6a4cb160d) --- main/external_deps.lst | 6 +- main/icu/createmak.cfg | 43 ++++++- main/icu/createmak.pl | 65 ++++++++-- main/icu/icu-win-icutu-dll-version.patch | 40 ++++++ main/icu/icu-win-layout.patch | 11 ++ main/icu/icu4c-4_2_1-src.patch | 205 +++++++++++++++++++++++++++++++ main/icu/icuversion.mk | 2 +- main/icu/makefile.mk | 7 +- main/icu/prj/d.lst | 10 +- 9 files changed, 366 insertions(+), 23 deletions(-) diff --git a/main/external_deps.lst b/main/external_deps.lst index f22e757d7f..15cf3e27f6 100644 --- a/main/external_deps.lst +++ b/main/external_deps.lst @@ -118,9 +118,9 @@ if (SOLAR_JAVA==TRUE && ENABLE_MEDIAWIKI==YES) URL2 = $(OOO_EXTRAS)$(MD5)-$(name) if ( true ) - MD5 = 2f6ecca935948f7db92d925d88d0d078 - name = icu4c-4_0_1-src.tgz - URL1 = https://sourceforge.net/projects/icu/files/ICU4C/4.0.1/$(name) + MD5 = e3738abd0d3ce1870dc1fd1f22bba5b1 + name = icu4c-4_2_1-src.tgz + URL1 = https://sourceforge.net/projects/icu/files/ICU4C/4.2.1/$(name) URL2 = $(OOO_EXTRAS)$(MD5)-$(name) if ( true ) diff --git a/main/icu/createmak.cfg b/main/icu/createmak.cfg index be5130740f..4fe20cb059 100644 --- a/main/icu/createmak.cfg +++ b/main/icu/createmak.cfg @@ -1,3 +1,6 @@ +[Architecture] +x86 + [Copy] SOURCE=<HEADER> InputPath=<INPUTPATH> @@ -32,6 +35,12 @@ CDEF1FLAGS= -D "_WINDOWS" -D "_MBCS" [CFlags_common] CPP_PROJ=-nologo -MD -Za -Zi -W3 -GF -O2 -Ob2 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c +[CFlags_samples_cal] +CPP_PROJ=-MD -O2 $(CTOOLSFLAGS) + +[CFlags_samples_date] +CPP_PROJ=-MD -O2 $(CTOOLSFLAGS) + [CFlags_i18n] CPP_PROJ=-MD -W3 -Oi -Op -GF -FD -GS -Gy -Za -Zi $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/i18n.pch" $(CPDBOBJ) -c @@ -74,6 +83,9 @@ CPP_PROJ=-nologo -MD -GF -Za -Zi -W3 $(EXCEPTIONSWITCH) $(COPT) $(CPDBOBJ) -c [CFlags_tools_genccode] CPP_PROJ=-MD -O2 $(CTOOLSFLAGS) +[CFlags_tools_gencfu] +CPP_PROJ=-MD -O2 $(CTOOLSFLAGS) + [CFlags_tools_gencmn] CPP_PROJ=-O2 -Za $(CTOOLSFLAGS) @@ -132,14 +144,24 @@ CPP_PROJ=-Za -O2 $(CTOOLSFLAGS) CPP_PROJ=-MD -O2 $(CTOOLSFLAGS) [CommonLinkFlags] -PDBOUT=/pdb:"<PDBFILE>" /out:"<OUTFILE>" +PDBOUT_NOPDB=/out:"<OUTFILE>" +PDBOUT=/pdb:"<PDBFILE>" $(PDBOUT_NOPDB) +COMMONLINKFLAGS_NOPDB=/incremental:no /machine:I386 /nologo $(PDBOUT_NOPDB) /SAFESEH /NXCOMPAT /DYNAMICBASE COMMONLINKFLAGS=/incremental:no /machine:I386 /nologo $(PDBOUT) /SAFESEH /NXCOMPAT /DYNAMICBASE +COMMONLINKFLAGS_CONSOLE_NOPDB=$(COMMONLINKFLAGS_NOPDB) /subsystem:console COMMONLINKFLAGS_CONSOLE=$(COMMONLINKFLAGS) /subsystem:console +COMMONLINKFLAGS_DLL_NOPDB=$(COMMONLINKFLAGS_NOPDB) /dll COMMONLINKFLAGS_DLL=$(COMMONLINKFLAGS) /dll [LinkFlags_common] LINK32_FLAGS=icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib $(COMMONLINKFLAGS_DLL) /base:"0x4a800000" /implib:"$(OUTDIR)\icuuc.lib" /libpath:"..\..\lib" +[LinkFlags_samples_cal] +LINK32_FLAGS=..\..\..\lib\icuuc.lib ..\..\..\lib\icuin.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\icule.lib" + +[LinkFlags_samples_date] +LINK32_FLAGS=..\..\..\lib\icuuc.lib ..\..\..\lib\icuin.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\icule.lib" + [LinkFlags_i18n] LINK32_FLAGS=icuuc.lib $(COMMONLINKFLAGS_DLL) /base:"0x4a900000" /implib:"$(OUTDIR)\icuin.lib" /libpath:"..\..\lib" @@ -188,6 +210,9 @@ LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\tooluti [LinkFlags_tools_genccode] LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib" +[LinkFlags_tools_gencfu] +LINK32_FLAGS=icuuc.lib icutu.lib icuin.lib $(COMMONLINKFLAGS_CONSOLE_NOPDB) /libpath:"..\..\..\lib" + [LinkFlags_tools_gennames] LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib\Release" /libpath:"..\..\..\lib" @@ -255,7 +280,16 @@ LINK32_FLAGS=kernel32.lib ..\..\..\lib\icuin.lib $(COMMONLINKFLAGS_DLL) /NODEFAU "..\..\..\lib\icuin.lib" [AdditionalLinkObjects_layout] - "$(OUTDIR)\icuuc.lib" + "..\..\lib\icuuc.lib" \ + "..\..\lib\icuin.lib" + +[AdditionalLinkObjects_samples_cal] + "..\..\..\lib\icuuc.lib" \ + "..\..\..\lib\icuin.lib" + +[AdditionalLinkObjects_samples_date] + "..\..\..\lib\icuuc.lib" \ + "..\..\..\lib\icuin.lib" [AdditionalLinkObjects_io] "$(OUTDIR)\icuuc.lib" @@ -293,6 +327,11 @@ LINK32_FLAGS=kernel32.lib ..\..\..\lib\icuin.lib $(COMMONLINKFLAGS_DLL) /NODEFAU "..\..\..\lib\icuuc.lib" \ "..\..\..\lib\icutu.lib" +[AdditionalLinkObjects_tools_gencfu] + "..\..\..\lib\icuuc.lib" \ + "..\..\..\lib\icutu.lib" \ + "..\..\..\lib\icuin.lib" \ + [AdditionalLinkObjects_tools_gencmn] "..\..\..\lib\icuuc.lib" \ "..\..\..\lib\icutu.lib" diff --git a/main/icu/createmak.pl b/main/icu/createmak.pl index 6a59db6771..159587e31a 100644 --- a/main/icu/createmak.pl +++ b/main/icu/createmak.pl @@ -31,6 +31,7 @@ $is_debug=0; my $path = $ENV{'INPATH'} . "/"; my $quot = '"'; my %template_hash=(); +my $architecture = "x86"; my %vcproj_hash=(); # ------------------------------------------------------------------------ # Global stuff for parsing the *.vcproj files (XML::Parser) @@ -72,6 +73,10 @@ $sep = "\\\\"; my @builddeps = prepare_allinone_all_mak(\%project_by_id,\%project_by_name,\%project_dependencies,$sourcePath); fillTemplateHash($configfile); +# The architecture is indicated in the configuration file +$architecture=${$template_hash{"Architecture"}}[0]; +chomp $architecture; +print "Architecture: $architecture\n" if ($is_debug); create_allinone_all_mak(\@builddeps,\%project_by_id,$sourcePath); my @dirs = (); @@ -558,7 +563,7 @@ sub print_all_target #26.06.2008 13:27 { if ( $target =~ /\.exe/ ) { my $out = $target; - $out =~ s/.\\Release/\.\.\\\.\.\\\.\.\\bin/; + $out =~ s/\.\\((x64|x86)\\)?Release/\.\.\\\.\.\\\.\.\\$1bin/; $out =~ s/\$\(OutDir\)/\.\.\\\.\.\\\.\.\\bin/; $out =~ s/\//\\/; # convert / to \ $target = $out; @@ -637,18 +642,24 @@ sub print_link_template #18.04.2008 13:39 # for *.exe files an additional # copy section is required to get - # the stuff into the global bin directory + # the stuff into the per-arch bin directory my %dummy = (); my @mak = (); + my $arch = ""; + if ( $out =~ /x64/ ) { + $arch = "x64\\"; + } elsif ( $out =~ /x86/ ) { + $arch = "x86\\"; + } if( $manifest ==1 ) { # source,inputpath,target,action my $out = $outfile; - $out =~ s/.\\.*Release/\.\.\\\.\.\\\.\.\\bin/; + $out =~ s/\.\\((x64|x86)\\)?Release/\.\.\\\.\.\\\.\.\\$1bin/; $out =~ s/\$\(OutDir\)/\.\.\\\.\.\\\.\.\\bin/; $out =~ s/\//\\/; # subst / with \ $outfile =~ s/\//\\/; # subst / with \ - createCopySection($outfile,$outfile,$out,"copy \"\$(InputPath)\" .\\..\\..\\..\\bin",\@mak,\%dummy); + createCopySection($outfile,$outfile,$out,"copy \"\$(InputPath)\" .\\..\\..\\..\\${arch}bin",\@mak,\%dummy); foreach $line(@mak) { print MAKFILE $line; @@ -965,7 +976,7 @@ sub create_allinone_all_mak #09.02.2009 09:22 #special code snippet print ALLMAK "makedata : \n"; print ALLMAK " cd \"..\\data\"\n"; - print ALLMAK " nmake /f makedata.mak icumake=\$(MAKEDIR)\\..\\data cfg=Release\n"; + print ALLMAK " nmake /f makedata.mak icumake=\$(MAKEDIR)\\..\\data cfg=$architecture/Release\n"; print ALLMAK " cd \"..\\allinone\"\n\n"; } } @@ -1007,12 +1018,44 @@ sub start_handler $special_file=""; } if ( $ConfigSection && $att eq "Name" && $val eq "Release|Win32" ) { - $Release = 1; - $config = "Release"; # Release + if ( $architecture eq "x86" ) { + $Release = 1; + $config = "Release"; # Release + } else { + print "Ignoring Configuration $val\n" if ($is_debug); + $Release = 2; + $config = "Ignored"; + } } if ( $ConfigSection && $att eq "Name" && $val eq "Debug|Win32" ) { - $Release = 0; # Debug - $config = "Debug"; + if ( $architecture eq "x86" ) { + $Release = 0; # Debug + $config = "Debug"; + } else { + print "Ignoring Configuration $val\n" if ($is_debug); + $Release = 2; + $config = "Ignored"; + } + } + if ( $ConfigSection && $att eq "Name" && $val eq "Release|x64" ) { + if ( $architecture eq "x64" ) { + $Release = 1; + $config = "Release"; # Release + } else { + print "Ignoring Configuration $val\n" if ($is_debug); + $Release = 2; + $config = "Ignored"; + } + } + if ( $ConfigSection && $att eq "Name" && $val eq "Debug|x64" ) { + if ( $architecture eq "x64" ) { + $Release = 0; # Debug + $config = "Debug"; + } else { + print "Ignoring Configuration $val\n" if ($is_debug); + $Release = 2; + $config = "Ignored"; + } } if ( $att eq "Name" && $val eq "VCCLCompilerTool" ) { $CompilerSection = 1; @@ -1055,6 +1098,10 @@ sub start_handler $configelements{$config}{$att} = $val; } if ( $att eq "OutputFile" && $LinkerSection ) { + if ($architecture eq "x64") { + # We want the /bin/ subdirectory on all architectures + $val =~ s/\\bin64\\/\\bin\\/; + } $configelements{$config}{$att} = $val; } if ( $att eq "ProgramDatabaseFile" ) { diff --git a/main/icu/icu-win-icutu-dll-version.patch b/main/icu/icu-win-icutu-dll-version.patch new file mode 100644 index 0000000000..887b34db76 --- /dev/null +++ b/main/icu/icu-win-icutu-dll-version.patch @@ -0,0 +1,40 @@ +diff -ru misc/icu/source/tools/toolutil/toolutil.vcproj misc/build/icu/source/tools/toolutil/toolutil.vcproj +--- misc/icu/source/tools/toolutil/toolutil.vcproj 2024-08-27 22:18:58.482995900 +0200 ++++ misc/build/icu/source/tools/toolutil/toolutil.vcproj 2024-08-27 22:19:50.449784700 +0200 +@@ -78,7 +78,7 @@ + /> + <Tool + Name="VCLinkerTool" +- OutputFile="..\..\..\bin\icutu41.dll" ++ OutputFile="..\..\..\bin\icutu42.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="..\..\..\lib" +@@ -174,7 +174,7 @@ + /> + <Tool + Name="VCLinkerTool" +- OutputFile="..\..\..\bin\icutu41d.dll" ++ OutputFile="..\..\..\bin\icutu42d.dll" + LinkIncremental="2" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="..\..\..\lib" +@@ -269,7 +269,7 @@ + /> + <Tool + Name="VCLinkerTool" +- OutputFile="..\..\..\bin64\icutu41.dll" ++ OutputFile="..\..\..\bin64\icutu42.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="..\..\..\lib64" +@@ -367,7 +367,7 @@ + /> + <Tool + Name="VCLinkerTool" +- OutputFile="..\..\..\bin64\icutu41d.dll" ++ OutputFile="..\..\..\bin64\icutu42d.dll" + LinkIncremental="2" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="..\..\..\lib64" +Only in misc/build/icu/source/tools/toolutil: toolutil.vcproj~ diff --git a/main/icu/icu-win-layout.patch b/main/icu/icu-win-layout.patch new file mode 100644 index 0000000000..f755f2c1ec --- /dev/null +++ b/main/icu/icu-win-layout.patch @@ -0,0 +1,11 @@ +diff -ru misc/icu/source/allinone/allinone.sln misc/build/icu/source/allinone/allinone.sln +--- misc/icu/source/allinone/allinone.sln 2024-09-01 18:02:01.258473600 +0200 ++++ misc/build/icu/source/allinone/allinone.sln 2024-09-01 18:02:11.274816100 +0200 +@@ -122,6 +122,7 @@ + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "layout", "..\layout\layout.vcproj", "{C920062A-0647-4553-A3B2-37C58065664B}" + ProjectSection(ProjectDependencies) = postProject + {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} ++ {0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776} + EndProjectSection + EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "layoutex", "..\layoutex\layoutex.vcproj", "{37FC2C7F-1904-4811-8955-2F478830EAD1}" diff --git a/main/icu/icu4c-4_2_1-src.patch b/main/icu/icu4c-4_2_1-src.patch new file mode 100644 index 0000000000..0cc5b58b4b --- /dev/null +++ b/main/icu/icu4c-4_2_1-src.patch @@ -0,0 +1,205 @@ +diff -ru misc/icu/source/common/putil.c misc/build/icu/source/common/putil.c +--- misc/icu/source/common/putil.c 2009-07-01 20:50:38.000000000 +0200 ++++ misc/build/icu/source/common/putil.c 2024-06-14 21:17:04.184218726 +0200 +@@ -52,7 +52,7 @@ + Poorly upgraded Solaris machines can't have this defined. + Cleanly installed Solaris can use this #define. + */ +-#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ >= 199901L) ++#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) + #define _XOPEN_SOURCE_EXTENDED 1 + #endif + +diff -ru misc/icu/source/common/uloc.c misc/build/icu/source/common/uloc.c +--- misc/icu/source/common/uloc.c 2009-07-01 20:50:38.000000000 +0200 ++++ misc/build/icu/source/common/uloc.c 2024-06-14 21:25:59.612644465 +0200 +@@ -1736,7 +1736,7 @@ + int32_t variantLen = _deleteVariant(variant, uprv_min(variantSize, (nameCapacity-len)), variantToCompare, n); + len -= variantLen; + if (variantLen > 0) { +- if (name[len-1] == '_') { /* delete trailing '_' */ ++ if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */ + --len; + } + addKeyword = VARIANT_MAP[j].keyword; +@@ -1744,7 +1744,7 @@ + break; + } + } +- if (name[len-1] == '_') { /* delete trailing '_' */ ++ if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */ + --len; + } + } +diff -ru misc/icu/source/config/mh-bsd-gcc misc/build/icu/source/config/mh-bsd-gcc +--- misc/icu/source/config/mh-bsd-gcc 2009-07-01 20:50:48.000000000 +0200 ++++ misc/build/icu/source/config/mh-bsd-gcc 2024-06-14 21:16:18.187059931 +0200 +@@ -18,8 +18,12 @@ + + ## Compiler switch to embed a runtime search path + LD_RPATH= +-LD_RPATH_PRE= -Wl,-rpath, ++LD_RPATH_PRE= -Wl,-z,origin -Wl,-rpath, + ++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH ++## (incl. the C++ runtime libs potentially found in the URE lib dir): ++ENABLE_RPATH=YES ++RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib' + ## Compiler switch to embed a library name + LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET)) + +diff -ru misc/icu/source/config/mh-darwin misc/build/icu/source/config/mh-darwin +--- misc/icu/source/config/mh-darwin 2009-07-01 20:50:48.000000000 +0200 ++++ misc/build/icu/source/config/mh-darwin 2024-06-14 21:19:02.155170814 +0200 +@@ -25,7 +25,7 @@ + SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS) + + ## Compiler switches to embed a library name and version information +-LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET)) ++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)) + + ## Compiler switch to embed a runtime search path + LD_RPATH= +@@ -41,10 +41,6 @@ + ## Non-shared intermediate object suffix + STATIC_O = ao + +-## Override Versioned target for a shared library. +-FINAL_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION).$(SO) +-MIDDLE_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION_MAJOR).$(SO) +- + ## Compilation rules + %.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +@@ -76,15 +72,9 @@ + + ## Versioned libraries rules + +-%.$(SO_TARGET_VERSION_MAJOR).$(SO): %.$(SO_TARGET_VERSION).$(SO) ++%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) + $(RM) $@ && ln -s ${<F} $@ +-%.$(SO): %.$(SO_TARGET_VERSION_MAJOR).$(SO) +- $(RM) $@ && ln -s ${*F}.$(SO_TARGET_VERSION).$(SO) $@ +- +-# tzcode option +-TZORIG_EXTRA_CFLAGS=-DSTD_INSPIRED +- +-# genren opts +-GENREN_PL_OPTS=-x Mach-O -n '-g' -p '| c++filt' ++%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR) ++ $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@ + + ## End Darwin-specific setup +diff -ru misc/icu/source/config/mh-linux misc/build/icu/source/config/mh-linux +--- misc/icu/source/config/mh-linux 2009-07-01 20:50:48.000000000 +0200 ++++ misc/build/icu/source/config/mh-linux 2024-06-14 21:19:31.827909846 +0200 +@@ -20,6 +20,11 @@ + LD_RPATH= + LD_RPATH_PRE = -Wl,-rpath, + ++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH ++## (incl. the C++ runtime libs potentially found in the URE lib dir): ++ENABLE_RPATH=YES ++RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib' ++ + ## These are the library specific LDFLAGS + LDFLAGSICUDT=-nodefaultlibs -nostdlib + +diff -ru misc/icu/source/config/mh-mingw misc/build/icu/source/config/mh-mingw +--- misc/icu/source/config/mh-mingw 2009-07-01 20:50:48.000000000 +0200 ++++ misc/build/icu/source/config/mh-mingw 2024-06-14 21:20:44.741721341 +0200 +@@ -76,6 +76,8 @@ + # Current full path directory for use in source code in a -D compiler option. + #CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS + CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell ++SRCDIR_DEPEND=$(shell cd $(SRCDIR) && pwd) ++DATAFILEPATHS_DEPEND=$(foreach p,$(DATAFILEPATHS),$(shell cd $(dir $(p)) && pwd)/$(notdir $(p))) + + ## Compilation rules + %.$(STATIC_O): $(srcdir)/%.c +diff -ru misc/icu/source/config/mh-solaris misc/build/icu/source/config/mh-solaris +--- misc/icu/source/config/mh-solaris 2009-07-01 20:50:48.000000000 +0200 ++++ misc/build/icu/source/config/mh-solaris 2024-06-14 21:22:01.599625394 +0200 +@@ -18,17 +18,21 @@ + + ## Commands to link + ## For Sun Workshop, use CC to link to bring in C++ runtime +-LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) +-LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) ++LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath ++LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath + + ## Commands to make a shared library + SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -G +-SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -G ++SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -G -norunpath + + ## Compiler switch to embed a runtime search path + LD_RPATH= -R + LD_RPATH_PRE= + ++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH ++ENABLE_RPATH=YES ++RPATHLDFLAGS=${LD_RPATH}'$$ORIGIN' ++ + #LIBRARY_PATH_PREFIX=/usr/lib/lwp: + + ## Compiler switch to embed a library name +diff -ru misc/icu/source/layout/ArabicShaping.cpp misc/build/icu/source/layout/ArabicShaping.cpp +--- misc/icu/source/layout/ArabicShaping.cpp 2009-07-01 20:51:24.000000000 +0200 ++++ misc/build/icu/source/layout/ArabicShaping.cpp 2024-06-14 21:23:05.557119301 +0200 +@@ -79,7 +79,6 @@ + #define markFeatureMask 0x00040000UL + #define mkmkFeatureMask 0x00020000UL + +-#define NO_FEATURES 0 + #define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask) + + #define SHAPE_MASK 0xF0000000UL +@@ -174,11 +173,7 @@ + LEUnicode c = chars[in]; + ShapeType t = getShapeType(c); + +- if (t == ST_NOSHAPE_NONE) { +- glyphStorage.setAuxData(out, NO_FEATURES, success); +- } else { +- glyphStorage.setAuxData(out, ISOL_FEATURES, success); +- } ++ glyphStorage.setAuxData(out, ISOL_FEATURES, success); + + if ((t & MASK_TRANSPARENT) != 0) { + continue; +diff -ru misc/icu/source/tools/genuca/genuca.cpp misc/build/icu/source/tools/genuca/genuca.cpp +--- misc/icu/source/tools/genuca/genuca.cpp 2009-07-01 20:50:40.000000000 +0200 ++++ misc/build/icu/source/tools/genuca/genuca.cpp 2024-06-14 21:27:57.031211233 +0200 +@@ -395,7 +395,7 @@ + copyright, status); + + if(U_FAILURE(*status)) { +- fprintf(stderr, "Error: unable to create %s"INVC_DATA_NAME", error %s\n", outputDir, u_errorName(*status)); ++ fprintf(stderr, "Error: unable to create %s" INVC_DATA_NAME ", error %s\n", outputDir, u_errorName(*status)); + return; + } + +@@ -757,7 +757,7 @@ + copyright, status); + + if(U_FAILURE(*status)) { +- fprintf(stderr, "Error: unable to create %s"UCA_DATA_NAME", error %s\n", outputDir, u_errorName(*status)); ++ fprintf(stderr, "Error: unable to create %s" UCA_DATA_NAME ", error %s\n", outputDir, u_errorName(*status)); + return; + } + +@@ -904,9 +904,9 @@ + {0x20000, 0x2A6D6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //6 CJK_IMPLICIT_TAG, /* 0x20000-0x2A6D6*/ + {0x2F800, 0x2FA1D, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //7 CJK_IMPLICIT_TAG, /* 0x2F800-0x2FA1D*/ + #endif +- {0xAC00, 0xD7B0, UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24) }, //0 HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/ ++ {0xAC00, 0xD7B0, static_cast<int32_t>(UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24)) }, //0 HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/ + //{0xD800, 0xDC00, UCOL_SPECIAL_FLAG | (LEAD_SURROGATE_TAG << 24) }, //1 LEAD_SURROGATE_TAG, /* D800-DBFF*/ +- {0xDC00, 0xE000, UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24) }, //2 TRAIL_SURROGATE DC00-DFFF ++ {0xDC00, 0xE000, static_cast<int32_t>(UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24)) }, //2 TRAIL_SURROGATE DC00-DFFF + // Now directly handled in the collation code by the swapCJK function. + //{0x3400, 0x4DB6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //3 CJK_IMPLICIT_TAG, /* 0x3400-0x4DB5*/ + //{0x4E00, 0x9FA6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //4 CJK_IMPLICIT_TAG, /* 0x4E00-0x9FA5*/ + diff --git a/main/icu/icuversion.mk b/main/icu/icuversion.mk index 43f700d39f..e7ea88296d 100644 --- a/main/icu/icuversion.mk +++ b/main/icu/icuversion.mk @@ -23,7 +23,7 @@ # major ICU_MAJOR*=4 # minor -ICU_MINOR*=0 +ICU_MINOR*=2 # micro ICU_MICRO*=1 diff --git a/main/icu/makefile.mk b/main/icu/makefile.mk index e8f164caa5..d136e4989c 100644 --- a/main/icu/makefile.mk +++ b/main/icu/makefile.mk @@ -35,15 +35,16 @@ TARGET=so_icu .IF "$(ICU_MICRO)"!="0" TARFILE_NAME=icu4c-$(ICU_MAJOR)_$(ICU_MINOR)_$(ICU_MICRO)-src -TARFILE_MD5=2f6ecca935948f7db92d925d88d0d078 +TARFILE_MD5=e3738abd0d3ce1870dc1fd1f22bba5b1 .ELSE TARFILE_NAME=icu4c-$(ICU_MAJOR)_$(ICU_MINOR)-src TARFILE_MD5= .ENDIF TARFILE_ROOTDIR=icu -PATCH_FILES=${TARFILE_NAME}.patch icu-mp.patch icu-win-layoutex.patch - +# TODO file icu-mp.patch does not seem to be required +PATCH_FILES=${TARFILE_NAME}.patch icu-win-layout.patch \ + icu-format-security.patch icu-win-icutu-dll-version.patch .IF "$(OS)"=="MACOSX" PATCH_FILES+=icu-darwin.patch .ENDIF diff --git a/main/icu/prj/d.lst b/main/icu/prj/d.lst index c5d777277e..f8de4612f6 100644 --- a/main/icu/prj/d.lst +++ b/main/icu/prj/d.lst @@ -9,11 +9,11 @@ mkdir: %_DEST%\inc%_EXT%\external\unicode ..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a ..\%__SRC%\lib\*.lib %_DEST%\lib%_EXT%\*.lib -..\%__SRC%\bin\icudt40.dll %_DEST%\bin%_EXT%\icudt40.dll -..\%__SRC%\bin\icuin40.dll %_DEST%\bin%_EXT%\icuin40.dll -..\%__SRC%\bin\icule40.dll %_DEST%\bin%_EXT%\icule40.dll -..\%__SRC%\bin\icutu40.dll %_DEST%\bin%_EXT%\icutu40.dll -..\%__SRC%\bin\icuuc40.dll %_DEST%\bin%_EXT%\icuuc40.dll +..\%__SRC%\bin\icudt42.dll %_DEST%\bin%_EXT%\icudt42.dll +..\%__SRC%\bin\icuin42.dll %_DEST%\bin%_EXT%\icuin42.dll +..\%__SRC%\bin\icule42.dll %_DEST%\bin%_EXT%\icule42.dll +..\%__SRC%\bin\icutu42.dll %_DEST%\bin%_EXT%\icutu42.dll +..\%__SRC%\bin\icuuc42.dll %_DEST%\bin%_EXT%\icuuc42.dll ..\%__SRC%\bin\genccode %_DEST%\bin%_EXT%\genccode ..\%__SRC%\bin\genccode.exe %_DEST%\bin%_EXT%\genccode.exe