diff --git a/README.md b/README.md index 187e74d2..f2d611c1 100644 --- a/README.md +++ b/README.md @@ -24,19 +24,19 @@ Run the top-level [build script](build.sh) with the `--help` parameter for help. | [freetype] | 2.11.0 | [freetype Licence] (BSD-like) | | [fribidi] | 1.0.10 | LGPLv3 | | [gdk-pixbuf] | 2.42.6 | LGPLv3 | -| [glib] | 2.69.2 | LGPLv3 | -| [harfbuzz] | 2.9.0 | MIT Licence | +| [glib] | 2.70.0 | LGPLv3 | +| [harfbuzz] | 3.0.0 | MIT Licence | | [lcms] | 2.12 | MIT Licence | -| [libexif] | 0.6.22 | LGPLv3 | +| [libexif] | 0.6.23 | LGPLv3 | | [libffi] | 3.4.2 | MIT Licence | | [libgsf] | 1.14.47 | LGPLv3 | | [libheif] | 1.12.0 | LGPLv3 | | [libimagequant] | 2.4.1ยน | BSD 2-Clause | | [libpng] | 1.6.37 | [libpng License version 2] | -| [librsvg] | 2.51.4 | LGPLv3 | +| [librsvg] | 2.52.0 | LGPLv3 | | [libspng] | 0.6.3 | BSD 2-Clause | | [libtiff] | 4.3.0 | [libtiff License] (BSD-like) | -| [libvips] | 8.11.3 | LGPLv3 | +| [libvips] | 8.11.4 | LGPLv3 | | [libwebp] | 1.2.1 | New BSD License | | [libxml2] | 2.9.12 | MIT Licence | | [mozjpeg] | 4.0.3 | [zlib License, IJG License, BSD-3-Clause] | @@ -91,9 +91,9 @@ Same as libvips-web + these extra dependencies: |-----------------|-----------|--------------------------------------------------------------| | [brotli] | 1.0.9 | MIT Licence | | [cfitsio] | 4.0.0 | BSD-like | -| [fftw] | 3.3.9 | GPLv2 | +| [fftw] | 3.3.10 | GPLv2 | | [highway] | 0.14.0 | Apache-2.0 License | -| [imagemagick] | 6.9.12-20 | [ImageMagick License] (Apache-2.0-like) | +| [imagemagick] | 6.9.12-23 | [ImageMagick License] (Apache-2.0-like) | | [imath] | 3.1.2 | BSD 3-Clause | | [libjxl] | 0.5 | BSD 3-Clause | | [matio] | 1.5.21 | BSD 2-Clause | diff --git a/build.sh b/build.sh index dc5b828a..f68d1f2c 100755 --- a/build.sh +++ b/build.sh @@ -126,6 +126,10 @@ fi target="$arch-w64-mingw32.$type.$threads${unwind:+.$unwind}" +if [ "$with_debug" = "true" ]; then + target+=".debug" +fi + # Is docker available? if ! [ -x "$(command -v docker)" ]; then echo "ERROR: Please install docker." >&2 diff --git a/build/build.sh b/build/build.sh index b24201ca..ae8df7d2 100755 --- a/build/build.sh +++ b/build/build.sh @@ -51,7 +51,7 @@ fi # Always checkout a particular revision which will successfully build. # This ensures that it will not suddenly break a build. # Note: Must be regularly updated. -revision="74dd24ca82a5e48ccaf0b549eaef1db07ed382ad" +revision="4d7331c95f14a9db5a66033c5c81d2e8dfb343f8" initialize=false if [ -f "$mxe_dir/Makefile" ]; then diff --git a/build/libexif.mk b/build/libexif.mk index df5daa52..71bd75ae 100644 --- a/build/libexif.mk +++ b/build/libexif.mk @@ -2,18 +2,15 @@ PKG := libexif $(PKG)_WEBSITE := https://libexif.github.io/ $(PKG)_DESCR := A library for parsing, editing, and saving EXIF data. $(PKG)_IGNORE := -$(PKG)_VERSION := 0.6.22 -$(PKG)_CHECKSUM := 5048f1c8fc509cc636c2f97f4b40c293338b6041a5652082d5ee2cf54b530c56 +$(PKG)_VERSION := 0.6.23 +$(PKG)_CHECKSUM := a740a99920eb81ae0aa802bb46e683ce6e0cde061c210f5d5bde5b8572380431 $(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch))) $(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION) $(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz -$(PKG)_GH_CONF := libexif/libexif/releases,libexif-,-release,,_,.tar.xz +$(PKG)_GH_CONF := libexif/libexif/releases,v,,,,.tar.xz $(PKG)_DEPS := cc define $(PKG)_BUILD - # configure script is ancient so regenerate - cd '$(SOURCE_DIR)' && autoreconf -fi - cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \ $(MXE_CONFIGURE_OPTS) \ --disable-nls \ diff --git a/build/libimagequant.mk b/build/libimagequant.mk index 7fff3f01..6f43138f 100644 --- a/build/libimagequant.mk +++ b/build/libimagequant.mk @@ -3,7 +3,7 @@ $(PKG)_WEBSITE := https://github.com/lovell/libimagequant $(PKG)_DESCR := libimagequant v2.4.1 fork (BSD 2-Clause) $(PKG)_IGNORE := $(PKG)_VERSION := 2.4.1 -$(PKG)_CHECKSUM := efbd9b830033f0ddb91a5764e1f063bdcf87a5c7be663755ce3bb4166f86ea4a +$(PKG)_CHECKSUM := 9a808f7dde0b3b9a51632ec903b8a36f4342b95e66496c0919b3619cf03e022f $(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch))) $(PKG)_GH_CONF := lovell/libimagequant/tags,v $(PKG)_DEPS := cc diff --git a/build/overrides.mk b/build/overrides.mk index 2167031b..9de3d14c 100644 --- a/build/overrides.mk +++ b/build/overrides.mk @@ -40,14 +40,14 @@ matio_FILE := matio-$(matio_VERSION).tar.gz matio_URL := https://github.com/tbeu/matio/releases/download/v$(matio_VERSION)/$(matio_FILE) # upstream version is 7, we want ImageMagick 6 -imagemagick_VERSION := 6.9.12-20 -imagemagick_CHECKSUM := 8fa7addb7eac2dd417c7fbed46ff9dd5614abf7cefea4d786375306bec2659b1 +imagemagick_VERSION := 6.9.12-23 +imagemagick_CHECKSUM := 17fd6629d4e14f0cd8432ff1a4f1d65ec312549dcfd409eb062b0966e314e7ac imagemagick_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/imagemagick-[0-9]*.patch))) imagemagick_GH_CONF := ImageMagick/ImageMagick6/tags # upstream version is 2.40.5 -librsvg_VERSION := 2.51.4 -librsvg_CHECKSUM := 0b87d61de9b973aac1fdb9583368b9a893e67f5f7cb75c3e8f7de142557aca00 +librsvg_VERSION := 2.52.0 +librsvg_CHECKSUM := bd821fb3e16494b61f5185addd23b726b064f203122b3ab4b3d5d7a44e6bf393 librsvg_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/librsvg-[0-9]*.patch))) librsvg_SUBDIR := librsvg-$(librsvg_VERSION) librsvg_FILE := librsvg-$(librsvg_VERSION).tar.xz @@ -72,8 +72,8 @@ fribidi_FILE := fribidi-$(fribidi_VERSION).tar.xz fribidi_URL := https://github.com/fribidi/fribidi/releases/download/v$(fribidi_VERSION)/$(fribidi_FILE) # upstream version is 2.50.2 -glib_VERSION := 2.69.2 -glib_CHECKSUM := a62249e35a8635175a697b3215f1df2b89e0fbb4adb520dcbe21a3ae1ebb8882 +glib_VERSION := 2.70.0 +glib_CHECKSUM := 200d7df811c5ba634afbf109f14bb40ba7fde670e89389885da14e27c0840742 glib_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/glib-[0-9]*.patch))) glib_SUBDIR := glib-$(glib_VERSION) glib_FILE := glib-$(glib_VERSION).tar.xz @@ -131,8 +131,8 @@ fontconfig_FILE := fontconfig-$(fontconfig_VERSION).tar.xz fontconfig_URL := https://www.freedesktop.org/software/fontconfig/release/$(fontconfig_FILE) # upstream version is 3.3.8 -fftw_VERSION := 3.3.9 -fftw_CHECKSUM := bf2c7ce40b04ae811af714deb512510cc2c17b9ab9d6ddcf49fe4487eea7af3d +fftw_VERSION := 3.3.10 +fftw_CHECKSUM := 56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467 fftw_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/fftw-[0-9]*.patch))) fftw_SUBDIR := fftw-$(fftw_VERSION) fftw_FILE := fftw-$(fftw_VERSION).tar.gz @@ -156,14 +156,14 @@ nasm_URL := https://www.nasm.us/pub/nasm/releasebuilds/$(nasm_VERSION)/$(na nasm_URL_2 := https://sources.voidlinux.org/nasm-$(nasm_VERSION)/$(nasm_FILE) # upstream version is 9.0.0 -# Update MinGW-w64 to 4613211 -# https://github.com/mirror/mingw-w64/tarball/4613211c6bfcb220dec9a116a76c5c9aff1939a3 -mingw-w64_VERSION := 4613211 -mingw-w64_CHECKSUM := 8062c83070a599b3480e1ee128438350d476e5f79d53a2130b6a9502aa9bb6aa +# Update MinGW-w64 to 586baa1 +# https://github.com/mingw-w64/mingw-w64/tarball/586baa17bb41dd78addd8cbb6415cfd24d24e925 +mingw-w64_VERSION := 586baa1 +mingw-w64_CHECKSUM := 24d0892f9f96e998abd610f0ec5194f1c4f60400b887045360992083dc8b549f mingw-w64_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/mingw-w64-[0-9]*.patch))) -mingw-w64_SUBDIR := mirror-mingw-w64-$(mingw-w64_VERSION) -mingw-w64_FILE := mirror-mingw-w64-$(mingw-w64_VERSION).tar.gz -mingw-w64_URL := https://github.com/mirror/mingw-w64/tarball/$(mingw-w64_VERSION)/$(mingw-w64_FILE) +mingw-w64_SUBDIR := mingw-w64-mingw-w64-$(mingw-w64_VERSION) +mingw-w64_FILE := mingw-w64-mingw-w64-$(mingw-w64_VERSION).tar.gz +mingw-w64_URL := https://github.com/mingw-w64/mingw-w64/tarball/$(mingw-w64_VERSION)/$(mingw-w64_FILE) ## Patches that we override with our own @@ -245,6 +245,22 @@ cfitsio_DEPS := cc zlib ## Override build scripts +# Unexport target specific compiler / linker flags +define gendef_BUILD + $(eval unexport CFLAGS) + $(eval unexport CXXFLAGS) + $(eval unexport LDFLAGS) + + cd '$(BUILD_DIR)' && '$(SOURCE_DIR)/mingw-w64-tools/gendef/configure' \ + CFLAGS='-Wno-implicit-fallthrough' \ + --host='$(BUILD)' \ + --build='$(BUILD)' \ + --prefix='$(PREFIX)/$(TARGET)' \ + --target='$(TARGET)' + $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' + $(MAKE) -C '$(BUILD_DIR)' -j 1 $(INSTALL_STRIP_TOOLCHAIN) +endef + # libasprintf isn't needed, so build with --disable-libasprintf # this definition is for reference purposes only, we use the # proxy-libintl plugin instead. @@ -615,7 +631,7 @@ define cairo_BUILD --enable-fc \ --enable-ft \ --without-x \ - CPPFLAGS="$(if $(BUILD_STATIC),-DCAIRO_WIN32_STATIC_BUILD)" \ + $(if $(BUILD_STATIC), CPPFLAGS='-DCAIRO_WIN32_STATIC_BUILD') \ ax_cv_c_float_words_bigendian=no $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' $(MXE_DISABLE_PROGRAMS) diff --git a/build/package-vipsdev.sh b/build/package-vipsdev.sh index 4132650e..09cb6f56 100755 --- a/build/package-vipsdev.sh +++ b/build/package-vipsdev.sh @@ -95,16 +95,21 @@ strip=$target.$deps-strip # Directories install_dir=$mxe_prefix/$target.$deps bin_dir=$install_dir/bin -module_dir=$install_dir/bin/vips-modules-$vips_version +module_dir=$install_dir/lib/vips-modules-$vips_version echo "Copying libvips and dependencies" -# Need to whitelist the Universal C Runtime (CRT) DLLs -# Can't do api-ms-win-crt-*-l1-1-0.dll, unfortunately -whitelist=(api-ms-win-crt-{conio,convert,environment,filesystem,heap,locale,math,multibyte,private,process,runtime,stdio,string,time,utility}-l1-1-0.dll) - -# CreateEnvironmentBlock, GetUserProfileDirectoryA, etc. -whitelist+=(userenv.dll) +if [ "$DEBUG" = "true" ]; then + # Whitelist ucrtbased.dll for debug builds + whitelist=(ucrtbased.dll) +else + # Whitelist the API set DLLs + # Can't do api-ms-win-crt-*-l1-1-0.dll, unfortunately + whitelist=(api-ms-win-crt-{conio,convert,environment,filesystem,heap,locale,math,multibyte,private,process,runtime,stdio,string,time,utility}-l1-1-0.dll) + + # CreateEnvironmentBlock, GetUserProfileDirectoryA, etc. + whitelist+=(userenv.dll) +fi # Copy libvips and dependencies with pe-util binaries=$(peldd $bin_dir/$target_dll --clear-path --path $bin_dir ${whitelist[@]/#/--wlist } --all) @@ -142,7 +147,7 @@ fi rm -rf $repackage_dir/share/{aclocal,bash-completion,cmake,config.site,doc,gdb,glib-2.0,gtk-2.0,gtk-doc,installed-tests,man,meson,thumbnailers,xml,zsh} rm -rf $repackage_dir/include/cairo -rm -rf $repackage_dir/lib/{*.so*,*cairo*,*gdk*,*_too.a,ldscripts,rustlib,xml2Conf.sh} +rm -rf $repackage_dir/lib/{*.so*,*cairo*,*gdk*,*_too.a,vips-modules-*,ldscripts,rustlib,xml2Conf.sh} rm -rf $repackage_dir/etc/bash_completion.d find $repackage_dir/lib -name "*.la" -exec rm -f {} \; diff --git a/build/patches/librsvg-arm.patch b/build/patches/librsvg-arm.patch index a8ce8d5c..6144ac06 100644 --- a/build/patches/librsvg-arm.patch +++ b/build/patches/librsvg-arm.patch @@ -9,15 +9,15 @@ index 1111111..2222222 100644 --- a/vendor/cfg-expr/.cargo-checksum.json +++ b/vendor/cfg-expr/.cargo-checksum.json @@ -1 +1 @@ --{"files":{"CHANGELOG.md":"7a8f2d73297811ac62bc09cac588d362b68bedce5a5a10e3aed9c3c524a9ad03","CODE_OF_CONDUCT.md":"ff8e424cc9ba55e10c0f83cda8bbd9034ffa6a299d589804292837aa7d50e098","CONTRIBUTING.md":"9faf3f2653e29aedf4c76ba6f4e45abb7c4f7733afc1b7448097781b03f10169","Cargo.lock":"71a95b37016b9121cf6a1ccc1eb2874a8f3e612aaa9a877d700cc09c35b54f14","Cargo.toml":"6c57ba309c8d4a1c7f1252eac6425608cd5380d68d2ab7843aebdaf38e57a283","LICENSE-APACHE":"8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90","LICENSE-MIT":"090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b","README.md":"ddadb8f143ccdece66fb5b214b9153354454654ace4d356dd88bcd57cb41fe76","deny.toml":"45508d1e9bec2496999a47bbddad5d5af1ca9cfb0ca5228d74fb011410abdc9a","examples/eval.rs":"22b25f2a1f149a30464fe5496f89d98e073a6a3be9f95076e966fca67051d440","release.toml":"ee6da5f2338cd2a49ec19a6a2d9a546bf650678053841b52f7da7759392d11bc","src/error.rs":"2a219746dea035d0981d8b5195d781454b02a68e8f205fe8420a219591ddbd23","src/expr/lexer.rs":"95fcdf902827fcccbc94af6052550b5070bc167c1d9c0b9bd5fb598f2b3380a3","src/expr/mod.rs":"1a95722810d912f9ba8b67f90196e377af83d4ab146627046fc477a6f8205a64","src/expr/parser.rs":"8d8997187b5c20d2c8b44a949dbe7eea5b0f2770bbde2e577aaab444495d7547","src/lib.rs":"e51945845b84352ea5f33d9a893ad4d9fdc2306b86ba38bc55fac44f562e5704","src/targets/builtins.rs":"a85aab060e43e4c0bcb50cac8840402d7f8688a5f2b98b8a80b94258b96f8bfa","src/targets/mod.rs":"f0bfd71021b3633be5d743bee526376a66d4ef4ece5a2cd5aa8a0ade5e6c8bee","tests/eval.rs":"a3d1bf7a98ca535f94a3d4e1325ff78cfb9c445377f64dbc2ea02072146fa328","tests/lexer.rs":"55109f29f4f3e257e969b53ee7823aeb50212abebbc55d1a67d7393ea42ce80b","tests/parser.rs":"b39f8878c14ac221cf27f0e5ca6bea4de402b188478b5e739ce9860c9914bd50"},"package":"30aa9e2ffbb838c6b451db14f3cd8e63ed622bf859f9956bc93845a10fafc26a"} +-{"files":{"CHANGELOG.md":"05ff5d348a9537ae85a86b833accc94c1c02c52e4b9a01332aeadb052946a9ac","CODE_OF_CONDUCT.md":"ff8e424cc9ba55e10c0f83cda8bbd9034ffa6a299d589804292837aa7d50e098","CONTRIBUTING.md":"9faf3f2653e29aedf4c76ba6f4e45abb7c4f7733afc1b7448097781b03f10169","Cargo.lock":"71e394a2324989908bb9f4f08a95b8d20bcaa43ed5fa40b20fc6b09c96c7fe1b","Cargo.toml":"0d5fb5612ac2425463f09954792aed237909617a3dfac162f6752b606260099b","LICENSE-APACHE":"8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90","LICENSE-MIT":"090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b","README.md":"8b6e97ace4b492db15ce61a4e8bdeacd5868ee9b8e322f952175683c222c1f66","deny.toml":"45508d1e9bec2496999a47bbddad5d5af1ca9cfb0ca5228d74fb011410abdc9a","examples/eval.rs":"22b25f2a1f149a30464fe5496f89d98e073a6a3be9f95076e966fca67051d440","release.toml":"ee6da5f2338cd2a49ec19a6a2d9a546bf650678053841b52f7da7759392d11bc","src/error.rs":"2a219746dea035d0981d8b5195d781454b02a68e8f205fe8420a219591ddbd23","src/expr.rs":"da622a7b7b3a389b41d1a619c5202e30f3bc355a138767822614706d2b1054d9","src/expr/lexer.rs":"95fcdf902827fcccbc94af6052550b5070bc167c1d9c0b9bd5fb598f2b3380a3","src/expr/parser.rs":"4980b0cc043eee7dec3ffc9202bfdd34a973d82c9710d25beb483a664ae978e8","src/lib.rs":"e51945845b84352ea5f33d9a893ad4d9fdc2306b86ba38bc55fac44f562e5704","src/targets.rs":"aac5a3be0402fb75ab5f84ed40db6c24dff386126db3cd2734117bcc04f16b21","src/targets/builtins.rs":"5c0901bc8110a622f31d14e5f89f20e423d5e5e87ee70ff44af2856002d67638","tests/eval.rs":"a3d1bf7a98ca535f94a3d4e1325ff78cfb9c445377f64dbc2ea02072146fa328","tests/lexer.rs":"55109f29f4f3e257e969b53ee7823aeb50212abebbc55d1a67d7393ea42ce80b","tests/parser.rs":"b39f8878c14ac221cf27f0e5ca6bea4de402b188478b5e739ce9860c9914bd50"},"package":"b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e"} \ No newline at end of file -+{"files":{"CHANGELOG.md":"7a8f2d73297811ac62bc09cac588d362b68bedce5a5a10e3aed9c3c524a9ad03","CODE_OF_CONDUCT.md":"ff8e424cc9ba55e10c0f83cda8bbd9034ffa6a299d589804292837aa7d50e098","CONTRIBUTING.md":"9faf3f2653e29aedf4c76ba6f4e45abb7c4f7733afc1b7448097781b03f10169","Cargo.lock":"71a95b37016b9121cf6a1ccc1eb2874a8f3e612aaa9a877d700cc09c35b54f14","Cargo.toml":"6c57ba309c8d4a1c7f1252eac6425608cd5380d68d2ab7843aebdaf38e57a283","LICENSE-APACHE":"8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90","LICENSE-MIT":"090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b","README.md":"ddadb8f143ccdece66fb5b214b9153354454654ace4d356dd88bcd57cb41fe76","deny.toml":"45508d1e9bec2496999a47bbddad5d5af1ca9cfb0ca5228d74fb011410abdc9a","examples/eval.rs":"22b25f2a1f149a30464fe5496f89d98e073a6a3be9f95076e966fca67051d440","release.toml":"ee6da5f2338cd2a49ec19a6a2d9a546bf650678053841b52f7da7759392d11bc","src/error.rs":"2a219746dea035d0981d8b5195d781454b02a68e8f205fe8420a219591ddbd23","src/expr/lexer.rs":"95fcdf902827fcccbc94af6052550b5070bc167c1d9c0b9bd5fb598f2b3380a3","src/expr/mod.rs":"1a95722810d912f9ba8b67f90196e377af83d4ab146627046fc477a6f8205a64","src/expr/parser.rs":"8d8997187b5c20d2c8b44a949dbe7eea5b0f2770bbde2e577aaab444495d7547","src/lib.rs":"e51945845b84352ea5f33d9a893ad4d9fdc2306b86ba38bc55fac44f562e5704","src/targets/builtins.rs":"20988dc1da0899ad92727ee5dca2ea546e9c48c8a733fef95b67be469c327d5c","src/targets/mod.rs":"f0bfd71021b3633be5d743bee526376a66d4ef4ece5a2cd5aa8a0ade5e6c8bee","tests/eval.rs":"a3d1bf7a98ca535f94a3d4e1325ff78cfb9c445377f64dbc2ea02072146fa328","tests/lexer.rs":"55109f29f4f3e257e969b53ee7823aeb50212abebbc55d1a67d7393ea42ce80b","tests/parser.rs":"b39f8878c14ac221cf27f0e5ca6bea4de402b188478b5e739ce9860c9914bd50"},"package":"30aa9e2ffbb838c6b451db14f3cd8e63ed622bf859f9956bc93845a10fafc26a"} ++{"files":{"CHANGELOG.md":"05ff5d348a9537ae85a86b833accc94c1c02c52e4b9a01332aeadb052946a9ac","CODE_OF_CONDUCT.md":"ff8e424cc9ba55e10c0f83cda8bbd9034ffa6a299d589804292837aa7d50e098","CONTRIBUTING.md":"9faf3f2653e29aedf4c76ba6f4e45abb7c4f7733afc1b7448097781b03f10169","Cargo.lock":"71e394a2324989908bb9f4f08a95b8d20bcaa43ed5fa40b20fc6b09c96c7fe1b","Cargo.toml":"0d5fb5612ac2425463f09954792aed237909617a3dfac162f6752b606260099b","LICENSE-APACHE":"8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90","LICENSE-MIT":"090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b","README.md":"8b6e97ace4b492db15ce61a4e8bdeacd5868ee9b8e322f952175683c222c1f66","deny.toml":"45508d1e9bec2496999a47bbddad5d5af1ca9cfb0ca5228d74fb011410abdc9a","examples/eval.rs":"22b25f2a1f149a30464fe5496f89d98e073a6a3be9f95076e966fca67051d440","release.toml":"ee6da5f2338cd2a49ec19a6a2d9a546bf650678053841b52f7da7759392d11bc","src/error.rs":"2a219746dea035d0981d8b5195d781454b02a68e8f205fe8420a219591ddbd23","src/expr.rs":"da622a7b7b3a389b41d1a619c5202e30f3bc355a138767822614706d2b1054d9","src/expr/lexer.rs":"95fcdf902827fcccbc94af6052550b5070bc167c1d9c0b9bd5fb598f2b3380a3","src/expr/parser.rs":"4980b0cc043eee7dec3ffc9202bfdd34a973d82c9710d25beb483a664ae978e8","src/lib.rs":"e51945845b84352ea5f33d9a893ad4d9fdc2306b86ba38bc55fac44f562e5704","src/targets.rs":"aac5a3be0402fb75ab5f84ed40db6c24dff386126db3cd2734117bcc04f16b21","src/targets/builtins.rs":"a814ce5a589922c50157a4c92376144e6ee0e6b62e1ea77cc9df08327ed3bd08","tests/eval.rs":"a3d1bf7a98ca535f94a3d4e1325ff78cfb9c445377f64dbc2ea02072146fa328","tests/lexer.rs":"55109f29f4f3e257e969b53ee7823aeb50212abebbc55d1a67d7393ea42ce80b","tests/parser.rs":"b39f8878c14ac221cf27f0e5ca6bea4de402b188478b5e739ce9860c9914bd50"},"package":"b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e"} \ No newline at end of file diff --git a/vendor/cfg-expr/src/targets/builtins.rs b/vendor/cfg-expr/src/targets/builtins.rs index 1111111..2222222 100644 --- a/vendor/cfg-expr/src/targets/builtins.rs +++ b/vendor/cfg-expr/src/targets/builtins.rs -@@ -73,6 +73,16 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ +@@ -83,6 +83,16 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ pointer_width: 64, endian: Endian::little, }, @@ -34,7 +34,7 @@ index 1111111..2222222 100644 TargetInfo { triple: "aarch64-pc-windows-msvc", os: Some(Os::windows), -@@ -1123,6 +1133,16 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ +@@ -1203,6 +1213,16 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ pointer_width: 32, endian: Endian::little, }, diff --git a/build/patches/mingw-w64-9-ucrtbased.patch b/build/patches/mingw-w64-9-ucrtbased.patch new file mode 100644 index 00000000..e7dc5083 --- /dev/null +++ b/build/patches/mingw-w64-9-ucrtbased.patch @@ -0,0 +1,249 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Kleis Auke Wolthuizen +Date: Sat, 18 Sep 2021 20:50:00 +0200 +Subject: [PATCH 1/2] crt: Support ucrtbased + +See: https://github.com/mstorsjo/llvm-mingw/issues/228 + +diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am +index 1111111..2222222 100644 +--- a/mingw-w64-crt/Makefile.am ++++ b/mingw-w64-crt/Makefile.am +@@ -76,10 +76,16 @@ d3dcsxd=d3dcsxd_43 + d3dcompiler=d3dcompiler_47 + + # can move this into libsrc/dummy_libm.c or similar +-BUILT_SOURCES = _libm_dummy.c ++BUILT_SOURCES = _libm_dummy.c lib-common/ucrtbased.def.in lib-common/ucrtbased.mri + _libm_dummy.c: + echo "static int __attribute__((unused)) __mingw_libm_dummy;" > _libm_dummy.c + ++lib-common/ucrtbased.def.in: ++ cd $(top_srcdir)/lib-common && $(SED) 's|ucrtbase|&d|' ucrtbase.def.in > ucrtbased.def.in ++ ++lib-common/ucrtbased.mri: ++ cd $(top_srcdir)/lib-common && $(SED) 's|ucrtbase|&d|g' ucrtbase.mri > ucrtbased.mri ++ + src_libm=_libm_dummy.c + + if ENABLE_DFP +@@ -828,7 +834,7 @@ lib32_libmingwthrd_a_SOURCES = $(src_libmingwthrd) + lib32_libmingwthrd_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes) + + processed_defs += lib32/msvcrt.def lib32/msvcr80.def lib32/msvcr90.def lib32/msvcr90d.def lib32/msvcr100.def lib32/msvcr110.def lib32/msvcr120.def lib32/msvcr120d.def \ +- lib32/msvcr120_app.def lib32/msvcp120_app.def lib32/ucrtbase.def \ ++ lib32/msvcr120_app.def lib32/msvcp120_app.def lib32/ucrtbase.def lib32/ucrtbased.def \ + lib32/api-ms-win-crt-math-l1-1-0.def lib32/api-ms-win-crt-private-l1-1-0.def lib32/api-ms-win-crt-runtime-l1-1-0.def \ + lib32/vcruntime140_app.def + +@@ -879,6 +885,10 @@ lib32_DATA += lib32/libucrtbase.a + lib32/libucrtbase.a: lib-common/ucrtbase.mri lib32/libucrtbase_def.a lib32/libucrt_extra.a + cd $(dir $@) && $(AR) -M < $(abspath $<) + ++lib32_DATA += lib32/libucrtbased.a ++lib32/libucrtbased.a: lib-common/ucrtbased.mri lib32/libucrtbased_def.a lib32/libucrt_extra.a ++ cd $(dir $@) && $(AR) -M < $(abspath $<) ++ + lib32_DATA += lib32/libucrt.a lib32/libucrtapp.a + noinst_LIBRARIES += lib32/libmsvcrt_common.a lib32/libmsvcrt_extra.a lib32/libmsvcr120_app_extra.a lib32/libucrt_extra.a lib32/libucrtapp_extra.a + lib32_libmsvcrt_common_a_SOURCES = $(src_msvcrt_common) +@@ -1150,7 +1160,7 @@ lib64_libmingwthrd_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes) + + processed_defs += lib64/msvcrt.def lib64/msvcr80.def lib64/msvcr90.def lib64/msvcr90d.def \ + lib64/msvcr100.def lib64/msvcr110.def lib64/msvcr120.def lib64/msvcr120d.def \ +- lib64/msvcr120_app.def lib64/msvcp120_app.def lib64/ucrtbase.def \ ++ lib64/msvcr120_app.def lib64/msvcp120_app.def lib64/ucrtbase.def lib64/ucrtbased.def \ + lib64/advapi32.def lib64/clbcatq.def lib64/kernel32.def lib64/ole32.def \ + lib64/oleaut32.def lib64/user32.def lib64/ws2_32.def \ + lib64/api-ms-win-crt-math-l1-1-0.def lib64/api-ms-win-crt-private-l1-1-0.def lib64/api-ms-win-crt-runtime-l1-1-0.def \ +@@ -1203,6 +1213,10 @@ lib64_DATA += lib64/libucrtbase.a + lib64/libucrtbase.a: lib-common/ucrtbase.mri lib64/libucrtbase_def.a lib64/libucrt_extra.a + cd $(dir $@) && $(AR) -M < $(abspath $<) + ++lib64_DATA += lib64/libucrtbased.a ++lib64/libucrtbased.a: lib-common/ucrtbased.mri lib64/libucrtbased_def.a lib64/libucrt_extra.a ++ cd $(dir $@) && $(AR) -M < $(abspath $<) ++ + lib64_DATA += lib64/libucrt.a lib64/libucrtapp.a + noinst_LIBRARIES += lib64/libmsvcrt_common.a lib64/libmsvcrt_extra.a lib64/libmsvcr80_extra.a lib64/libmsvcr120_app_extra.a lib64/libucrt_extra.a lib64/libucrtapp_extra.a + lib64_libmsvcrt_common_a_SOURCES = $(src_msvcrt_common) +@@ -1478,7 +1492,7 @@ libarm32_LIBRARIES += libarm32/libmingwthrd.a + libarm32_libmingwthrd_a_SOURCES = $(src_libmingwthrd) + libarm32_libmingwthrd_a_CPPFLAGS=$(CPPFLAGSARM32) $(sysincludes) + +-processed_defs += libarm32/msvcrt.def libarm32/msvcr80.def libarm32/msvcr90.def libarm32/msvcr90d.def libarm32/msvcr100.def libarm32/msvcr110.def libarm32/msvcr120_app.def libarm32/ucrtbase.def \ ++processed_defs += libarm32/msvcrt.def libarm32/msvcr80.def libarm32/msvcr90.def libarm32/msvcr90d.def libarm32/msvcr100.def libarm32/msvcr110.def libarm32/msvcr120_app.def libarm32/ucrtbase.def libarm32/ucrtbased.def \ + libarm32/advapi32.def libarm32/clbcatq.def libarm32/kernel32.def libarm32/ole32.def libarm32/oleaut32.def \ + libarm32/user32.def libarm32/ws2_32.def \ + libarm32/api-ms-win-crt-math-l1-1-0.def libarm32/api-ms-win-crt-private-l1-1-0.def libarm32/api-ms-win-crt-runtime-l1-1-0.def \ +@@ -1503,6 +1517,10 @@ libarm32_DATA += libarm32/libucrtbase.a + libarm32/libucrtbase.a: lib-common/ucrtbase.mri libarm32/libucrtbase_def.a libarm32/libucrt_extra.a + cd $(dir $@) && $(AR) -M < $(abspath $<) + ++libarm32_DATA += libarm32/libucrtbased.a ++libarm32/libucrtbased.a: lib-common/ucrtbased.mri libarm32/libucrtbased_def.a libarm32/libucrt_extra.a ++ cd $(dir $@) && $(AR) -M < $(abspath $<) ++ + libarm32_DATA += libarm32/libucrt.a libarm32/libucrtapp.a + noinst_LIBRARIES += libarm32/libmsvcrt_common.a libarm32/libmsvcrt_extra.a libarm32/libmsvcr120_app_extra.a libarm32/libucrt_extra.a libarm32/libucrtapp_extra.a + libarm32_libmsvcrt_common_a_SOURCES = $(src_msvcrt_common) +@@ -1756,7 +1774,7 @@ libarm64_LIBRARIES += libarm64/libmingwthrd.a + libarm64_libmingwthrd_a_SOURCES = $(src_libmingwthrd) + libarm64_libmingwthrd_a_CPPFLAGS=$(CPPFLAGSARM64) $(sysincludes) + +-processed_defs += libarm64/msvcrt.def libarm64/ucrtbase.def \ ++processed_defs += libarm64/msvcrt.def libarm64/ucrtbase.def libarm64/ucrtbased.def \ + libarm64/advapi32.def libarm64/clbcatq.def libarm64/kernel32.def libarm64/ole32.def libarm64/oleaut32.def \ + libarm64/user32.def libarm64/ws2_32.def \ + libarm64/api-ms-win-crt-math-l1-1-0.def libarm64/api-ms-win-crt-private-l1-1-0.def libarm64/api-ms-win-crt-runtime-l1-1-0.def \ +@@ -1771,6 +1789,10 @@ libarm64_DATA += libarm64/libucrtbase.a + libarm64/libucrtbase.a: lib-common/ucrtbase.mri libarm64/libucrtbase_def.a libarm64/libucrt_extra.a + cd $(dir $@) && $(AR) -M < $(abspath $<) + ++libarm64_DATA += libarm64/libucrtbased.a ++libarm64/libucrtbased.a: lib-common/ucrtbased.mri libarm64/libucrtbased_def.a libarm64/libucrt_extra.a ++ cd $(dir $@) && $(AR) -M < $(abspath $<) ++ + libarm64_DATA += libarm64/libucrt.a libarm64/libucrtapp.a + noinst_LIBRARIES += libarm64/libmsvcrt_common.a libarm64/libmsvcrt_extra.a libarm64/libucrt_extra.a libarm64/libucrtapp_extra.a + libarm64_libmsvcrt_common_a_SOURCES = $(src_msvcrt_common) + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Kleis Auke Wolthuizen +Date: Sat, 18 Sep 2021 21:00:00 +0200 +Subject: [PATCH 2/2] crt: Regenerate Makefile.in + + +diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in +index 1111111..2222222 100644 +--- a/mingw-w64-crt/Makefile.in ++++ b/mingw-w64-crt/Makefile.in +@@ -226,7 +226,7 @@ host_triplet = @host@ + @LIB32_TRUE@@W32API_FALSE@ lib32/libmoldname.a \ + @LIB32_TRUE@@W32API_FALSE@ lib32/libmingwthrd.a + @LIB32_TRUE@@W32API_FALSE@am__append_8 = lib32/msvcrt.def lib32/msvcr80.def lib32/msvcr90.def lib32/msvcr90d.def lib32/msvcr100.def lib32/msvcr110.def lib32/msvcr120.def lib32/msvcr120d.def \ +-@LIB32_TRUE@@W32API_FALSE@ lib32/msvcr120_app.def lib32/msvcp120_app.def lib32/ucrtbase.def \ ++@LIB32_TRUE@@W32API_FALSE@ lib32/msvcr120_app.def lib32/msvcp120_app.def lib32/ucrtbase.def lib32/ucrtbased.def \ + @LIB32_TRUE@@W32API_FALSE@ lib32/api-ms-win-crt-math-l1-1-0.def lib32/api-ms-win-crt-private-l1-1-0.def lib32/api-ms-win-crt-runtime-l1-1-0.def \ + @LIB32_TRUE@@W32API_FALSE@ lib32/vcruntime140_app.def + +@@ -241,7 +241,8 @@ host_triplet = @host@ + @LIB32_TRUE@@W32API_FALSE@ lib32/libmsvcr120.a \ + @LIB32_TRUE@@W32API_FALSE@ lib32/libmsvcr120d.a \ + @LIB32_TRUE@@W32API_FALSE@ lib32/libmsvcr120_app.a \ +-@LIB32_TRUE@@W32API_FALSE@ lib32/libucrtbase.a lib32/libucrt.a \ ++@LIB32_TRUE@@W32API_FALSE@ lib32/libucrtbase.a \ ++@LIB32_TRUE@@W32API_FALSE@ lib32/libucrtbased.a lib32/libucrt.a \ + @LIB32_TRUE@@W32API_FALSE@ lib32/libucrtapp.a \ + @LIB32_TRUE@@W32API_FALSE@ lib32/libvcruntime140_app.a + @LIB32_TRUE@@W32API_FALSE@am__append_10 = lib32/libmsvcrt_common.a lib32/libmsvcrt_extra.a lib32/libmsvcr120_app_extra.a lib32/libucrt_extra.a lib32/libucrtapp_extra.a +@@ -256,7 +257,7 @@ host_triplet = @host@ + @LIB64_TRUE@@W32API_FALSE@ lib64/libmingwthrd.a + @LIB64_TRUE@@W32API_FALSE@am__append_13 = lib64/msvcrt.def lib64/msvcr80.def lib64/msvcr90.def lib64/msvcr90d.def \ + @LIB64_TRUE@@W32API_FALSE@ lib64/msvcr100.def lib64/msvcr110.def lib64/msvcr120.def lib64/msvcr120d.def \ +-@LIB64_TRUE@@W32API_FALSE@ lib64/msvcr120_app.def lib64/msvcp120_app.def lib64/ucrtbase.def \ ++@LIB64_TRUE@@W32API_FALSE@ lib64/msvcr120_app.def lib64/msvcp120_app.def lib64/ucrtbase.def lib64/ucrtbased.def \ + @LIB64_TRUE@@W32API_FALSE@ lib64/advapi32.def lib64/clbcatq.def lib64/kernel32.def lib64/ole32.def \ + @LIB64_TRUE@@W32API_FALSE@ lib64/oleaut32.def lib64/user32.def lib64/ws2_32.def \ + @LIB64_TRUE@@W32API_FALSE@ lib64/api-ms-win-crt-math-l1-1-0.def lib64/api-ms-win-crt-private-l1-1-0.def lib64/api-ms-win-crt-runtime-l1-1-0.def \ +@@ -272,7 +273,8 @@ host_triplet = @host@ + @LIB64_TRUE@@W32API_FALSE@ lib64/libmsvcr120.a \ + @LIB64_TRUE@@W32API_FALSE@ lib64/libmsvcr120d.a \ + @LIB64_TRUE@@W32API_FALSE@ lib64/libmsvcr120_app.a \ +-@LIB64_TRUE@@W32API_FALSE@ lib64/libucrtbase.a lib64/libucrt.a \ ++@LIB64_TRUE@@W32API_FALSE@ lib64/libucrtbase.a \ ++@LIB64_TRUE@@W32API_FALSE@ lib64/libucrtbased.a lib64/libucrt.a \ + @LIB64_TRUE@@W32API_FALSE@ lib64/libucrtapp.a \ + @LIB64_TRUE@@W32API_FALSE@ lib64/libvcruntime140_app.a + @LIB64_TRUE@@W32API_FALSE@am__append_15 = lib64/libmsvcrt_common.a lib64/libmsvcrt_extra.a lib64/libmsvcr80_extra.a lib64/libmsvcr120_app_extra.a lib64/libucrt_extra.a lib64/libucrtapp_extra.a +@@ -292,7 +294,7 @@ host_triplet = @host@ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/libmingwex.a \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/libmoldname.a \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/libmingwthrd.a +-@LIBARM32_TRUE@@W32API_FALSE@am__append_18 = libarm32/msvcrt.def libarm32/msvcr80.def libarm32/msvcr90.def libarm32/msvcr90d.def libarm32/msvcr100.def libarm32/msvcr110.def libarm32/msvcr120_app.def libarm32/ucrtbase.def \ ++@LIBARM32_TRUE@@W32API_FALSE@am__append_18 = libarm32/msvcrt.def libarm32/msvcr80.def libarm32/msvcr90.def libarm32/msvcr90d.def libarm32/msvcr100.def libarm32/msvcr110.def libarm32/msvcr120_app.def libarm32/ucrtbase.def libarm32/ucrtbased.def \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/advapi32.def libarm32/clbcatq.def libarm32/kernel32.def libarm32/ole32.def libarm32/oleaut32.def \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/user32.def libarm32/ws2_32.def \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/api-ms-win-crt-math-l1-1-0.def libarm32/api-ms-win-crt-private-l1-1-0.def libarm32/api-ms-win-crt-runtime-l1-1-0.def \ +@@ -302,6 +304,7 @@ host_triplet = @host@ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/libmsvcr110.a \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/libmsvcr120_app.a \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/libucrtbase.a \ ++@LIBARM32_TRUE@@W32API_FALSE@ libarm32/libucrtbased.a \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/libucrt.a \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/libucrtapp.a \ + @LIBARM32_TRUE@@W32API_FALSE@ libarm32/libvcruntime140_app.a +@@ -322,13 +325,14 @@ host_triplet = @host@ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/libmingwex.a \ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/libmoldname.a \ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/libmingwthrd.a +-@LIBARM64_TRUE@@W32API_FALSE@am__append_23 = libarm64/msvcrt.def libarm64/ucrtbase.def \ ++@LIBARM64_TRUE@@W32API_FALSE@am__append_23 = libarm64/msvcrt.def libarm64/ucrtbase.def libarm64/ucrtbased.def \ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/advapi32.def libarm64/clbcatq.def libarm64/kernel32.def libarm64/ole32.def libarm64/oleaut32.def \ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/user32.def libarm64/ws2_32.def \ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/api-ms-win-crt-math-l1-1-0.def libarm64/api-ms-win-crt-private-l1-1-0.def libarm64/api-ms-win-crt-runtime-l1-1-0.def \ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/vcruntime140_app.def + + @LIBARM64_TRUE@@W32API_FALSE@am__append_24 = libarm64/libucrtbase.a \ ++@LIBARM64_TRUE@@W32API_FALSE@ libarm64/libucrtbased.a \ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/libucrt.a \ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/libucrtapp.a \ + @LIBARM64_TRUE@@W32API_FALSE@ libarm64/libvcruntime140_app.a +@@ -10105,7 +10109,7 @@ d3dcsxd = d3dcsxd_43 + d3dcompiler = d3dcompiler_47 + + # can move this into libsrc/dummy_libm.c or similar +-BUILT_SOURCES = _libm_dummy.c ++BUILT_SOURCES = _libm_dummy.c lib-common/ucrtbased.def.in lib-common/ucrtbased.mri + src_libm = _libm_dummy.c + @ENABLE_DFP_FALSE@src_dfp_math = + @ENABLE_DFP_TRUE@src_dfp_math = \ +@@ -75908,6 +75912,12 @@ uninstall-am: uninstall-crt32DATA uninstall-crt64DATA \ + + _libm_dummy.c: + echo "static int __attribute__((unused)) __mingw_libm_dummy;" > _libm_dummy.c ++ ++lib-common/ucrtbased.def.in: ++ cd $(top_srcdir)/lib-common && $(SED) 's|ucrtbase|&d|' ucrtbase.def.in > ucrtbased.def.in ++ ++lib-common/ucrtbased.mri: ++ cd $(top_srcdir)/lib-common && $(SED) 's|ucrtbase|&d|g' ucrtbase.mri > ucrtbased.mri + @LIB32_TRUE@lib32/crt1.o: crt/crtexe.c + @LIB32_TRUE@ $(COMPILE32) -c $< -o $@ -D__CRTDLL__ -U__MSVCRT__ + @LIB32_TRUE@lib32/crt2.o: crt/crtexe.c +@@ -75954,6 +75964,8 @@ _libm_dummy.c: + @LIB32_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) + @LIB32_TRUE@@W32API_FALSE@lib32/libucrtbase.a: lib-common/ucrtbase.mri lib32/libucrtbase_def.a lib32/libucrt_extra.a + @LIB32_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) ++@LIB32_TRUE@@W32API_FALSE@lib32/libucrtbased.a: lib-common/ucrtbased.mri lib32/libucrtbased_def.a lib32/libucrt_extra.a ++@LIB32_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) + + @LIB32_TRUE@lib32/lib%.a: lib32/%.def + @LIB32_TRUE@ $(DTDEF32) $< +@@ -76029,6 +76041,8 @@ _libm_dummy.c: + @LIB64_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) + @LIB64_TRUE@@W32API_FALSE@lib64/libucrtbase.a: lib-common/ucrtbase.mri lib64/libucrtbase_def.a lib64/libucrt_extra.a + @LIB64_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) ++@LIB64_TRUE@@W32API_FALSE@lib64/libucrtbased.a: lib-common/ucrtbased.mri lib64/libucrtbased_def.a lib64/libucrt_extra.a ++@LIB64_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) + + @LIB64_TRUE@lib64/lib%.a: lib64/%.def + @LIB64_TRUE@ $(DTDEF64) $< +@@ -76090,6 +76104,8 @@ _libm_dummy.c: + @LIBARM32_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) + @LIBARM32_TRUE@@W32API_FALSE@libarm32/libucrtbase.a: lib-common/ucrtbase.mri libarm32/libucrtbase_def.a libarm32/libucrt_extra.a + @LIBARM32_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) ++@LIBARM32_TRUE@@W32API_FALSE@libarm32/libucrtbased.a: lib-common/ucrtbased.mri libarm32/libucrtbased_def.a libarm32/libucrt_extra.a ++@LIBARM32_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) + + @LIBARM32_TRUE@libarm32/lib%.a: libarm32/%.def + @LIBARM32_TRUE@ $(DTDEFARM32) $< +@@ -76135,6 +76151,8 @@ _libm_dummy.c: + @LIBARM64_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) + @LIBARM64_TRUE@@W32API_FALSE@libarm64/libucrtbase.a: lib-common/ucrtbase.mri libarm64/libucrtbase_def.a libarm64/libucrt_extra.a + @LIBARM64_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) ++@LIBARM64_TRUE@@W32API_FALSE@libarm64/libucrtbased.a: lib-common/ucrtbased.mri libarm64/libucrtbased_def.a libarm64/libucrt_extra.a ++@LIBARM64_TRUE@@W32API_FALSE@ cd $(dir $@) && $(AR) -M < $(abspath $<) + + @LIBARM64_TRUE@libarm64/lib%.a: libarm64/%.def + @LIBARM64_TRUE@ $(DTDEFARM64) $< diff --git a/build/patches/vips-8-dlldir-as-libdir.patch b/build/patches/vips-8-dlldir-as-libdir.patch new file mode 100644 index 00000000..9472e7f4 --- /dev/null +++ b/build/patches/vips-8-dlldir-as-libdir.patch @@ -0,0 +1,103 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Kleis Auke Wolthuizen +Date: Thu, 23 Sep 2021 17:55:19 +0200 +Subject: [PATCH 1/1] Support for using the DLL directory as libdir + +See: https://github.com/libvips/build-win64-mxe/issues/34. + +diff --git a/libvips/include/vips/util.h b/libvips/include/vips/util.h +index 1111111..2222222 100644 +--- a/libvips/include/vips/util.h ++++ b/libvips/include/vips/util.h +@@ -340,6 +340,7 @@ guint32 vips__random( guint32 seed ); + guint32 vips__random_add( guint32 seed, int value ); + + const char *vips__icc_dir( void ); ++const char *vips__dll_dir( void ); + const char *vips__windows_prefix( void ); + + char *vips__get_iso8601( void ); +diff --git a/libvips/iofuncs/init.c b/libvips/iofuncs/init.c +index 1111111..2222222 100644 +--- a/libvips/iofuncs/init.c ++++ b/libvips/iofuncs/init.c +@@ -1210,6 +1210,12 @@ vips_guess_prefix( const char *argv0, const char *env_name ) + const char * + vips_guess_libdir( const char *argv0, const char *env_name ) + { ++#if defined(G_OS_WIN32) && defined(VIPS_DLLDIR_AS_LIBDIR) ++ /* Sometimes users want to use the DLL directory where the libvips DLL ++ * resides as libdir. ++ */ ++ return( vips__dll_dir() ); ++#else /*!G_OS_WIN32 || !VIPS_DLLDIR_AS_LIBDIR*/ + const char *prefix = vips_guess_prefix( argv0, env_name ); + static char *libdir = NULL; + +@@ -1234,6 +1240,7 @@ vips_guess_libdir( const char *argv0, const char *env_name ) + libdir = g_strdup_printf( "%s/lib", prefix ); + + return( libdir ); ++#endif /*G_OS_WIN32 && VIPS_DLLDIR_AS_LIBDIR*/ + } + + /** +diff --git a/libvips/iofuncs/util.c b/libvips/iofuncs/util.c +index 1111111..2222222 100644 +--- a/libvips/iofuncs/util.c ++++ b/libvips/iofuncs/util.c +@@ -2002,6 +2002,54 @@ DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) + return( TRUE ); + } + #endif ++ ++#ifdef VIPS_DLLDIR_AS_LIBDIR ++static void * ++vips__dll_dir_once( void *null ) ++{ ++ /* From glib _glib_get_dll_directory() ++ */ ++ char *dll_dir; ++ char *p; ++ wchar_t wc_fn[MAX_PATH]; ++ ++#ifdef DLL_EXPORT ++ if( vips__dll == NULL ) ++ return NULL; ++#endif ++ ++ /* This code is different from that in ++ * g_win32_get_package_installation_directory_of_module() in that ++ * here we return the actual folder where the libvips DLL is. We don't ++ * do the check for it being in a "bin" or "lib" subfolder and then ++ * returning the parent of that. ++ * ++ * In a statically built libvips, vips__dll will be NULL and we will ++ * thus look up the application's .exe file's location. ++ */ ++ if( !GetModuleFileNameW( vips__dll, wc_fn, MAX_PATH ) ) ++ return NULL; ++ ++ dll_dir = g_utf16_to_utf8( wc_fn, -1, NULL, NULL, NULL ); ++ ++ p = strrchr( dll_dir, G_DIR_SEPARATOR ); ++ if( p == NULL ) ++ return NULL; ++ ++ *p = '\0'; ++ ++ return( (void *) dll_dir ); ++} ++ ++const char * ++vips__dll_dir( void ) ++{ ++ static GOnce once = G_ONCE_INIT; ++ ++ return( (const char *) g_once( &once, ++ vips__dll_dir_once, NULL ) ); ++} ++#endif /*VIPS_DLLDIR_AS_LIBDIR*/ + #endif /*G_OS_WIN32*/ + + static void * diff --git a/build/plugins/llvm-mingw/llvm-mingw.mk b/build/plugins/llvm-mingw/llvm-mingw.mk index f8a00595..5f9a29fc 100644 --- a/build/plugins/llvm-mingw/llvm-mingw.mk +++ b/build/plugins/llvm-mingw/llvm-mingw.mk @@ -43,7 +43,7 @@ define $(PKG)_BUILD_mingw-w64 cd '$(BUILD_DIR).crt' && '$(BUILD_DIR)/$(mingw-w64_SUBDIR)/mingw-w64-crt/configure' \ --host='$(TARGET)' \ --prefix='$(PREFIX)/$(TARGET)/mingw' \ - --with-default-msvcrt=ucrt \ + --with-default-msvcrt=$(if $(findstring .debug,$(TARGET)),ucrtbased,ucrt) \ @mingw-crt-config-opts@ $(MAKE) -C '$(BUILD_DIR).crt' -j '$(JOBS)' $(MAKE) -C '$(BUILD_DIR).crt' -j 1 $(INSTALL_STRIP_TOOLCHAIN) diff --git a/build/plugins/llvm-mingw/patches/rust-1-fixes.patch b/build/plugins/llvm-mingw/patches/rust-1-fixes.patch index 226a82ea..7c18cddd 100644 --- a/build/plugins/llvm-mingw/patches/rust-1-fixes.patch +++ b/build/plugins/llvm-mingw/patches/rust-1-fixes.patch @@ -38,7 +38,7 @@ diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/s index 1111111..2222222 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs -@@ -862,10 +862,12 @@ supported_targets! { +@@ -863,10 +863,12 @@ supported_targets! { ("x86_64-unknown-illumos", x86_64_unknown_illumos), diff --git a/build/plugins/llvm-mingw/rust.mk b/build/plugins/llvm-mingw/rust.mk index 1b9155de..c16aa6a0 100644 --- a/build/plugins/llvm-mingw/rust.mk +++ b/build/plugins/llvm-mingw/rust.mk @@ -2,13 +2,13 @@ PKG := rust $(PKG)_WEBSITE := https://www.rust-lang.org/ $(PKG)_DESCR := A systems programming language focused on safety, speed and concurrency. $(PKG)_IGNORE := -# https://static.rust-lang.org/dist/2021-09-03/rustc-nightly-src.tar.gz.sha256 +# https://static.rust-lang.org/dist/2021-09-23/rustc-nightly-src.tar.gz.sha256 $(PKG)_VERSION := nightly -$(PKG)_CHECKSUM := c03bb1749a2cba97d10970ddbc5b21dae9d629450ff01d801f2d1770cb4275de +$(PKG)_CHECKSUM := b052c65b5834ad55ccc301fb2738029fc4c215efe23dd25eec866f0a47edf6b7 $(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/$(PKG)-[0-9]*.patch))) $(PKG)_SUBDIR := $(PKG)c-$($(PKG)_VERSION)-src $(PKG)_FILE := $(PKG)c-$($(PKG)_VERSION)-src.tar.gz -$(PKG)_URL := https://static.rust-lang.org/dist/2021-09-03/$($(PKG)_FILE) +$(PKG)_URL := https://static.rust-lang.org/dist/2021-09-23/$($(PKG)_FILE) $(PKG)_DEPS := $(BUILD)~$(PKG) $(PKG)_TARGETS := $(BUILD) $(MXE_TARGETS) @@ -32,9 +32,6 @@ define $(PKG)_BUILD_$(BUILD) $(eval unexport CXXFLAGS) $(eval unexport LDFLAGS) - # Don't depend on a nightly version of rustfmt - $(SED) -i '/^rustfmt:/d' $(SOURCE_DIR)/src/stage0.txt - cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \ --prefix='$(PREFIX)/$(BUILD)' \ --release-channel=nightly \ diff --git a/build/settings/llvm-debug.mk b/build/settings/llvm-debug.mk index a1890898..f4b40477 100644 --- a/build/settings/llvm-debug.mk +++ b/build/settings/llvm-debug.mk @@ -5,7 +5,7 @@ # Turn on debugging export CFLAGS := -g -Og -fdata-sections -ffunction-sections export CXXFLAGS := -g -Og -fdata-sections -ffunction-sections -export LDFLAGS := -Wl,--gc-sections +export LDFLAGS := -Wl,--gc-sections -Wl,-lucrtbased # Clang produces debug info in DWARF format by default. # To debug with WinDbg (PDB format) use: diff --git a/build/variables.sh b/build/variables.sh index 9736ede4..7775c4dc 100755 --- a/build/variables.sh +++ b/build/variables.sh @@ -2,7 +2,7 @@ vips_package=vips vips_version=8.11 -vips_patch_version=3 +vips_patch_version=4 #vips_pre_version=rc1 # build-win64-mxe/build dir we are building diff --git a/build/vips-all.mk b/build/vips-all.mk index 9ef1308f..fce934d7 100644 --- a/build/vips-all.mk +++ b/build/vips-all.mk @@ -2,8 +2,8 @@ PKG := vips-all $(PKG)_WEBSITE := https://libvips.github.io/libvips/ $(PKG)_DESCR := A fast image processing library with low memory needs. $(PKG)_IGNORE := -$(PKG)_VERSION := 8.11.3 -$(PKG)_CHECKSUM := 9b0a1d2f477d6fb4298d383a61232bcb4b2ea91ab76a1113d31883b50f3cdf01 +$(PKG)_VERSION := 8.11.4 +$(PKG)_CHECKSUM := 5043f38828a0ff9f2275f9252f69e14f701ef11f55786cda8aa6ce2c4fbed2f7 $(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/vips-[0-9]*.patch))) $(PKG)_GH_CONF := libvips/libvips/releases,v $(PKG)_SUBDIR := vips-$($(PKG)_VERSION) @@ -72,19 +72,14 @@ endef define $(PKG)_BUILD $($(PKG)_PRE_CONFIGURE) - # --libdir argument ensures that the dynamic modules - # are installed and found in /bin (Windows convention). - # --with-pkgconfigdir argument is needed since we have - # overwritten the $libdir variable. cd '$(BUILD_DIR)' && $(SOURCE_DIR)/configure \ $(MXE_CONFIGURE_OPTS) \ - --libdir='$(PREFIX)/$(TARGET)/bin' \ - --with-pkgconfigdir='$(PREFIX)/$(TARGET)/lib/pkgconfig' \ --enable-debug=no \ --without-pdfium \ --disable-introspection \ --disable-deprecated \ - --with-heif=$(if $(IS_HEVC),module,yes) + --with-heif=$(if $(IS_HEVC),module,yes) \ + CPPFLAGS='-DVIPS_DLLDIR_AS_LIBDIR' # remove -nostdlib from linker commandline options # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866 @@ -93,8 +88,4 @@ define $(PKG)_BUILD $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' $(MAKE) -C '$(BUILD_DIR)' -j 1 $(INSTALL_STRIP_LIB) - - # some files were misplaced in bin/ due to --libdir - $(foreach f, libvips.dll.a libvips-cpp.dll.a, \ - mv '$(PREFIX)/$(TARGET)/bin/$(f)' '$(PREFIX)/$(TARGET)/lib';) endef diff --git a/build/vips-web.mk b/build/vips-web.mk index 3067433c..dbb2b3e1 100644 --- a/build/vips-web.mk +++ b/build/vips-web.mk @@ -2,8 +2,8 @@ PKG := vips-web $(PKG)_WEBSITE := https://libvips.github.io/libvips/ $(PKG)_DESCR := A fast image processing library with low memory needs. $(PKG)_IGNORE := -$(PKG)_VERSION := 8.11.3 -$(PKG)_CHECKSUM := 9b0a1d2f477d6fb4298d383a61232bcb4b2ea91ab76a1113d31883b50f3cdf01 +$(PKG)_VERSION := 8.11.4 +$(PKG)_CHECKSUM := 5043f38828a0ff9f2275f9252f69e14f701ef11f55786cda8aa6ce2c4fbed2f7 $(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/patches/vips-[0-9]*.patch))) $(PKG)_GH_CONF := libvips/libvips/releases,v $(PKG)_SUBDIR := vips-$($(PKG)_VERSION)