diff -ur icu.org/source/acinclude.m4 icu/source/acinclude.m4 --- icu.org/source/acinclude.m4 2020-04-10 16:22:16.000000000 +0200 +++ icu/source/acinclude.m4 2020-04-21 22:14:09.940217733 +0200 @@ -52,6 +52,12 @@ else icu_cv_host_frag=mh-cygwin-msvc fi ;; +aarch64-*-cygwin) + if test "$GCC" = yes; then + icu_cv_host_frag=mh-cygwin64 + else + icu_cv_host_frag=mh-cygwin-msvc + fi ;; *-*-mingw*) if test "$GCC" = yes; then AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ --- icu/source/configure.ac.orig 2020-04-22 22:04:20.000000000 +0200 +++ icu/source/configure.ac 2020-10-01 09:39:05.570900400 +0200 @@ -213,23 +213,33 @@ [cross_buildroot="${withval}"], [cross_buildroot=""]) +cross_mixed_buildroot="$cross_buildroot" +cross_unix_buildroot="$cross_buildroot" if test "X$cross_buildroot" = "X"; then if test "$cross_compiling" = "yes"; then AC_MSG_ERROR([Error! Cross compiling but no --with-cross-build option specified - please supply the path to an executable ICU's build root]) dnl ' fi else - if test -f "${cross_buildroot}/config/icucross.mk"; then + case "${host}" in + *-*-cygwin*) + #M# -m isn't used because it doesn't work on Win98 + cross_mixed_buildroot=$(cygpath -ad "$cross_buildroot" | tr '\\' '/') + cross_unix_buildroot=$(cygpath -au "$cross_buildroot") + ;; + esac + if test -f "${cross_mixed_buildroot}/config/icucross.mk"; then AC_MSG_RESULT([Using cross buildroot: $cross_buildroot]) else - if test -d "${cross_buildroot}"; then - AC_MSG_ERROR([${cross_buildroot}/config/icucross.mk not found. Please build ICU in ${cross_buildroot} first.]) + if test -d "${cross_mixed_buildroot}"; then + AC_MSG_ERROR([${cross_mixed_buildroot}/config/icucross.mk not found. Please build ICU in ${cross_mixed_buildroot} first.]) else - AC_MSG_ERROR([No such directory ${cross_buildroot} supplied as the argument to --with-cross-build. Use an absolute path.]) + AC_MSG_ERROR([No such directory ${cross_mixed_buildroot} supplied as the argument to --with-cross-build. Use an absolute path.]) fi fi fi -AC_SUBST(cross_buildroot) +AC_SUBST(cross_mixed_buildroot) +AC_SUBST(cross_unix_buildroot) # Check for doxygen to generate documentation AC_PATH_PROG(DOXYGEN,doxygen,,$PATH:/usr/local/bin:/usr/bin) --- icu/source/test/testdata/Makefile.in.orig 2020-10-01 09:37:25.847888900 +0200 +++ icu/source/test/testdata/Makefile.in 2020-10-01 09:36:41.859996500 +0200 @@ -82,7 +82,7 @@ # relative lib links from pkgdata are the same as for tmp GENRBOPTS=-k # use the cross root, in case we are cross compiling. Otherwise it is equal to top_builddir -TOOLDIR=$(cross_buildroot)/tools +TOOLDIR=$(cross_mixed_buildroot)/tools SRCDATADIR=$(top_srcdir)/data UNICODEDATADIR=$(SRCDATADIR)/unidata OUTDIR=$(top_builddir)/data/out --- icu/source/Makefile.in.orig 2020-04-22 22:04:20.000000000 +0200 +++ icu/source/Makefile.in 2020-10-01 09:29:36.642364000 +0200 @@ -255,16 +255,16 @@ @(echo "CROSS_ICU_VERSION=$(VERSION)" ;\ echo "TOOLEXEEXT=$(EXEEXT)" \ ) > $@ - @(echo 'TOOLBINDIR=$$(cross_buildroot)/bin' ;\ - echo 'TOOLLIBDIR=$$(cross_buildroot)/lib' ;\ - echo "INVOKE=$(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)"'$$(TOOLLIBDIR):$$(cross_buildroot)/stubdata:$$(cross_buildroot)/tools/ctestfw:$$$$'"$(LDLIBRARYPATH_ENVVAR)" ;\ - echo "PKGDATA_INVOKE=$(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)"'$$(cross_buildroot)/stubdata:$$(cross_buildroot)/tools/ctestfw:$$(TOOLLIBDIR):$$$$'"$(LDLIBRARYPATH_ENVVAR) " ;\ + @(echo 'TOOLBINDIR=$$(cross_mixed_buildroot)/bin' ;\ + echo 'TOOLLIBDIR=$$(cross_mixed_buildroot)/lib' ;\ + echo "INVOKE=$(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)"'$$(cross_unix_buildroot)/lib:$$(cross_unix_buildroot)/stubdata:$$(cross_unix_buildroot)/tools/ctestfw:$$$$'"$(LDLIBRARYPATH_ENVVAR)" ;\ + echo "PKGDATA_INVOKE=$(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)"'$$(cross_unix_buildroot)/stubdata:$$(cross_unix_buildroot)/tools/ctestfw:$$(cross_unix_buildroot)/lib:$$$$'"$(LDLIBRARYPATH_ENVVAR) " ;\ echo ) >> $@ config/icucross.inc: $(top_builddir)/icudefs.mk $(top_builddir)/Makefile @platform_make_fragment@ @echo rebuilding $@ - @(grep '^CURR_FULL_DIR' $(top_builddir)/icudefs.mk ; \ - grep '^CURR_FULL_DIR' @platform_make_fragment@ || echo ""; \ + @(grep '^CURR_FULL_DIR' @platform_make_fragment@ || echo ""; \ + grep '^CURR_FULL_DIR' $(top_builddir)/icudefs.mk ; \ ) > $@ config/icu.pc: $(srcdir)/config/icu.pc.in --- icu/source/icudefs.mk.in.orig 2020-04-22 22:04:20.000000000 +0200 +++ icu/source/icudefs.mk.in 2020-10-01 09:35:54.418128800 +0200 @@ -35,7 +35,8 @@ sysconfdir = @sysconfdir@ # controls the include of $(top_builddir)/icucross.mk at bottom of file cross_compiling = @cross_compiling@ -cross_buildroot = @cross_buildroot@ +cross_mixed_buildroot = @cross_mixed_buildroot@ +cross_unix_buildroot = @cross_unix_buildroot@ # Package information @@ -303,8 +304,8 @@ INSTALLED_INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(libdir):$$$(LDLIBRARYPATH_ENVVAR) # Current full path directory for cross compilation -ifneq ($(strip $(cross_buildroot)),) -include $(cross_buildroot)/config/icucross.inc +ifneq ($(strip $(cross_mixed_buildroot)),) +include $(cross_mixed_buildroot)/config/icucross.inc endif # Platform-specific setup @@ -323,10 +324,11 @@ # some imported things from the cross env TOOLEXEEXT = $(EXEEXT) -ifneq ($(strip $(cross_buildroot)),) -include $(cross_buildroot)/config/icucross.mk +ifneq ($(strip $(cross_mixed_buildroot)),) +include $(cross_mixed_buildroot)/config/icucross.mk else -cross_buildroot = $(top_builddir) +cross_mixed_buildroot = $(top_builddir) +cross_unix_buildroot = $(top_builddir) endif # for tests