Skip to content

[icu] Fix mingw builds#20253

Merged
BillyONeal merged 6 commits intomicrosoft:masterfrom
dg0yt:icu-mingw
Sep 24, 2021
Merged

[icu] Fix mingw builds#20253
BillyONeal merged 6 commits intomicrosoft:masterfrom
dg0yt:icu-mingw

Conversation

@dg0yt
Copy link
Copy Markdown
Contributor

@dg0yt dg0yt commented Sep 19, 2021

Describe the pull request

  • What does your PR fix?

    Fixes building icu with mingw, for dynamic and static linkage. A more lightweight alternative to [icu] fix mingw builds #18175 by @autoantwort.

    • One patch unifies mingw dll installation with windows dll installation. This fixes mingw-dynamic (missing bin dirs with dlls).
    • The other patch stops icu from inserting s into statc library names. This fixes mingw-static ([icu] mingw build failure #16663), and allows to simplify the portfile.
    • A third change fixes mingw builds with windows host triplets.
  • Which triplets are supported/not supported? Have you updated the CI baseline?

    all, no.
    Tested locally: x64-mingw-dynamic and -static on Linux and on Windows (with mingw host triplet).

  • Does your PR follow the maintainer guide?

    yes

  • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

    yes

@dg0yt dg0yt changed the title Icu mingw [icu] Fix mingw builds Sep 19, 2021
@autoantwort
Copy link
Copy Markdown
Contributor

Hm I still have build errors with that in comparison to #18175.

build-x64-mingw-static-dbg-out.log
...
...
Makefile:85: update target 'gendict.1' due to: ../.././../src/c-69_1-src-86e71a956d.clean/source/tools/gendict/gendict.1.in
cd ../.. \
 && CONFIG_FILES=tools/gendict/gendict.1 CONFIG_HEADERS= /bin/sh ./config.status
Makefile:80: update target '../../bin/gendict.exe' due to: gendict.o
x86_64-w64-mingw32-g++.exe -g -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -mthreads    -o ../../bin/gendict.exe gendict.o -L../../lib "-licutud" -L../../lib "-licuind" -L../../lib "-licuucd" -L../../stubdata "-licudtd" -lpthread -lm -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 
config.status: creating tools/gendict/gendict.1
make[2]: Leaving directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/tools/gendict'
make[2]: Entering directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/tools'
Detected MSYS version: 3
make[2]: Nothing to be done for 'all-local'.
make[2]: Leaving directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/tools'
make[1]: Leaving directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/tools'
/usr/bin/make[0]: Making `all' in `data'
make[1]: Entering directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/data'
Detected MSYS version: 3
Makefile:374: update target 'icupkg.inc' due to: pkgdataMakefile
/usr/bin/make -f pkgdataMakefile
Makefile:269: update target 'out/tmp/icudata.lst' due to: Makefile .././../src/c-69_1-src-86e71a956d.clean/source/data/Makefile.in .././../src/c-69_1-src-86e71a956d.clean/source/data/in/icudt69l.dat
/bin/sh .././../src/c-69_1-src-86e71a956d.clean/source/mkinstalldirs ./out/tmp ./out/build/icudt69l
make[2]: Entering directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/data'
mkdir ./out
mkdir ./out/tmp
Detected MSYS version: 3
mkdir ./out/build
mkdir ./out/build/icudt69l
echo "Unpacking .././../src/c-69_1-src-86e71a956d.clean/source/data/in/icudt69l.dat and generating out/tmp/icudata.lst (list of data files)"
Unpacking .././../src/c-69_1-src-86e71a956d.clean/source/data/in/icudt69l.dat and generating out/tmp/icudata.lst (list of data files)
rm -rf out/tmp/icudata.lst
PATH=/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/lib:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/stubdata:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/tools/ctestfw:$PATH /C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/bin/icupkg -d ./out/build/icudt69l --list -x \* .././../src/c-69_1-src-86e71a956d.clean/source/data/in/icudt69l.dat -o out/tmp/icudata.lst
pkgdataMakefile:41: target 'clean' does not exist
rm -rf icupkg.inc
pkgdataMakefile:22: update target 'all' due to: clean
echo GENCCODE_ASSEMBLY_TYPE=-a gcc-mingw64 >> icupkg.inc
echo SO=dll >> icupkg.inc
echo SOBJ=dll >> icupkg.inc
echo A=a >> icupkg.inc
echo LIBPREFIX= >> icupkg.inc
echo LIB_EXT_ORDER=69.dll >> icupkg.inc
echo COMPILE="x86_64-w64-mingw32-gcc.exe   -DU_DEBUG=1 -DHAVE_DLOPEN=0 -DU_HAVE_MMAP=0 -DU_HAVE_STRTOD_L=0  -DU_STATIC_IMPLEMENTATION -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -DU_ATTRIBUTE_DEPRECATED= -g -std=c11 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -mthreads  -c" >> icupkg.inc
echo LIBFLAGS="-I.././../src/c-69_1-src-86e71a956d.clean/source/common -I../common -DPIC " >> icupkg.inc
echo GENLIB="x86_64-w64-mingw32-gcc.exe -g -std=c11 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -mthreads   -shared  -Wl,--enable-auto-import -Wl,--out-implib=./liball.dll.a" >> icupkg.inc
echo LDICUDTFLAGS= >> icupkg.inc
echo LD_SONAME= >> icupkg.inc
echo RPATH_FLAGS= >> icupkg.inc
echo BIR_LDFLAGS= >> icupkg.inc
echo AR=ar.exe >> icupkg.inc
echo ARFLAGS=r >> icupkg.inc
echo RANLIB=ranlib.exe >> icupkg.inc
echo INSTALL_CMD=/usr/bin/install -c >> icupkg.inc
make[2]: Leaving directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/data'
Makefile:266: update target 'build-local' due to: out/tmp/icudata.lst
echo timestamp > build-local
Makefile:176: update target 'packagedata' due to: icupkg.inc build-local
PATH=/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/stubdata:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/tools/ctestfw:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/lib:$PATH  /C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/bin/pkgdata -O ../data/icupkg.inc -q -c -s /c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/data/out/build/icudt69l -d ../lib -e icudt69  -T ./out/tmp -p icudt69l -m static -r 69 -L icudtd ./out/tmp/icudata.lst
pkgdata: bash -c "x86_64-w64-mingw32-gcc.exe   -DU_DEBUG=1 -DHAVE_DLOPEN=0 -DU_HAVE_MMAP=0 -DU_HAVE_STRTOD_L=0  -DU_STATIC_IMPLEMENTATION -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -DU_ATTRIBUTE_DEPRECATED= -g -std=c11 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -mthreads  -c -I.././../src/c-69_1-src-86e71a956d.clean/source/common -I../common -DPIC  -o ./out/tmp/icudt69l_dat.o ./out/tmp/icudt69l_dat.S"
pkgdata: bash -c "ar.exe r ../lib/icudtd.a ./out/tmp/icudt69l_dat.o"
pkgdata: bash -c "ranlib.exe ../lib/icudtd.a"
echo timestamp > packagedata
make[1]: Leaving directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/data'
/usr/bin/make[0]: Making `all' in `extra'
make[1]: Entering directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/extra'
Detected MSYS version: 3
Makefile:49: target 'all-recursive' does not exist
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
list='uconv'; for subdir in $list; do \
  echo "/usr/bin/make[1]: Making \`$target' in \`$subdir'"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-local"; \
  else \
    local_target="$target"; \
  fi; \
  (cd $subdir && /usr/bin/make $local_target) || exit; \
done; \
if test "$dot_seen" = "no"; then \
  /usr/bin/make "$target-local" || exit; \
fi
/usr/bin/make[1]: Making `all' in `uconv'
make[2]: Entering directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/extra/uconv'
Detected MSYS version: 3
Makefile:137: target 'build-dir' does not exist
/bin/sh ../.././../src/c-69_1-src-86e71a956d.clean/source/mkinstalldirs uconvmsg
../.././../src/c-69_1-src-86e71a956d.clean/source/config/mh-mingw64:150: update target 'uconv.o' due to: ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/uconv.cpp
x86_64-w64-mingw32-g++.exe   -DU_DEBUG=1 -DHAVE_DLOPEN=0 -DU_HAVE_MMAP=0 -DU_HAVE_STRTOD_L=0  -DU_STATIC_IMPLEMENTATION -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -I../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv -I../.././../src/c-69_1-src-86e71a956d.clean/source/common -I../.././../src/c-69_1-src-86e71a956d.clean/source/i18n -I../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/../toolutil -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit -DU_ATTRIBUTE_DEPRECATED= -DUCONVMSG_LINK=uconvmsg -g -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -mthreads  -c   -o uconv.o ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/uconv.cpp
../.././../src/c-69_1-src-86e71a956d.clean/source/config/mh-mingw64:145: update target 'uwmsg.o' due to: ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/uwmsg.c
x86_64-w64-mingw32-gcc.exe   -DU_DEBUG=1 -DHAVE_DLOPEN=0 -DU_HAVE_MMAP=0 -DU_HAVE_STRTOD_L=0  -DU_STATIC_IMPLEMENTATION -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -I../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv -I../.././../src/c-69_1-src-86e71a956d.clean/source/common -I../.././../src/c-69_1-src-86e71a956d.clean/source/i18n -I../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/../toolutil -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit -DU_ATTRIBUTE_DEPRECATED= -DUCONVMSG_LINK=uconvmsg -g -std=c11 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -mthreads  -c   -o uwmsg.o ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/uwmsg.c
Makefile:134: update target 'pkgdata.inc' due to: pkgdataMakefile
/usr/bin/make -f pkgdataMakefile
make[3]: Entering directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/extra/uconv'
mkdir uconvmsg
Makefile:176: update target 'uconvmsg/root.res' due to: ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/resources/root.txt
PATH=/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/lib:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/stubdata:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/tools/ctestfw:$PATH /C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/bin/genrb -e UTF-8 -s ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/resources -d uconvmsg root.txt
Makefile:176: update target 'uconvmsg/fr.res' due to: ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/resources/fr.txt
PATH=/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/lib:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/stubdata:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/tools/ctestfw:$PATH /C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/bin/genrb -e UTF-8 -s ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/resources -d uconvmsg fr.txt
Makefile:161: update target 'uconvmsg/uconvmsg.lst' due to: Makefile ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/resfiles.mk
rm -rf uconvmsg/uconvmsg.lst
for file in root.res fr.res; do \
  echo $file >> uconvmsg/uconvmsg.lst; \
done;
Detected MSYS version: 3
pkgdataMakefile:41: target 'clean' does not exist
rm -rf pkgdata.inc
pkgdataMakefile:22: update target 'all' due to: clean
echo GENCCODE_ASSEMBLY_TYPE=-a gcc-mingw64 >> pkgdata.inc
echo SO=dll >> pkgdata.inc
echo SOBJ=dll >> pkgdata.inc
echo A=a >> pkgdata.inc
echo LIBPREFIX= >> pkgdata.inc
echo LIB_EXT_ORDER=69.dll >> pkgdata.inc
echo COMPILE="x86_64-w64-mingw32-gcc.exe   -DU_DEBUG=1 -DHAVE_DLOPEN=0 -DU_HAVE_MMAP=0 -DU_HAVE_STRTOD_L=0  -DU_STATIC_IMPLEMENTATION -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -DU_ATTRIBUTE_DEPRECATED= -g -std=c11 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -mthreads  -c" >> pkgdata.inc
echo LIBFLAGS="-I../.././../src/c-69_1-src-86e71a956d.clean/source/common -I../../common -DPIC " >> pkgdata.inc
echo GENLIB="x86_64-w64-mingw32-gcc.exe -g -std=c11 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -mthreads   -shared  -Wl,--enable-auto-import -Wl,--out-implib=./liball.dll.a" >> pkgdata.inc
echo LDICUDTFLAGS= >> pkgdata.inc
echo LD_SONAME= >> pkgdata.inc
echo RPATH_FLAGS= >> pkgdata.inc
echo BIR_LDFLAGS= >> pkgdata.inc
echo AR=ar.exe >> pkgdata.inc
echo ARFLAGS=r >> pkgdata.inc
echo RANLIB=ranlib.exe >> pkgdata.inc
echo INSTALL_CMD=/usr/bin/install -c >> pkgdata.inc
make[3]: Leaving directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/extra/uconv'
Makefile:158: update target 'uconvmsg/uconvmsg.a' due to: uconvmsg/root.res uconvmsg/fr.res uconvmsg/uconvmsg.lst pkgdata.inc
PATH=/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/lib:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/stubdata:/C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/tools/ctestfw:$PATH  /C/Users/LeanderSchulten/git_projects/vcpkg/vcpkg_installed/x64-windows/tools/icu/bin/pkgdata -p uconvmsg -O pkgdata.inc -m static -s uconvmsg -d uconvmsg -T uconvmsg uconvmsg/uconvmsg.lst
Makefile:144: update target 'uconv.1' due to: ../.././../src/c-69_1-src-86e71a956d.clean/source/extra/uconv/uconv.1.in pkgdata.inc
cd ../.. \
 && CONFIG_FILES=extra/uconv/uconv.1 CONFIG_HEADERS= /bin/sh ./config.status
pkgdata: bash -c "x86_64-w64-mingw32-gcc.exe   -DU_DEBUG=1 -DHAVE_DLOPEN=0 -DU_HAVE_MMAP=0 -DU_HAVE_STRTOD_L=0  -DU_STATIC_IMPLEMENTATION -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -DU_ATTRIBUTE_DEPRECATED= -g -std=c11 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -mthreads  -c -I../.././../src/c-69_1-src-86e71a956d.clean/source/common -I../../common -DPIC  -o uconvmsg\uconvmsg_dat.o uconvmsg\uconvmsg_dat.S"
config.status: creating extra/uconv/uconv.1
make[2]: Leaving directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/extra/uconv'
make[1]: Leaving directory '/c/Users/LeanderSchulten/git_projects/vcpkg/buildtrees/icu/x64-mingw-static-dbg/extra'

build-x64-mingw-static-dbg-err.log
C:\Qt\Tools\mingw810_64\bin\ar.exe: creating libicudtd.a
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/rbbi.cpp:31:
.././../src/c-69_1-src-86e71a956d.clean/source/common/rbbi.cpp: In member function 'void icu_69::RuleBasedBreakIterator::init(UErrorCode&)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'initializedUText' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/rbbi.cpp:329:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(&fText, &initializedUText, sizeof(UText));
     ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cstring.h:31,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv2022.cpp:44:
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv2022.cpp: In function 'void UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC_IBM(UConverterToUnicodeArgs*, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:65:18: warning: the address of 'subArgs' will never be NULL [-Waddress]
     U_ASSERT(dst != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:65:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(dst != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv2022.cpp:2591:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(&subArgs, args, minArgsSize);
     ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cstring.h:31,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv_ct.cpp:30:
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv_ct.cpp: In function 'void UConverter_toUnicode_CompoundText_OFFSETS(UConverterToUnicodeArgs*, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:65:18: warning: the address of 'subArgs' will never be NULL [-Waddress]
     U_ASSERT(dst != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:65:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(dst != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv_ct.cpp:489:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(&subArgs, args, minArgsSize);
     ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv_io.cpp:41:
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv_io.cpp: In function 'UEnumeration* ucnv_openStandardNames_69(const char*, const char*, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'gEnumAliases' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv_io.cpp:854:13: note: in expansion of macro 'uprv_memcpy'
             uprv_memcpy(myEnum, &gEnumAliases, sizeof(UEnumeration));
             ^~~~~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv_io.cpp: In function 'UEnumeration* ucnv_openAllNames_69(UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'gEnumAllConverters' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnv_io.cpp:1074:9: note: in expansion of macro 'uprv_memcpy'
         uprv_memcpy(myEnum, &gEnumAllConverters, sizeof(UEnumeration));
         ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/ucptrie.cpp:17:
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucptrie.cpp: In function 'UCPTrie* ucptrie_openFromBinary_69(UCPTrieType, UCPTrieValueWidth, const void*, int32_t, int32_t*, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'tempTrie' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucptrie.cpp:105:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(trie, &tempTrie, sizeof(tempTrie));
     ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/ucnvsel.cpp:42:
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnvsel.cpp: In function 'int32_t ucnvsel_serialize_69(const UConverterSelector*, void*, int32_t, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'dataInfo' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnvsel.cpp:309:3: note: in expansion of macro 'uprv_memcpy'
   uprv_memcpy(&header.info, &dataInfo, sizeof(dataInfo));
   ^~~~~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'header' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucnvsel.cpp:331:3: note: in expansion of macro 'uprv_memcpy'
   uprv_memcpy(p, &header, sizeof(header));
   ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/charstr.h:20,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/ucurr.cpp:23:
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucurr.cpp: In function 'UEnumeration* ucurr_openISOCurrencies_69(uint32_t, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'gEnumCurrencyList' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ucurr.cpp:2252:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(myEnum, &gEnumCurrencyList, sizeof(UEnumeration));
     ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/bytesinkutil.h:10,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/uloc.cpp:40:
.././../src/c-69_1-src-86e71a956d.clean/source/common/uloc.cpp: In function 'UEnumeration* uloc_openKeywordList_69(const char*, int32_t, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'gKeywordsEnum' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/uloc.cpp:1382:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(result.getAlias(), &gKeywordsEnum, sizeof(UEnumeration));
     ^~~~~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/unistr.cpp:1979:13: warning: 'void uprv_UnicodeStringDummy()' defined but not used [-Wunused-function]
 static void uprv_UnicodeStringDummy(void) {
             ^~~~~~~~~~~~~~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/charstr.h:20,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/uresbund.cpp:27:
.././../src/c-69_1-src-86e71a956d.clean/source/common/uresbund.cpp: In function 'UEnumeration* ures_openAvailableLocales_69(const char*, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'gLocalesEnum' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/uresbund.cpp:2579:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(en, &gLocalesEnum, sizeof(UEnumeration));
     ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/usprep.cpp:30:
.././../src/c-69_1-src-86e71a956d.clean/source/common/usprep.cpp: In function 'UBool loadData(UStringPrepProfile*, const char*, const char*, const char*, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of '_sprepTrie' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/usprep.cpp:266:9: note: in expansion of macro 'uprv_memcpy'
         uprv_memcpy(&profile->sprepTrie, &_sprepTrie, sizeof(UTrie));
         ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cstring.h:31,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/ustrenum.cpp:20:
.././../src/c-69_1-src-86e71a956d.clean/source/common/ustrenum.cpp: In function 'UEnumeration* uenum_openFromStringEnumeration_69(icu_69::StringEnumeration*, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'USTRENUM_VT' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ustrenum.cpp:270:13: note: in expansion of macro 'uprv_memcpy'
             uprv_memcpy(result, &USTRENUM_VT, sizeof(USTRENUM_VT));
             ^~~~~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ustrenum.cpp: In function 'UEnumeration* uenum_openCharStringsEnumeration_69(const char* const*, int32_t, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'UCHARSTRENUM_VT' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ustrenum.cpp:369:13: note: in expansion of macro 'uprv_memcpy'
             uprv_memcpy(result, &UCHARSTRENUM_VT, sizeof(UCHARSTRENUM_VT));
             ^~~~~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ustrenum.cpp: In function 'UEnumeration* uenum_openUCharStringsEnumeration_69(const UChar* const*, int32_t, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'UCHARSTRENUM_U_VT' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/ustrenum.cpp:388:13: note: in expansion of macro 'uprv_memcpy'
             uprv_memcpy(result, &UCHARSTRENUM_U_VT, sizeof(UCHARSTRENUM_U_VT));
             ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/utrie2.cpp:34:
.././../src/c-69_1-src-86e71a956d.clean/source/common/utrie2.cpp: In function 'UTrie2* utrie2_openFromSerialized_69(UTrie2ValueBits, const void*, int32_t, int32_t*, UErrorCode*)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'tempTrie' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/utrie2.cpp:200:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(trie, &tempTrie, sizeof(tempTrie));
     ^~~~~~~~~~~
C:\Qt\Tools\mingw810_64\bin\ar.exe: creating ../lib/libicuucd.a
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/i18n/collationdatawriter.cpp:21:
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/collationdatawriter.cpp: In static member function 'static int32_t icu_69::CollationDataWriter::write(UBool, const uint8_t*, const icu_69::CollationData&, const icu_69::CollationSettings&, const void*, int32_t, int32_t*, uint8_t*, int32_t, UErrorCode&)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'icu_69::dataInfo' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/collationdatawriter.cpp:186:9: note: in expansion of macro 'uprv_memcpy'
         uprv_memcpy(&header.info, &dataInfo, sizeof(UDataInfo));
         ^~~~~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'header' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/collationdatawriter.cpp:204:13: note: in expansion of macro 'uprv_memcpy'
             uprv_memcpy(dest, &header, sizeof(header));
             ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/i18n/collationweights.cpp:27:
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/collationweights.cpp: In member function 'UBool icu_69::CollationWeights::getWeightRanges(uint32_t, uint32_t)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'middle' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/collationweights.cpp:374:9: note: in expansion of macro 'uprv_memcpy'
         uprv_memcpy(ranges, &middle, sizeof(WeightRange));
         ^~~~~~~~~~~
In file included from .././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from .././../src/c-69_1-src-86e71a956d.clean/source/i18n/number_decimalquantity.cpp:14:
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/number_decimalquantity.cpp: In member function 'void icu_69::number::impl::DecimalQuantity::_setToDoubleFast(double)':
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:65:18: warning: the address of 'ieeeBits' will never be NULL [-Waddress]
     U_ASSERT(dst != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:65:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(dst != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/number_decimalquantity.cpp:451:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(&ieeeBits, &n, sizeof(n));
     ^~~~~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'n' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/number_decimalquantity.cpp:451:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(&ieeeBits, &n, sizeof(n));
     ^~~~~~~~~~~
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/wintzimpl.cpp: In function 'UBool getSystemTimeInformation(icu_69::TimeZone*, SYSTEMTIME&, SYSTEMTIME&, int32_t&, int32_t&, int32_t&)':
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/wintzimpl.cpp:70:35: warning: comparison is always false due to limited range of data type [-Wtype-limits]
             if (standardDate.wDay < 0) {
                 ~~~~~~~~~~~~~~~~~~^~~
.././../src/c-69_1-src-86e71a956d.clean/source/i18n/wintzimpl.cpp:91:35: warning: comparison is always false due to limited range of data type [-Wtype-limits]
             if (daylightDate.wDay < 0) {
                 ~~~~~~~~~~~~~~~~~~^~~
C:\Qt\Tools\mingw810_64\bin\ar.exe: creating ../lib/libicuind.a
C:\Qt\Tools\mingw810_64\bin\ar.exe: creating ../lib/libicuiod.a
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/toolutil/pkg_gencmn.cpp: In function 'void fixDirToTreePath(char*)':
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/toolutil/pkg_gencmn.cpp:569:14: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
     for(t=s;t=uprv_strchr(t,U_FILE_SEP_CHAR);) {
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/toolutil/pkg_genc.cpp: In function 'void getArchitecture(uint16_t*, uint16_t*, UBool*, const char*)':
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/toolutil/pkg_genc.cpp:855:14: warning: comparison of integer expressions of different signedness: 'int32_t' {aka 'int'} and 'long long unsigned int' [-Wsign-compare]
     if(length<sizeof(IMAGE_FILE_HEADER)) {
        ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../.././../src/c-69_1-src-86e71a956d.clean/source/tools/toolutil/pkg_genc.cpp:44:
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/toolutil/pkg_genc.cpp: In function 'void writeObjectCode(const char*, const char*, const char*, const char*, const char*, char*, size_t, UBool)':
../.././../src/c-69_1-src-86e71a956d.clean/source/common/cstring.h:43:70: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 8 bytes from a string of the same length [-Wstringop-truncation]
 #define uprv_strncpy(dst, src, size) U_STANDARD_CPP_NAMESPACE strncpy(dst, src, size)
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/toolutil/pkg_genc.cpp:1283:5: note: in expansion of macro 'uprv_strncpy'
     uprv_strncpy((char *)objHeader.sections[0].Name, ".drectve", 8);
     ^~~~~~~~~~~~
../.././../src/c-69_1-src-86e71a956d.clean/source/common/cstring.h:43:70: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 6 bytes from a string of the same length [-Wstringop-truncation]
 #define uprv_strncpy(dst, src, size) U_STANDARD_CPP_NAMESPACE strncpy(dst, src, size)
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/toolutil/pkg_genc.cpp:1289:5: note: in expansion of macro 'uprv_strncpy'
     uprv_strncpy((char *)objHeader.sections[1].Name, ".rdata", 6);
     ^~~~~~~~~~~~
C:\Qt\Tools\mingw810_64\bin\ar.exe: creating ../../lib/libicutud.a
C:\Qt\Tools\mingw810_64\bin\ar.exe: creating libicutestd.a
In file included from ../.././../src/c-69_1-src-86e71a956d.clean/source/common/uassert.h:32,
                 from ../.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:34,
                 from ../.././../src/c-69_1-src-86e71a956d.clean/source/common/charstr.h:20,
                 from ../.././../src/c-69_1-src-86e71a956d.clean/source/tools/makeconv/makeconv.cpp:23:
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/makeconv/makeconv.cpp: In function 'int main(int, char**)':
../.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:18: warning: the address of 'icuVersion' will never be NULL [-Waddress]
     U_ASSERT(src != NULL); \
../.././../src/c-69_1-src-86e71a956d.clean/source/common/cmemory.h:66:5: note: in expansion of macro 'U_ASSERT'
     U_ASSERT(src != NULL); \
     ^~~~~~~~
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/makeconv/makeconv.cpp:210:5: note: in expansion of macro 'uprv_memcpy'
     uprv_memcpy(&dataInfo.dataVersion, &icuVersion, sizeof(UVersionInfo));
     ^~~~~~~~~~~
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/pkgdata/pkgdata.cpp: In function 'int32_t pkg_getPkgDataPath(UBool, UOption*)':
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/pkgdata/pkgdata.cpp:2203:41: warning: unused parameter 'verbose' [-Wunused-parameter]
 static int32_t pkg_getPkgDataPath(UBool verbose, UOption *option) {
                                   ~~~~~~^~~~~~~
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/pkgdata/pkgdata.cpp:2203:59: warning: unused parameter 'option' [-Wunused-parameter]
 static int32_t pkg_getPkgDataPath(UBool verbose, UOption *option) {
                                                  ~~~~~~~~~^~~~~~
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/pkgdata/pkgdata.cpp: At global scope:
../.././../src/c-69_1-src-86e71a956d.clean/source/tools/pkgdata/pkgdata.cpp:1303:16: warning: 'int32_t pkg_archiveLibrary(const char*, const char*, UBool)' defined but not used [-Wunused-function]
 static int32_t pkg_archiveLibrary(const char *targetDir, const char *version, UBool reverseExt) {
                ^~~~~~~~~~~~~~~~~~
C:\Qt\Tools\mingw810_64\bin\ar.exe: creating ../lib/icudtd.a
x86_64-w64-mingw32-gcc.exe: error: uconvmsguconvmsg_dat.S: No such file or directory
x86_64-w64-mingw32-gcc.exe: fatal error: no input files
compilation terminated.
-- return status = 1
Error creating with assembly code. Failed command: x86_64-w64-mingw32-gcc.exe   -DU_DEBUG=1 -DHAVE_DLOPEN=0 -DU_HAVE_MMAP=0 -DU_HAVE_STRTOD_L=0  -DU_STATIC_IMPLEMENTATION -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -DU_ATTRIBUTE_DEPRECATED= -g -std=c11 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -mthreads  -c -I../.././../src/c-69_1-src-86e71a956d.clean/source/common -I../../common -DPIC  -o uconvmsg\uconvmsg_dat.o uconvmsg\uconvmsg_dat.S
Error generating assembly code for data.
make[2]: *** [Makefile:158: uconvmsg/uconvmsg.a] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:49: all-recursive] Error 2
make: *** [Makefile:153: all-recursive] Error 2

@autoantwort
Copy link
Copy Markdown
Contributor

autoantwort commented Sep 19, 2021

I also have found https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-icu which can be a useful reference for patches

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 19, 2021

Hm I still have build errors with that in comparison to #18175.

Failed command: x86_64-w64-mingw32-gcc.exe  ...  -o uconvmsg\uconvmsg_dat.o uconvmsg\uconvmsg_dat.S

Basically, it is using unprotected backslash as a path separator in the failing bash command line. (Of course, it doesn't happen on my Linux box, but I will retry on Windows once more.)

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 19, 2021

@autoantwort Both x64-mingw-static and x64-mingw-dynamic build for me also on Windows, host triplet == target triplet.

@autoantwort
Copy link
Copy Markdown
Contributor

Yeah I have not explicitly set the host triplet, so it is x64-windows for me

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 19, 2021

Yeah I have not explicitly set the host triplet, so it is x64-windows for me

So this is the difference...

@autoantwort
Copy link
Copy Markdown
Contributor

Yeah seems that this is the problem. Would be good if it works even when you don't change the host triplet, but imho this is not so important. Imho we need a better host triplet selection.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 19, 2021

#18175 has changes around --with-cross-build=${_VCPKG_TOOL_PATH}") in portfile.cmake, with a comment

for mingw on windows we must not set --with-cross-build, see unicode-org/icu#1733 (comment)

Could this change be the solution? I cannot test this, due to absence of a windows triplet toolchain.

@autoantwort
Copy link
Copy Markdown
Contributor

Could this change be the solution? I cannot test this, due to absence of a windows triplet toolchain.

Probably, ist schon etwas länger her. I can test it

@autoantwort
Copy link
Copy Markdown
Contributor

Yeah that fixes the issue

@dg0yt dg0yt marked this pull request as ready for review September 20, 2021 03:44
@PhoebeHui PhoebeHui added the category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team. label Sep 22, 2021
@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 22, 2021

When this is merged, I can finally submit changes for building Qt5 with mingw, on Windows...

@longnguyen2004
Copy link
Copy Markdown
Contributor

Cross-compiling is a bit muddy right now, due to pkgdata using settings for the host (through compile time macros), instead of the target (through Makefile.inc, command line switches, etc.). Fixing it would require a major refactoring of pkgdata, replacing every macro with something else that we can control at build time. I discussed this over at https://unicode-org.atlassian.net/browse/ICU-21633, but so far nothing has been done about it. Because of that, I think we shouldn't support cross-compiling for icu for now.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 22, 2021

I think we shouldn't support cross-compiling for icu for now.

Okay. But this is unrelated to this PR. This is for host == target == "mingw".

@JackBoosY JackBoosY added the info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. label Sep 23, 2021
@JackBoosY
Copy link
Copy Markdown
Contributor

JackBoosY commented Sep 23, 2021

Cross-compiling is a bit muddy right now, due to pkgdata using settings for the host (through compile time macros), instead of the target (through Makefile.inc, command line switches, etc.). Fixing it would require a major refactoring of pkgdata, replacing every macro with something else that we can control at build time. I discussed this over at https://unicode-org.atlassian.net/browse/ICU-21633, but so far nothing has been done about it. Because of that, I think we shouldn't support cross-compiling for icu for now.

BTW, I'm handling the issue about building icu:x64-windows using my changes in #20165 but met some errors:

  1. The original vcpkg_configure_cmake did not set ar.exe correctly, causing some options to be disabled during icu build.
  2. VCPKG_DETECTED_ENV_LIBPATH has not been added to LDFLAGS, resulting in the windows library cannot be found.
  3. When I add VCPKG_DETECTED_ENV_LIBPATH to LDFLAGS, paths with spaces cannot be recognized correctly, even if double quotes or other translations are added:
configure:3083: cl.exe -nologo -W3 -utf-8 -MP -MDd -Z7 -Ob0 -Od -Xcompiler -RTC1 -DWIN32 -D_WINDOWS -D_DEBUG /LIBPATH:G:/20165/vcpkg/installed/x64-windows/debug/lib /LIBPATH:G:/20165/vcpkg/installed/x64-windows/debug/lib/manual-link /LIBPATH:"C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/ATLMFC/lib/x64" /LIBPATH:"C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/lib/x64" /LIBPATH:"C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/lib/x86/store/references" /LIBPATH:"C:/Program Files (x86)/Windows Kits/10/UnionMetadata/10.0.19041.0" /LIBPATH:"C:/Program Files (x86)/Windows Kits/10/References/10.0.19041.0" /LIBPATH:"C:/Windows/Microsoft.NET/Framework64/v4.0.30319" conftest.c kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib >&5
cl : Command line warning D9002 : ignoring unknown option '-Xcompiler'
cl : Command line warning D9002 : ignoring unknown option '/LIBPATH:G:/20165/vcpkg/installed/x64-windows/debug/lib'
cl : Command line warning D9002 : ignoring unknown option '/LIBPATH:G:/20165/vcpkg/installed/x64-windows/debug/lib/manual-link'
cl : Command line warning D9002 : ignoring unknown option '/LIBPATH:"C:/Program'
cl : Command line warning D9002 : ignoring unknown option '/LIBPATH:"C:/Program'
cl : Command line warning D9002 : ignoring unknown option '/LIBPATH:"C:/Program'
cl : Command line warning D9002 : ignoring unknown option '/LIBPATH:"C:/Program'
cl : Command line warning D9002 : ignoring unknown option '/LIBPATH:"C:/Program'
cl : Command line warning D9002 : ignoring unknown option '/LIBPATH:"C:/Windows/Microsoft.NET/Framework64/v4.0.30319"'
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Microsoft', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Visual', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/ATLMFC/lib/x64"', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Microsoft', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Visual', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/lib/x64"', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Microsoft', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Visual', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/lib/x86/store/references"', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Windows', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Kits/10/UnionMetadata/10.0.19041.0"', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Windows', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Kits/10/References/10.0.19041.0"', object file assumed

@longnguyen2004
Copy link
Copy Markdown
Contributor

I'm guessing we have to replace / options with - options, since (ba)sh might be messing around with it somehow (just my speculation, I don't do tests with MSVC often)

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 23, 2021

I'm guessing we have to replace / options with - options, since (ba)sh might be messing around with it somehow (just my speculation, I don't do tests with MSVC often)

(Ba)sh doesn't mess with /. But despite using autoconf, icu doesn't seem to use libtool, so it probably has a different set of cross-platform quirks.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 23, 2021

/LIBPATH:"C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/lib/x64"

@JackBoosY Double quotes within an argument call for trouble, in particular in a Windows + MSYS environment. It means different things to Windows and POSIX. Whenever possible, quote full parameters.

@JackBoosY
Copy link
Copy Markdown
Contributor

@longnguyen2004 @dg0yt Also, it doesn't work:

configure:3083: cl.exe -nologo -W3 -utf-8 -MP -MDd -Z7 -Ob0 -Od -Xcompiler -RTC1 -DWIN32 -D_WINDOWS -D_DEBUG -LIBPATH:G:/20165/vcpkg/installed/x64-windows/debug/lib -LIBPATH:G:/20165/vcpkg/installed/x64-windows/debug/lib/manual-link -LIBPATH:C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/ATLMFC/lib/x64 -LIBPATH:C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/lib/x64 -LIBPATH:C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/lib/x86/store/references -LIBPATH:C:/Program Files (x86)/Windows Kits/10/UnionMetadata/10.0.19041.0 -LIBPATH:C:/Program Files (x86)/Windows Kits/10/References/10.0.19041.0 -LIBPATH:C:/Windows/Microsoft.NET/Framework64/v4.0.30319 conftest.c kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib >&5
cl : Command line warning D9002 : ignoring unknown option '-Xcompiler'
cl : Command line warning D9002 : ignoring unknown option '-LIBPATH:G:/20165/vcpkg/installed/x64-windows/debug/lib'
cl : Command line warning D9002 : ignoring unknown option '-LIBPATH:G:/20165/vcpkg/installed/x64-windows/debug/lib/manual-link'
cl : Command line warning D9002 : ignoring unknown option '-LIBPATH:C:/Program'
cl : Command line warning D9002 : ignoring unknown option '-LIBPATH:C:/Program'
cl : Command line warning D9002 : ignoring unknown option '-LIBPATH:C:/Program'
cl : Command line warning D9002 : ignoring unknown option '-LIBPATH:C:/Program'
cl : Command line warning D9002 : ignoring unknown option '-LIBPATH:C:/Program'
cl : Command line warning D9002 : ignoring unknown option '-LIBPATH:C:/Windows/Microsoft.NET/Framework64/v4.0.30319'
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Microsoft', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Visual', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/ATLMFC/lib/x64', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Microsoft', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Visual', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/lib/x64', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Microsoft', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Visual', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Studio/2017/Enterprise/VC/Tools/MSVC/14.16.27023/lib/x86/store/references', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Windows', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Kits/10/UnionMetadata/10.0.19041.0', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Files', object file assumed
cl : Command line warning D9024 : unrecognized source file type '(x86)/Windows', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'Kits/10/References/10.0.19041.0', object file assumed

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 23, 2021

@longnguyen2004 @dg0yt Also, it doesn't work:

@JackBoosY Is this related to this PR, #20253?

@JackBoosY
Copy link
Copy Markdown
Contributor

@dg0yt Nope, I just found that in my PR #20165.
Here is the configure log using latest master:

...
checking for ar... no
...
*** WARNING: Archiver ar not found. Set AR= or fix PATH. Some builds (such as static) may fail.
checking the version of "make"... 4.3 (we wanted at least 3.80)
ok

If the result of the above commands looks okay to you, go to the directory
source in the ICU distribution to build ICU. Please remember that ICU needs
GNU make to build properly...

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Sep 23, 2021

@JackBoosY I would prefer to discuss #20165 issues in #20165.

@dg0yt dg0yt mentioned this pull request Sep 23, 2021
@BillyONeal BillyONeal merged commit d60da45 into microsoft:master Sep 24, 2021
@BillyONeal
Copy link
Copy Markdown
Member

Thanks for MinGW-ing :)

@dg0yt dg0yt deleted the icu-mingw branch December 12, 2021 09:15
@srl295
Copy link
Copy Markdown

srl295 commented Jan 6, 2023

is there anything here that should be upstreamed to ICU? unicode-org/icu#1733 is there but the author is not responding.

@dg0yt
Copy link
Copy Markdown
Contributor Author

dg0yt commented Jan 6, 2023

Some filesystem layout patterns might be specifc for vcpkg.
Before upstreaming, we need an update to this port first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:community-triplet A PR or issue related to community triplets not officially validated by the vcpkg team. info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants