diff --git a/.github/workflows/generate-srcinfo.yml b/.github/workflows/generate-srcinfo.yml index 2591f9c6bd..3f7c2b6c54 100644 --- a/.github/workflows/generate-srcinfo.yml +++ b/.github/workflows/generate-srcinfo.yml @@ -9,6 +9,7 @@ on: jobs: update-srcinfo: runs-on: windows-latest + if: ${{ github.repository == 'msys2/MINGW-packages' || github.event_name == 'workflow_dispatch' }} defaults: run: shell: msys2 {0} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 849ee742aa..fa1b4857c5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,13 +14,11 @@ jobs: { msystem: MINGW64, arch: x86_64 }, { msystem: MINGW32, arch: i686 } ] - defaults: - run: - shell: msys2 {0} steps: - uses: actions/checkout@v2 with: + path: temp fetch-depth: 0 - uses: msys2/setup-msys2@v2 @@ -29,17 +27,24 @@ jobs: install: git base-devel mingw-w64-${{ matrix.arch }}-toolchain update: true + - name: Move Checkout + run: | + Copy-Item -Path ".\temp" -Destination "C:\_" -Recurse + - name: CI-Build - run: MINGW_INSTALLS=${{ matrix.msystem }} ./ci-build.sh + shell: msys2 {0} + run: | + cd /C/_ + MINGW_INSTALLS=${{ matrix.msystem }} ./ci-build.sh - name: "Upload binaries" uses: actions/upload-artifact@v2 with: name: ${{ matrix.msystem }}-packages - path: artifacts/*.pkg.tar.* + path: C:/_/artifacts/*.pkg.tar.* - name: "Upload sources" uses: actions/upload-artifact@v2 with: name: sources - path: artifacts/*.src.tar.* + path: C:/_/artifacts/*.src.tar.* diff --git a/mingw-w64-SDL2/004-dont-duplicate-libs-in-libs-private.patch b/mingw-w64-SDL2/004-dont-duplicate-libs-in-libs-private.patch new file mode 100644 index 0000000000..f1f2a65aa4 --- /dev/null +++ b/mingw-w64-SDL2/004-dont-duplicate-libs-in-libs-private.patch @@ -0,0 +1,62 @@ +# Based on SDL hg changeset fc03d19926ed, tweaked to apply here + +# HG changeset patch +# User James Le Cuirot +# Date 1586694276 -3600 +# Node ID fc03d19926ed02c5e96033a22e0a1956cb7d2968 +# Parent 89a457159af48f83585adab9ab9ea1d21be9505c +build: Don't duplicate Libs in Libs.private in pkg-config file + +pkg-config already prepends Libs to Libs.private when you specify +--static so there's no need to duplicate them. Most other projects +don't do this. + +diff -r 89a457159af4 -r fc03d19926ed CMakeLists.txt +--- a/CMakeLists.txt Sat Apr 11 23:38:34 2020 +0100 ++++ b/CMakeLists.txt Sun Apr 12 13:24:36 2020 +0100 +@@ -1962,7 +1962,7 @@ + + # Clean up the different lists + listtostr(EXTRA_LIBS _EXTRA_LIBS "-l") +- set(SDL_STATIC_LIBS ${SDL_LIBS} ${EXTRA_LDFLAGS} ${_EXTRA_LIBS}) ++ set(SDL_STATIC_LIBS ${EXTRA_LDFLAGS} ${_EXTRA_LIBS}) + list(REMOVE_DUPLICATES SDL_STATIC_LIBS) + listtostr(SDL_STATIC_LIBS _SDL_STATIC_LIBS) + set(SDL_STATIC_LIBS ${_SDL_STATIC_LIBS}) +diff -r 89a457159af4 -r fc03d19926ed configure +--- a/configure Sat Apr 11 23:38:34 2020 +0100 ++++ b/configure Sun Apr 12 13:24:36 2020 +0100 +@@ -25717,7 +25717,7 @@ + SDL_RLD_FLAGS="" + fi + +-SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS" ++SDL_STATIC_LIBS="$EXTRA_LDFLAGS" + + + +diff -r 89a457159af4 -r fc03d19926ed configure.ac +--- a/configure.ac Sat Apr 11 23:38:34 2020 +0100 ++++ b/configure.ac Sun Apr 12 13:24:36 2020 +0100 +@@ -4271,7 +4271,7 @@ + SDL_RLD_FLAGS="" + fi + +-SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS" ++SDL_STATIC_LIBS="$EXTRA_LDFLAGS" + + dnl Expand the cflags and libraries needed by apps using SDL + AC_SUBST(SDL_CFLAGS) +diff -r 89a457159af4 -r fc03d19926ed sdl2-config.in +--- a/sdl2-config.in Sat Apr 11 23:38:34 2020 +0100 ++++ b/sdl2-config.in Sun Apr 12 13:24:36 2020 +0100 +@@ -49,7 +49,7 @@ + @ENABLE_SHARED_TRUE@ ;; + @ENABLE_STATIC_TRUE@@ENABLE_SHARED_TRUE@ --static-libs) + @ENABLE_STATIC_TRUE@@ENABLE_SHARED_FALSE@ --libs|--static-libs) +-@ENABLE_STATIC_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_STATIC_LIBS@ ++@ENABLE_STATIC_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@ @SDL_STATIC_LIBS@ + @ENABLE_STATIC_TRUE@ ;; + *) + echo "${usage}" 1>&2 + diff --git a/mingw-w64-SDL2/PKGBUILD b/mingw-w64-SDL2/PKGBUILD index f02bca3fb9..b604cf9e5b 100644 --- a/mingw-w64-SDL2/PKGBUILD +++ b/mingw-w64-SDL2/PKGBUILD @@ -5,7 +5,7 @@ _realname=SDL2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.0.12 -pkgrel=4 +pkgrel=5 pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (Version 2) (mingw-w64)" arch=('any') url="https://libsdl.org" @@ -20,12 +20,14 @@ options=('staticlibs' 'strip') source=("https://libsdl.org/release/SDL2-${pkgver}.tar.gz"{,.sig} 001-fix-cmake-target-relocation.patch 002-fix-link-order.patch - 003-fix-static-library-name.patch) + 003-fix-static-library-name.patch + 004-dont-duplicate-libs-in-libs-private.patch) sha256sums=('349268f695c02efbc9b9148a70b85e58cefbbf704abd3e91be654db7f1e2c863' 'SKIP' '7150ff7c7549d919560eaff44d6f6f76feadbc7da7ce82ca3dcb8e67a91d1daa' '4a3906a9b9989dba4967454512921660e0fb275c35263d8ef7d7b34fa5a95e57' - 'a327673cd9d0e60d762860cf8dc96134b6b283314640e5803d918e7f5cd8f9ee') + 'a327673cd9d0e60d762860cf8dc96134b6b283314640e5803d918e7f5cd8f9ee' + '2c3dedf6bd6a10f0dca531c256a85b87db5b12d7558fff4bcea26b9bc73bdc99') validpgpkeys=('1528635D8053A57F77D1E08630A59377A7763BE6') # Sam Lantinga prepare() { @@ -33,6 +35,7 @@ prepare() { patch -p1 -i ${srcdir}/001-fix-cmake-target-relocation.patch patch -p1 -i ${srcdir}/002-fix-link-order.patch patch -p1 -i ${srcdir}/003-fix-static-library-name.patch + patch -p1 -i ${srcdir}/004-dont-duplicate-libs-in-libs-private.patch } build() { diff --git a/mingw-w64-alembic/0001-alembic-1.7.9-fix-windows-build.patch b/mingw-w64-alembic/0001-alembic-1.7.9-fix-windows-build.patch index cc88877276..a1393d465d 100644 --- a/mingw-w64-alembic/0001-alembic-1.7.9-fix-windows-build.patch +++ b/mingw-w64-alembic/0001-alembic-1.7.9-fix-windows-build.patch @@ -1,6 +1,5 @@ -diff -Naur alembic-1.7.9.orig/CMakeLists.txt alembic-1.7.9/CMakeLists.txt ---- alembic-1.7.9.orig/CMakeLists.txt 2018-10-12 16:57:06.166681500 -0400 -+++ alembic-1.7.9/CMakeLists.txt 2018-10-12 16:59:47.472179600 -0400 +--- a/CMakeLists.txt 2020-08-22 19:38:01.472003600 -0400 ++++ b/CMakeLists.txt 2020-08-22 19:41:50.743299400 -0400 @@ -80,7 +80,11 @@ # Set static/dynamic build options @@ -14,39 +13,17 @@ diff -Naur alembic-1.7.9.orig/CMakeLists.txt alembic-1.7.9/CMakeLists.txt SET(LIBRARY_INSTALL_DIR lib) SET(ARCHIVE_INSTALL_DIR lib) IF (ALEMBIC_SHARED_LIBS) -@@ -135,25 +139,15 @@ - - # Set some debug vs opt flags - IF ("${CMAKE_BUILD_TYPE}" MATCHES "Debug") -- ADD_DEFINITIONS(-DDEBUG=1 -UNDEBUG) -- IF (NOT WINDOWS) -- ADD_DEFINITIONS(-Wall -Werror -Wextra -Wno-unused-parameter) -- ENDIF() -+ ADD_DEFINITIONS(-DDEBUG=1 -UNDEBUG -Wall -Werror -Wextra -Wno-unused-parameter) - ELSEIF ("${CMAKE_BUILD_TYPE}" MATCHES "Release") -- ADD_DEFINITIONS(-DNDEBUG=1 -UDEBUG) -- IF (NOT WINDOWS) -- ADD_DEFINITIONS(-O3) -- ENDIF() -+ ADD_DEFINITIONS(-DNDEBUG=1 -UDEBUG -O3) - ENDIF() +@@ -142,7 +146,7 @@ + endif() + endif() -IF (NOT ${WINDOWS}) -- SET(EXTERNAL_MATH_LIBS "-lm") --ELSE() -- SET(EXTERNAL_MATH_LIBS "") --ENDIF() -+SET(EXTERNAL_MATH_LIBS "-lm") - - IF (${WINDOWS}) -- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") -+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - IF (MSVC) - IF ((CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16) AND - (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15)) -diff -Naur alembic-1.7.9.orig/lib/Alembic/CMakeLists.txt alembic-1.7.9/lib/Alembic/CMakeLists.txt ---- alembic-1.7.9.orig/lib/Alembic/CMakeLists.txt 2018-10-12 16:57:05.824799900 -0400 -+++ alembic-1.7.9/lib/Alembic/CMakeLists.txt 2018-10-12 17:02:05.467135400 -0400 ++IF (NOT MSVC) + SET(EXTERNAL_MATH_LIBS "-lm") + ELSE() + SET(EXTERNAL_MATH_LIBS "") +--- a/lib/Alembic/CMakeLists.txt 2018-10-12 16:57:05.824799900 -0400 ++++ b/lib/Alembic/CMakeLists.txt 2018-10-12 17:02:05.467135400 -0400 @@ -86,11 +86,12 @@ ENDIF() diff --git a/mingw-w64-alembic/PKGBUILD b/mingw-w64-alembic/PKGBUILD index 3fcad80a90..3b5bb7f79c 100644 --- a/mingw-w64-alembic/PKGBUILD +++ b/mingw-w64-alembic/PKGBUILD @@ -3,8 +3,8 @@ _realname=alembic pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.7.12 -pkgrel=2 +pkgver=1.7.14 +pkgrel=1 pkgdesc="A open framework for storing and sharing scene data (mingw-w64)" arch=('any') url="https://www.alembic.io/" @@ -18,8 +18,8 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/alembic/${_realname}/archive/${pkgver}.tar.gz" "0001-alembic-1.7.9-fix-windows-build.patch" "0002-alembic-1.7.9-remove-msc_ver-and-fix-builtins-and-includes.patch") -sha512sums=('e05e0b24056c17f01784ced1f9606a269974de195f1aca8a6fce2123314e7ee609f70df77ac7fe18dc7f0c04fb883d38cc7de9b963caacf9586aaa24d4ac6210' - 'e06598a65b61c89b2e7a4403abfef0ab763c8579e901382289c22a0418ce26408df64703b6e30ac380fa8c7f2a0ad2a97b69b6d5b1b8cf598d135cef9ee3afe1' +sha512sums=('b1ccef300516c1ad998f0b76094982faf06aa5f6054e117afc59e3a04ba9618d0b13649689f28b785289e0ee0ed59c4ffd5e2374b441d047f8384cd4d73f481c' + '29d6d68e7b82b8d71b6d29b83d846e3c2e11369e2ff7b99c84053b8e7c27cf8a09d451069c918613fd0f9adb8f6df763434a089704253e2985c16f8829fcfb9f' 'e3f69356519d000004d68836c09340a78830c671f00bd9e317d798fa91b72c4d879e938ab2fc1e935775c193b9622dca2c42327aff5ee3d0e185e3a1a402a9d9') prepare() { diff --git a/mingw-w64-apr/PKGBUILD b/mingw-w64-apr/PKGBUILD index 0d6eeba030..6e52f48a48 100644 --- a/mingw-w64-apr/PKGBUILD +++ b/mingw-w64-apr/PKGBUILD @@ -4,20 +4,20 @@ _realname=apr pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.6.5 -pkgrel=2 +pkgrel=3 pkgdesc="The Apache Portable Runtime (mingw-w64)" arch=('any') url="https://apr.apache.org/" license=('APACHE') +validpgpkeys=('B1B96F45DFBDCCF974019235193F180AB55D9977') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool" "${MINGW_PACKAGE_PREFIX}-python") -source=(https://www.apache.org/dist/apr/${_realname}-${pkgver}.tar.bz2{,.asc} +source=(https://www.apache.org/dist/apr/${_realname}-${pkgver}.tar.bz2 'apr_ssize_t.patch' 'apr_wtypes.patch') sha256sums=('a67ca9fcf9c4ff59bce7f428a323c8b5e18667fdea7b0ebad47d194371b0a105' - 'SKIP' - 'cd75b79706dceba2af20f9e9a2d05032eacaf6f04edecb3a21f11594c0ccee4b' + 'ba7d6de7e7930801df483d444b97c159af4ff11b4ce27e1337aea5e0417e6066' 'b82dd98ec8cff2273fb071dc9f1d2ee7466905c9b82a12d3d83ce1cb5920a5d6') prepare() { diff --git a/mingw-w64-apr/apr_ssize_t.patch b/mingw-w64-apr/apr_ssize_t.patch index 5cb261b909..addf78098a 100644 --- a/mingw-w64-apr/apr_ssize_t.patch +++ b/mingw-w64-apr/apr_ssize_t.patch @@ -7,8 +7,8 @@ Index: configure.in ssize_t_fmt="ld" AC_MSG_RESULT(%ld) +elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long_long"; then -+ ssize_t_fmt="lld" -+ AC_MSG_RESULT(%lld) ++ ssize_t_fmt="I64d" ++ AC_MSG_RESULT(%I64d) else AC_ERROR([could not determine the proper format for apr_ssize_t]) fi @@ -17,8 +17,8 @@ Index: configure.in size_t_fmt="ld" AC_MSG_RESULT(%ld) +elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long_long"; then -+ size_t_fmt="lld" -+ AC_MSG_RESULT(%lld) ++ size_t_fmt="I64d" ++ AC_MSG_RESULT(%I64d) else AC_ERROR([could not determine the proper format for apr_size_t]) fi diff --git a/mingw-w64-arm-none-eabi-binutils/PKGBUILD b/mingw-w64-arm-none-eabi-binutils/PKGBUILD index a018ad95bf..047c9c564f 100644 --- a/mingw-w64-arm-none-eabi-binutils/PKGBUILD +++ b/mingw-w64-arm-none-eabi-binutils/PKGBUILD @@ -1,4 +1,5 @@ # Maintainer: Carlos Antunes +# Maintainer: fauxpark # Contributed by: nanodude _realname=binutils @@ -6,44 +7,50 @@ _target=arm-none-eabi pkgbase=mingw-w64-${_target}-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_target}-${_realname}") -pkgver=2.24 +pkgver=2.35 pkgrel=1 -pkgdesc="GNU Tools for ARM Embedded Processors - Binutils (mingw-w64)" +pkgdesc='GNU Tools for ARM Embedded Processors - Binutils (mingw-w64)' arch=('any') -url="https://www.gnu.org/software/binutils/" license=('GPL') +url='https://www.gnu.org/software/binutils/binutils.html' groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs') -source=("https://mirrors.kernel.org/sources.redhat.com/${_realname}/releases/${_realname}-${pkgver}.tar.bz2") -sha256sums=('e5e8c5be9664e7f7f96e0d09919110ab5ad597794f5b1809871177a0f0f14137') +source=("https://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.xz") +sha256sums=('1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85') + +prepare() { + cd ${srcdir}/binutils-${pkgver} + + mkdir binutils-build-${MINGW_CHOST} +} build() { - if check_option "debug" "y"; then - CFLAGS+=" -g -O0" - fi - cd $srcdir - rm -rf build-${MINGW_CHOST} - mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - ../${_realname}-${pkgver}/configure \ - --build="${MINGW_CHOST}" \ - --host="${MINGW_CHOST}" \ - --target="${_target}" \ - --prefix="${MINGW_PREFIX}" \ - --disable-werror \ - --disable-lto \ - --with-sysroot="${MINGW_PREFIX}" \ - --disable-nls \ - --disable-rpath \ - --enable-multilib \ - --enable-interwork - make + cd ${srcdir}/binutils-${pkgver}/binutils-build-${MINGW_CHOST} + + ../configure \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --target=${_target} \ + --enable-multilib \ + --enable-interwork \ + --with-gnu-as \ + --with-gnu-ld \ + --disable-nls \ + --enable-ld=default \ + --enable-gold \ + --enable-plugins \ + --enable-deterministic-archives + make } package() { - cd ${srcdir}/build-${MINGW_CHOST} - make DESTDIR=${pkgdir} install + cd ${srcdir}/binutils-${pkgver}/binutils-build-${MINGW_CHOST} - # Remove unwanted files - rm -rf ${pkgdir}${MINGW_PREFIX}/share/info + make DESTDIR="${pkgdir}" install + + cd ${pkgdir}${MINGW_PREFIX} + + for info in as bfd binutils gprof ld; do + mv share/info/${info}.info share/info/arm-none-eabi-${info}.info + done } diff --git a/mingw-w64-arm-none-eabi-gcc/010-gcc-isl-0.13.patch b/mingw-w64-arm-none-eabi-gcc/010-gcc-isl-0.13.patch deleted file mode 100644 index ee252e8aba..0000000000 --- a/mingw-w64-arm-none-eabi-gcc/010-gcc-isl-0.13.patch +++ /dev/null @@ -1,424 +0,0 @@ ---- gcc/graphite-clast-to-gimple.c.orig 2014-11-04 18:42:39.422980400 -0500 -+++ gcc/graphite-clast-to-gimple.c 2014-11-04 21:27:23.628640600 -0500 -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #endif -@@ -851,18 +852,18 @@ - static void - compute_bounds_for_param (scop_p scop, int param, mpz_t low, mpz_t up) - { -- isl_int v; -+ isl_val *v; - isl_aff *aff = isl_aff_zero_on_domain - (isl_local_space_from_space (isl_set_get_space (scop->context))); - - aff = isl_aff_add_coefficient_si (aff, isl_dim_param, param, 1); - -- isl_int_init (v); -- isl_set_min (scop->context, aff, &v); -- isl_int_get_gmp (v, low); -- isl_set_max (scop->context, aff, &v); -- isl_int_get_gmp (v, up); -- isl_int_clear (v); -+ v = isl_set_min_val (scop->context, aff); -+ isl_val_get_num_gmp (v, low); -+ isl_val_free (v); -+ v = isl_set_max_val (scop->context, aff); -+ isl_val_get_num_gmp (v, up); -+ isl_val_free (v); - isl_aff_free (aff); - } - -@@ -881,8 +882,7 @@ - isl_set *domain; - isl_aff *dimension; - isl_local_space *local_space; -- isl_int isl_value; -- enum isl_lp_result lp_result; -+ isl_val *isl_value; - - domain = isl_set_copy (isl_set_from_cloog_domain (loop->domain)); - local_space = isl_local_space_from_space (isl_set_get_space (domain)); -@@ -891,17 +891,12 @@ - isl_set_dim (domain, isl_dim_set) - 1, - 1); - -- isl_int_init (isl_value); -- -- lp_result = isl_set_min (domain, dimension, &isl_value); -- assert (lp_result == isl_lp_ok); -- isl_int_get_gmp (isl_value, low); -- -- lp_result = isl_set_max (domain, dimension, &isl_value); -- assert (lp_result == isl_lp_ok); -- isl_int_get_gmp (isl_value, up); -- -- isl_int_clear (isl_value); -+ isl_value = isl_set_min_val (domain, dimension); -+ isl_val_get_num_gmp (isl_value, low); -+ isl_val_free (isl_value); -+ isl_value = isl_set_max_val (domain, dimension); -+ isl_val_get_num_gmp (isl_value, up); -+ isl_val_free (isl_value); - isl_set_free (domain); - isl_aff_free (dimension); - } ---- gcc/graphite-interchange.c.orig 2014-11-04 18:43:05.876102400 -0500 -+++ gcc/graphite-interchange.c 2014-11-04 21:27:23.618640600 -0500 -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - #include - #endif -@@ -71,13 +72,13 @@ - isl_local_space *ls = isl_local_space_from_space (isl_map_get_space (map)); - unsigned offset, nsubs; - int i; -- isl_int size, subsize; -+ isl_ctx *ct; -+ -+ isl_val *size, *subsize, *size1; - - res = isl_equality_alloc (ls); -- isl_int_init (size); -- isl_int_set_ui (size, 1); -- isl_int_init (subsize); -- isl_int_set_ui (subsize, 1); -+ ct = isl_local_space_get_ctx (ls); -+ size = isl_val_int_from_ui (ct, 1); - - nsubs = isl_set_dim (pdr->extent, isl_dim_set); - /* -1 for the already included L dimension. */ -@@ -90,18 +91,17 @@ - isl_space *dc; - isl_aff *aff; - -- res = isl_constraint_set_coefficient (res, isl_dim_out, offset + i, size); -- -+ size1 = isl_val_copy (size); -+ res = isl_constraint_set_coefficient_val (res, isl_dim_out, offset + i, size); - dc = isl_set_get_space (pdr->extent); - aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); - aff = isl_aff_set_coefficient_si (aff, isl_dim_in, i, 1); -- isl_set_max (pdr->extent, aff, &subsize); -+ subsize = isl_set_max_val (pdr->extent, aff); - isl_aff_free (aff); -- isl_int_mul (size, size, subsize); -+ size = isl_val_mul (size1, subsize); - } - -- isl_int_clear (subsize); -- isl_int_clear (size); -+ isl_val_free (size); - - return res; - } -@@ -118,7 +118,7 @@ - isl_aff *aff; - isl_space *dc; - isl_constraint *lma, *c; -- isl_int islstride; -+ isl_val *islstride; - graphite_dim_t time_depth; - unsigned offset, nt; - unsigned i; -@@ -231,10 +231,9 @@ - aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); - aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset - 1, -1); - aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset + offset - 1, 1); -- isl_int_init (islstride); -- isl_set_max (set, aff, &islstride); -- isl_int_get_gmp (islstride, stride); -- isl_int_clear (islstride); -+ islstride = isl_set_max_val (set, aff); -+ isl_val_get_num_gmp (islstride, stride); -+ isl_val_free (islstride); - isl_aff_free (aff); - isl_set_free (set); - ---- gcc/graphite-optimize-isl.c.orig 2014-11-04 18:42:39.462980500 -0500 -+++ gcc/graphite-optimize-isl.c 2014-11-04 21:31:43.873183200 -0500 -@@ -252,6 +252,7 @@ - DimToVectorize can be devided by VectorWidth. The default VectorWidth is - currently constant and not yet target specific. This function does not reason - about parallelism. */ -+ - static isl_map * - getPrevectorMap(isl_ctx *ctx, int DimToVectorize, - int ScheduleDimensions, -@@ -265,8 +266,9 @@ - isl_aff *Aff; - int PointDimension; /* ip */ - int TileDimension; /* it */ -- isl_int VectorWidthMP; -+ isl_val *VectorWidthMP; - int i; -+ isl_ctx *ct; - - /* assert (0 <= DimToVectorize && DimToVectorize < ScheduleDimensions);*/ - -@@ -296,10 +298,10 @@ - Aff = isl_aff_zero_on_domain(LocalSpaceRange); - Aff = isl_aff_set_constant_si(Aff, VectorWidth); - Aff = isl_aff_set_coefficient_si(Aff, isl_dim_in, TileDimension, 1); -- isl_int_init(VectorWidthMP); -- isl_int_set_si(VectorWidthMP, VectorWidth); -- Aff = isl_aff_mod(Aff, VectorWidthMP); -- isl_int_clear(VectorWidthMP); -+ -+ ct = isl_aff_get_ctx(Aff); -+ VectorWidthMP = isl_val_int_from_si(ct, VectorWidth); -+ Aff = isl_aff_mod_val(Aff, VectorWidthMP); - Modulo = isl_pw_aff_zero_set(isl_pw_aff_from_aff(Aff)); - TilingMap = isl_map_intersect_range(TilingMap, Modulo); - -@@ -365,7 +367,7 @@ - { - for (i = ScheduleDimensions - 1 ; i >= 0 ; i--) - { -- if (isl_band_member_is_zero_distance(Band, i)) -+ if (isl_band_member_is_coincident(Band, i)) - { - isl_map *TileMap; - isl_union_map *TileUMap; ---- gcc/graphite-poly.c.orig 2014-11-04 18:42:39.565982500 -0500 -+++ gcc/graphite-poly.c 2014-11-04 21:27:23.608640600 -0500 -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #endif -@@ -1021,10 +1022,7 @@ - isl_set *transdomain; - isl_space *dc; - isl_aff *aff; -- isl_int isllb, islub; -- -- isl_int_init (isllb); -- isl_int_init (islub); -+ isl_val *isllb, *islub; - - /* Map the iteration domain through the current scatter, and work - on the resulting set. */ -@@ -1038,15 +1036,14 @@ - - /* And find the min/max for that function. */ - /* XXX isl check results? */ -- isl_set_min (transdomain, aff, &isllb); -- isl_set_max (transdomain, aff, &islub); -+ isllb = isl_set_min_val (transdomain, aff); -+ islub = isl_set_max_val (transdomain, aff); - -- isl_int_sub (islub, islub, isllb); -- isl_int_add_ui (islub, islub, 1); -- isl_int_get_gmp (islub, res); -+ islub = isl_val_sub (islub, isllb); -+ islub = isl_val_add_ui (islub, 1); -+ isl_val_get_num_gmp (islub, res); - -- isl_int_clear (isllb); -- isl_int_clear (islub); -+ isl_val_free (islub); - isl_aff_free (aff); - isl_set_free (transdomain); - } ---- gcc/graphite-sese-to-poly.c.orig 2014-11-04 18:42:39.730983000 -0500 -+++ gcc/graphite-sese-to-poly.c 2014-11-04 21:27:23.598640600 -0500 -@@ -26,7 +26,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #endif -@@ -46,7 +46,6 @@ - #include "graphite-poly.h" - #include "graphite-sese-to-poly.h" - -- - /* Assigns to RES the value of the INTEGER_CST T. */ - - static inline void -@@ -461,13 +460,11 @@ - int i; - int nb_iterators = pbb_dim_iter_domain (pbb); - int used_scattering_dimensions = nb_iterators * 2 + 1; -- isl_int val; -+ isl_val *val; - isl_space *dc, *dm; - - gcc_assert (scattering_dimensions >= used_scattering_dimensions); - -- isl_int_init (val); -- - dc = isl_set_get_space (pbb->domain); - dm = isl_space_add_dims (isl_space_from_domain (dc), - isl_dim_out, scattering_dimensions); -@@ -481,12 +478,10 @@ - isl_constraint *c = isl_equality_alloc - (isl_local_space_from_space (isl_map_get_space (pbb->schedule))); - -- if (0 != isl_aff_get_coefficient (static_sched, isl_dim_in, -- i / 2, &val)) -- gcc_unreachable (); -+ val = isl_aff_get_coefficient_val (static_sched, isl_dim_in, i / 2); - -- isl_int_neg (val, val); -- c = isl_constraint_set_constant (c, val); -+ val = isl_val_neg (val); -+ c = isl_constraint_set_constant_val (c, val); - c = isl_constraint_set_coefficient_si (c, isl_dim_out, i, 1); - pbb->schedule = isl_map_add_constraint (pbb->schedule, c); - } -@@ -500,8 +495,6 @@ - } - } - -- isl_int_clear (val); -- - pbb->transformed = isl_map_copy (pbb->schedule); - } - -@@ -681,12 +674,12 @@ - isl_local_space *ls = isl_local_space_from_space (isl_space_copy (space)); - isl_aff *aff = isl_aff_zero_on_domain (ls); - isl_set *dom = isl_set_universe (space); -- isl_int v; -+ isl_val *v; -+ isl_ctx *ct; - -- isl_int_init (v); -- isl_int_set_gmp (v, g); -- aff = isl_aff_add_constant (aff, v); -- isl_int_clear (v); -+ ct = isl_aff_get_ctx (aff); -+ v = isl_val_int_from_gmp (ct, g); -+ aff = isl_aff_add_constant_val (aff, v); - - return isl_pw_aff_alloc (dom, aff); - } -@@ -709,18 +702,16 @@ - - /* Compute pwaff mod 2^width. */ - -+extern isl_ctx *the_isl_ctx; -+ - static isl_pw_aff * - wrap (isl_pw_aff *pwaff, unsigned width) - { -- isl_int mod; -- -- isl_int_init (mod); -- isl_int_set_si (mod, 1); -- isl_int_mul_2exp (mod, mod, width); -- -- pwaff = isl_pw_aff_mod (pwaff, mod); -+ isl_val *mod; - -- isl_int_clear (mod); -+ mod = isl_val_int_from_ui(the_isl_ctx, width); -+ mod = isl_val_2exp (mod); -+ pwaff = isl_pw_aff_mod_val (pwaff, mod); - - return pwaff; - } -@@ -976,11 +967,10 @@ - isl_space *space; - isl_constraint *c; - int pos = isl_set_dim (outer, isl_dim_set); -- isl_int v; -+ isl_val *v; - mpz_t g; - - mpz_init (g); -- isl_int_init (v); - - inner = isl_set_add_dims (inner, isl_dim_set, 1); - space = isl_set_get_space (inner); -@@ -998,8 +988,8 @@ - (isl_local_space_from_space(isl_space_copy (space))); - c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1); - tree_int_to_gmp (nb_iters, g); -- isl_int_set_gmp (v, g); -- c = isl_constraint_set_constant (c, v); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); -+ c = isl_constraint_set_constant_val (c, v); - inner = isl_set_add_constraint (inner, c); - } - -@@ -1053,9 +1043,9 @@ - c = isl_inequality_alloc - (isl_local_space_from_space (isl_space_copy (space))); - c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1); -- isl_int_set_gmp (v, g); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); - mpz_clear (g); -- c = isl_constraint_set_constant (c, v); -+ c = isl_constraint_set_constant_val (c, v); - inner = isl_set_add_constraint (inner, c); - } - else -@@ -1078,7 +1068,6 @@ - - isl_set_free (outer); - isl_space_free (space); -- isl_int_clear (v); - mpz_clear (g); - } - -@@ -1342,17 +1331,15 @@ - isl_space *space = isl_set_get_space (scop->context); - isl_constraint *c; - mpz_t g; -- isl_int v; -+ isl_val *v; - - c = isl_inequality_alloc (isl_local_space_from_space (space)); - mpz_init (g); -- isl_int_init (v); - tree_int_to_gmp (lb, g); -- isl_int_set_gmp (v, g); -- isl_int_neg (v, v); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); -+ v = isl_val_neg (v); - mpz_clear (g); -- c = isl_constraint_set_constant (c, v); -- isl_int_clear (v); -+ c = isl_constraint_set_constant_val (c, v); - c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, 1); - - scop->context = isl_set_add_constraint (scop->context, c); -@@ -1363,17 +1350,15 @@ - isl_space *space = isl_set_get_space (scop->context); - isl_constraint *c; - mpz_t g; -- isl_int v; -+ isl_val *v; - - c = isl_inequality_alloc (isl_local_space_from_space (space)); - - mpz_init (g); -- isl_int_init (v); - tree_int_to_gmp (ub, g); -- isl_int_set_gmp (v, g); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); - mpz_clear (g); -- c = isl_constraint_set_constant (c, v); -- isl_int_clear (v); -+ c = isl_constraint_set_constant_val (c, v); - c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, -1); - - scop->context = isl_set_add_constraint (scop->context, c); diff --git a/mingw-w64-arm-none-eabi-gcc/020-gcc-auto-host-screwup.patch b/mingw-w64-arm-none-eabi-gcc/020-gcc-auto-host-screwup.patch deleted file mode 100644 index adc0a26cda..0000000000 --- a/mingw-w64-arm-none-eabi-gcc/020-gcc-auto-host-screwup.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- gcc/libgcc/crtstuff.c.orig 2014-11-06 20:00:44.376302800 -0500 -+++ gcc/libgcc/crtstuff.c 2014-11-06 20:01:33.215445300 -0500 -@@ -52,6 +52,7 @@ - identified the set of defines that need to go into auto-target.h, - this will have to do. */ - #include "auto-host.h" -+#undef caddr_t - #undef pid_t - #undef rlim_t - #undef ssize_t diff --git a/mingw-w64-arm-none-eabi-gcc/PKGBUILD b/mingw-w64-arm-none-eabi-gcc/PKGBUILD index 9eafdcb102..77a681bce4 100644 --- a/mingw-w64-arm-none-eabi-gcc/PKGBUILD +++ b/mingw-w64-arm-none-eabi-gcc/PKGBUILD @@ -1,4 +1,5 @@ # Maintainer: Carlos Antunes +# Maintainer: fauxpark # Contributed by: nanodude _realname=gcc @@ -6,98 +7,127 @@ _target=arm-none-eabi pkgbase=mingw-w64-${_target}-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_target}-${_realname}") -pkgver=8.2.0 -pkgrel=1 -pkgdesc="GNU Tools for ARM Embedded Processors - GCC (mingw-w64)" +pkgver=8.4.0 +pkgrel=2 +pkgdesc='GNU Tools for ARM Embedded Processors - GCC (mingw-w64)' arch=('any') -url="https://launchpad.net/gcc-arm-embedded" -license=('GPL' 'Various') +license=('GPL') +url='https://www.gnu.org/software/gcc/gcc.html' groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain") -depends=("${MINGW_PACKAGE_PREFIX}-${_target}-newlib" - "${MINGW_PACKAGE_PREFIX}-${_target}-binutils") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -options=('staticlibs' '!debug' '!strip') -source=('gcc-arm-embedded.tar.bz2::https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q3-update/+download/gcc-arm-none-eabi-4_8-2014q3-20140805-src.tar.bz2' - '010-gcc-isl-0.13.patch' - '020-gcc-auto-host-screwup.patch') -sha256sums=('09519946642d5366ab739a89d3388b2ea333cd7dc50192bab3736a9593af83e6' - '8e8da71e6e6b347dd7fc7f7938bf9af22be031ad8916749fa6c368f87d8891f0' - 'b5e826a0dc477f04233e68cc7d0dfc4f498c36e16c5cc3751cb52bcd9a7f0c24') -noextract=('gcc-arm-embedded.tar.bz2') +depends=( + "${MINGW_PACKAGE_PREFIX}-${_target}-binutils" + "${MINGW_PACKAGE_PREFIX}-${_target}-newlib" + "${MINGW_PACKAGE_PREFIX}-isl" + "${MINGW_PACKAGE_PREFIX}-mpc" + "${MINGW_PACKAGE_PREFIX}-zlib" +) +makedepends=( + "${MINGW_PACKAGE_PREFIX}-gmp" + "${MINGW_PACKAGE_PREFIX}-mpfr" +) +options=('!emptydirs' '!strip') +source=("https://ftp.gnu.org/gnu/gcc/gcc-${pkgver}/gcc-${pkgver}.tar.xz") +sha256sums=('e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4') prepare() { - # Extract packages from archive - rm -rf ${srcdir}/tmp - mkdir ${srcdir}/tmp && cd ${srcdir}/tmp - tar xf ../../gcc-arm-embedded.tar.bz2 --strip-components=2 + cd ${srcdir}/gcc-${pkgver} - # Copy and extract GCC package - cp gcc.tar.bz2 ${srcdir} - cd ${srcdir} - [ -d gcc ] && rm -rf gcc - tar xf gcc.tar.bz2 + mkdir gcc-build-${MINGW_CHOST} + mkdir gcc-build-nano-${MINGW_CHOST} +} - # GCC: Compatibility with isl>=0.12.2 - cd "${srcdir}/gcc" - patch -p0 -i "${srcdir}/010-gcc-isl-0.13.patch" +_build_gcc() { + local _GCC_LDFLAGS="${LDFLAGS} -Wl,--disable-dynamicbase" + if [ "${CARCH}" = 'x86_64' ]; then + _GCC_LDFLAGS+=",--image-base=0x400000" + fi + ../configure \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --target=${_target} \ + --with-native-system-header-dir=${MINGW_PREFIX}/${MINGW_CHOST}/include \ + --libexecdir=${MINGW_PREFIX}/lib \ + --enable-languages=c,c++ \ + --enable-plugins \ + --disable-decimal-float \ + --disable-libffi \ + --disable-libgomp \ + --disable-libmudflap \ + --disable-libquadmath \ + --disable-libssp \ + --disable-libstdcxx-pch \ + --disable-nls \ + --disable-shared \ + --disable-threads \ + --disable-tls \ + --with-gnu-as \ + --with-gnu-ld \ + --with-system-zlib \ + --with-newlib \ + --with-headers=${MINGW_PREFIX}/${_target}/include \ + --with-python-dir=share/gcc-${_target} \ + --with-gmp \ + --with-mpfr \ + --with-mpc \ + --with-isl \ + --with-libelf \ + --enable-gnu-indirect_function \ + --with-multilib-list=rmprofile \ + --with-host-libstdcxx="-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm" \ + --enable-linker-plugin-flags='LDFLAGS=-static-libstdc++\ -static-libgcc\ '"${LDFLAGS// /\\ }"'\ -Wl,--stack,12582912' \ + LDFLAGS="${_GCC_LDFLAGS}" - # GCC: deal with auto-host.h hack in crtstuff.c - patch -p1 -i "${srcdir}/020-gcc-auto-host-screwup.patch" + make INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0' } build() { - # Build GCC - cd $srcdir - rm -rf build-${MINGW_CHOST} - mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - unset CFLAGS - unset CXXFLAGS - CFLAGS="-g -O3 -fdata-sections -ffunction-sections" - CXXFLAGS="${CFLAGS}" - ../${_realname}/configure \ - --build="${MINGW_CHOST}" \ - --host="${MINGW_CHOST}" \ - --target="${_target}" \ - --prefix="${MINGW_PREFIX}" \ - --enable-languages="c,c++" \ - --disable-werror \ - --disable-lto \ - --disable-nls \ - --disable-libffi \ - --disable-decimal-float \ - --disable-libgomp \ - --disable-libmudflap \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libstdcxx-pch \ - --disable-libsanitizer \ - --disable-threads \ - --disable-tls \ - --disable-shared \ - --enable-multilib \ - --enable-interwork \ - --with-newlib \ - --with-headers=yes \ - --with-native-system-header-dir=/include \ - --with-gnu-as \ - --with-gnu-ld \ - --with-system-zlib \ - --with-python-dir="share/${_target}-${_realname}" \ - --with-libelf \ - --with-{gmp,mpfr,mpc,isl,cloog}="${MINGW_PREFIX}" \ - --disable-isl-version-check \ - --disable-cloog-version-check \ - --with-multilib-list="armv6-m,armv7-m,armv7e-m,armv7-r" \ - --with-host-libstdcxx="-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm" \ - --with-sysroot="${MINGW_PREFIX}" - make + cd ${srcdir}/gcc-${pkgver}/gcc-build-${MINGW_CHOST} + + export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections' + export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections' + _build_gcc + + # Build libstdc++ without exceptions support (the 'nano' variant) + cd ${srcdir}/gcc-${pkgver}/gcc-build-nano-${MINGW_CHOST} + + export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions' + export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions' + _build_gcc } package() { - cd ${srcdir}/build-${MINGW_CHOST} - make -j1 DESTDIR=${pkgdir} install + cd ${srcdir}/gcc-${pkgver}/gcc-build-${MINGW_CHOST} - # Remove files that conflict with host - rm -rf "${pkgdir}${MINGW_PREFIX}/share/info" + make DESTDIR="${pkgdir}" install + + cd ${srcdir}/gcc-${pkgver}/gcc-build-nano-${MINGW_CHOST} + + mkdir ${pkgdir}/nano-install-${MINGW_CHOST} + + make DESTDIR="${pkgdir}/nano-install-${MINGW_CHOST}" install + + cd ${pkgdir}${MINGW_PREFIX} + + # we need only libstdc nano files + multilibs=($(bin/${_target}-gcc -print-multi-lib 2>/dev/null)) + for multilib in "${multilibs[@]}"; do + dir="${multilib%%;*}" + from_dir=${pkgdir}/nano-install-${MINGW_CHOST}${MINGW_PREFIX}/${_target}/lib/"$dir" + to_dir=${_target}/lib/"$dir" + + cp -f "$from_dir"/libstdc++.a "$to_dir"/libstdc++_nano.a + cp -f "$from_dir"/libsupc++.a "$to_dir"/libsupc++_nano.a + done + rm -r ${pkgdir}/nano-install-${MINGW_CHOST} + + # strip target binaries + find lib/gcc/${_target}/${pkgver} ${_target}/lib -type f -and \( -name \*.a -or -name \*.o \) -exec ${_target}-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc '{}' \; + + # strip host binaries + find bin/ lib/gcc/${_target}/${pkgver} -type f -and \( -executable \) -exec strip '{}' \; + + # Remove files that conflict with host gcc package + rm -r share/man/man7 + rm -r share/info } - diff --git a/mingw-w64-arm-none-eabi-gdb/10-remove-duplicate-tputs.patch b/mingw-w64-arm-none-eabi-gdb/10-remove-duplicate-tputs.patch deleted file mode 100644 index 586b2366b0..0000000000 --- a/mingw-w64-arm-none-eabi-gdb/10-remove-duplicate-tputs.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- ./gdb/gdb/windows-termcap.c.orig 2014-11-08 13:40:54.276747600 -0500 -+++ ./gdb/gdb/windows-termcap.c 2014-11-08 13:41:58.879846600 -0500 -@@ -56,7 +56,7 @@ - { - return NULL; - } -- -+/* - int - tputs (char *string, int nlines, int (*outfun) ()) - { -@@ -65,7 +65,7 @@ - - return 0; - } -- -+*/ - char * - tgoto (const char *cap, int col, int row) - { diff --git a/mingw-w64-arm-none-eabi-gdb/PKGBUILD b/mingw-w64-arm-none-eabi-gdb/PKGBUILD index 611db1cd9f..ed812e39fa 100644 --- a/mingw-w64-arm-none-eabi-gdb/PKGBUILD +++ b/mingw-w64-arm-none-eabi-gdb/PKGBUILD @@ -1,4 +1,5 @@ # Maintainer: Carlos Antunes +# Maintainer: fauxpark # Contributed by: nanodude _realname=gdb @@ -6,62 +7,51 @@ _target=arm-none-eabi pkgbase=mingw-w64-${_target}-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_target}-${_realname}") -pkgver=7.6.0 +pkgver=9.2 pkgrel=1 -pkgdesc="GNU Tools for ARM Embedded Processors - GDB (mingw-w64)" +pkgdesc='GNU Tools for ARM Embedded Processors - GDB (mingw-w64)' arch=('any') -url="https://launchpad.net/gcc-arm-embedded" -license=('GPL' 'Various') +license=('GPL') +url='https://www.gnu.org/software/gdb/' groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain") -depends=("${MINGW_PACKAGE_PREFIX}-readline" - "${MINGW_PACKAGE_PREFIX}-zlib") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -options=('staticlibs' '!debug' 'strip') -source=('gcc-arm-embedded.tar.bz2::https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q3-update/+download/gcc-arm-none-eabi-4_8-2014q3-20140805-src.tar.bz2' - '10-remove-duplicate-tputs.patch') -sha256sums=('09519946642d5366ab739a89d3388b2ea333cd7dc50192bab3736a9593af83e6' - '80c719e0d91b4c712e03a2dd7f2d5197a16d32465d4514d904f4c910cfddb997') -noextract=('gcc-arm-embedded.tar.bz2') +source=(https://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz{,.sig}) +sha256sums=( + '360cd7ae79b776988e89d8f9a01c985d0b1fa21c767a4295e5f88cb49175c555' + 'SKIP' +) +validpgpkeys=('F40ADB902B24264AA42E50BF92EDB04BFF325CF3') # Joel Brobecker prepare() { - # Extract packages from archive - rm -rf ${srcdir}/tmp - mkdir ${srcdir}/tmp && cd ${srcdir}/tmp - tar xvf ../../gcc-arm-embedded.tar.bz2 --strip-components=2 + cd ${srcdir}/${_realname}-${pkgver} - # Copy and extract GDB package - cp gdb.tar.bz2 ${srcdir} - cd ${srcdir} - tar xvf gdb.tar.bz2 - - # GDB: remove duplicate tputs - patch -p1 -i "${srcdir}/10-remove-duplicate-tputs.patch" + mkdir ${_realname}-build } build() { - # Build GDB - cd $srcdir - rm -rf build-${MINGW_CHOST} - mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - ../${_realname}/configure \ - --build="${MINGW_CHOST}" \ - --host="${MINGW_CHOST}" \ - --target="${_target}" \ - --prefix="${MINGW_PREFIX}" \ - --disable-werror \ - --disable-nls \ - --with-system-readline - make + cd ${srcdir}/${_realname}-${pkgver}/${_realname}-build + + ../configure \ + --build=${MINGW_CHOST} \ + --prefix=${MINGW_PREFIX} \ + --target=${_target} \ + --disable-nls \ + --disable-debug \ + --disable-dependency-tracking \ + --disable-binutils \ + --disable-libssp \ + --disable-install-libbfd \ + --disable-install-libiberty \ + --with-system-readline + make } package() { - cd ${srcdir}/build-${MINGW_CHOST} - make -j1 DESTDIR=${pkgdir} install + cd ${srcdir}/${_realname}-${pkgver}/${_realname}-build - # Remove files that conflict with host - rm -rf "${pkgdir}${MINGW_PREFIX}/share/info" - rm -rf "${pkgdir}${MINGW_PREFIX}/share/gdb" - rm -rf "${pkgdir}${MINGW_PREFIX}/include/gdb/jit-reader.h" - rm -rf "${pkgdir}${MINGW_PREFIX}/lib/libiberty.a" + make DESTDIR="$pkgdir" install-gdb + + cd ${pkgdir}${MINGW_PREFIX} + + # Remove files that conflict with native gdb + rm -rf include share/gdb share/info } - diff --git a/mingw-w64-arm-none-eabi-newlib/10-newlib-arm-dynamic-reent.patch b/mingw-w64-arm-none-eabi-newlib/10-newlib-arm-dynamic-reent.patch deleted file mode 100644 index 1828c95484..0000000000 --- a/mingw-w64-arm-none-eabi-newlib/10-newlib-arm-dynamic-reent.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- newlib-2.1.0/newlib/libc/include/sys/config.h.orig 2014-11-03 14:00:09.151452400 -0500 -+++ newlib-2.1.0/newlib/libc/include/sys/config.h 2014-11-03 13:59:47.444421100 -0500 -@@ -8,6 +8,10 @@ - #define MALLOC_ALIGNMENT 16 - #endif - -+#if defined(__arm__) || defined(__thumb__) -+#define __DYNAMIC_REENT__ -+#endif -+ - /* exceptions first */ - #if defined(__H8500__) || defined(__W65__) - #define __SMALL_BITFIELDS diff --git a/mingw-w64-arm-none-eabi-newlib/20-newlib-libgloss-configure-fix.patch b/mingw-w64-arm-none-eabi-newlib/20-newlib-libgloss-configure-fix.patch deleted file mode 100644 index 634552d42e..0000000000 --- a/mingw-w64-arm-none-eabi-newlib/20-newlib-libgloss-configure-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/newlib/libgloss/arm/configure.orig 2014-11-05 17:48:37.573856400 -0500 -+++ src/newlib/libgloss/arm/configure 2014-11-05 17:49:42.736954500 -0500 -@@ -2551,7 +2551,7 @@ - - - --host_makefile_frag=${srcdir}/../config/default.mh -+host_makefile_frag=`cd $srcdir/../config;pwd`/default.mh - - host_makefile_frag_path=$host_makefile_frag - diff --git a/mingw-w64-arm-none-eabi-newlib/99-gcc-isl-0.13.patch b/mingw-w64-arm-none-eabi-newlib/99-gcc-isl-0.13.patch deleted file mode 100644 index ee252e8aba..0000000000 --- a/mingw-w64-arm-none-eabi-newlib/99-gcc-isl-0.13.patch +++ /dev/null @@ -1,424 +0,0 @@ ---- gcc/graphite-clast-to-gimple.c.orig 2014-11-04 18:42:39.422980400 -0500 -+++ gcc/graphite-clast-to-gimple.c 2014-11-04 21:27:23.628640600 -0500 -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #endif -@@ -851,18 +852,18 @@ - static void - compute_bounds_for_param (scop_p scop, int param, mpz_t low, mpz_t up) - { -- isl_int v; -+ isl_val *v; - isl_aff *aff = isl_aff_zero_on_domain - (isl_local_space_from_space (isl_set_get_space (scop->context))); - - aff = isl_aff_add_coefficient_si (aff, isl_dim_param, param, 1); - -- isl_int_init (v); -- isl_set_min (scop->context, aff, &v); -- isl_int_get_gmp (v, low); -- isl_set_max (scop->context, aff, &v); -- isl_int_get_gmp (v, up); -- isl_int_clear (v); -+ v = isl_set_min_val (scop->context, aff); -+ isl_val_get_num_gmp (v, low); -+ isl_val_free (v); -+ v = isl_set_max_val (scop->context, aff); -+ isl_val_get_num_gmp (v, up); -+ isl_val_free (v); - isl_aff_free (aff); - } - -@@ -881,8 +882,7 @@ - isl_set *domain; - isl_aff *dimension; - isl_local_space *local_space; -- isl_int isl_value; -- enum isl_lp_result lp_result; -+ isl_val *isl_value; - - domain = isl_set_copy (isl_set_from_cloog_domain (loop->domain)); - local_space = isl_local_space_from_space (isl_set_get_space (domain)); -@@ -891,17 +891,12 @@ - isl_set_dim (domain, isl_dim_set) - 1, - 1); - -- isl_int_init (isl_value); -- -- lp_result = isl_set_min (domain, dimension, &isl_value); -- assert (lp_result == isl_lp_ok); -- isl_int_get_gmp (isl_value, low); -- -- lp_result = isl_set_max (domain, dimension, &isl_value); -- assert (lp_result == isl_lp_ok); -- isl_int_get_gmp (isl_value, up); -- -- isl_int_clear (isl_value); -+ isl_value = isl_set_min_val (domain, dimension); -+ isl_val_get_num_gmp (isl_value, low); -+ isl_val_free (isl_value); -+ isl_value = isl_set_max_val (domain, dimension); -+ isl_val_get_num_gmp (isl_value, up); -+ isl_val_free (isl_value); - isl_set_free (domain); - isl_aff_free (dimension); - } ---- gcc/graphite-interchange.c.orig 2014-11-04 18:43:05.876102400 -0500 -+++ gcc/graphite-interchange.c 2014-11-04 21:27:23.618640600 -0500 -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - #include - #endif -@@ -71,13 +72,13 @@ - isl_local_space *ls = isl_local_space_from_space (isl_map_get_space (map)); - unsigned offset, nsubs; - int i; -- isl_int size, subsize; -+ isl_ctx *ct; -+ -+ isl_val *size, *subsize, *size1; - - res = isl_equality_alloc (ls); -- isl_int_init (size); -- isl_int_set_ui (size, 1); -- isl_int_init (subsize); -- isl_int_set_ui (subsize, 1); -+ ct = isl_local_space_get_ctx (ls); -+ size = isl_val_int_from_ui (ct, 1); - - nsubs = isl_set_dim (pdr->extent, isl_dim_set); - /* -1 for the already included L dimension. */ -@@ -90,18 +91,17 @@ - isl_space *dc; - isl_aff *aff; - -- res = isl_constraint_set_coefficient (res, isl_dim_out, offset + i, size); -- -+ size1 = isl_val_copy (size); -+ res = isl_constraint_set_coefficient_val (res, isl_dim_out, offset + i, size); - dc = isl_set_get_space (pdr->extent); - aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); - aff = isl_aff_set_coefficient_si (aff, isl_dim_in, i, 1); -- isl_set_max (pdr->extent, aff, &subsize); -+ subsize = isl_set_max_val (pdr->extent, aff); - isl_aff_free (aff); -- isl_int_mul (size, size, subsize); -+ size = isl_val_mul (size1, subsize); - } - -- isl_int_clear (subsize); -- isl_int_clear (size); -+ isl_val_free (size); - - return res; - } -@@ -118,7 +118,7 @@ - isl_aff *aff; - isl_space *dc; - isl_constraint *lma, *c; -- isl_int islstride; -+ isl_val *islstride; - graphite_dim_t time_depth; - unsigned offset, nt; - unsigned i; -@@ -231,10 +231,9 @@ - aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); - aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset - 1, -1); - aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset + offset - 1, 1); -- isl_int_init (islstride); -- isl_set_max (set, aff, &islstride); -- isl_int_get_gmp (islstride, stride); -- isl_int_clear (islstride); -+ islstride = isl_set_max_val (set, aff); -+ isl_val_get_num_gmp (islstride, stride); -+ isl_val_free (islstride); - isl_aff_free (aff); - isl_set_free (set); - ---- gcc/graphite-optimize-isl.c.orig 2014-11-04 18:42:39.462980500 -0500 -+++ gcc/graphite-optimize-isl.c 2014-11-04 21:31:43.873183200 -0500 -@@ -252,6 +252,7 @@ - DimToVectorize can be devided by VectorWidth. The default VectorWidth is - currently constant and not yet target specific. This function does not reason - about parallelism. */ -+ - static isl_map * - getPrevectorMap(isl_ctx *ctx, int DimToVectorize, - int ScheduleDimensions, -@@ -265,8 +266,9 @@ - isl_aff *Aff; - int PointDimension; /* ip */ - int TileDimension; /* it */ -- isl_int VectorWidthMP; -+ isl_val *VectorWidthMP; - int i; -+ isl_ctx *ct; - - /* assert (0 <= DimToVectorize && DimToVectorize < ScheduleDimensions);*/ - -@@ -296,10 +298,10 @@ - Aff = isl_aff_zero_on_domain(LocalSpaceRange); - Aff = isl_aff_set_constant_si(Aff, VectorWidth); - Aff = isl_aff_set_coefficient_si(Aff, isl_dim_in, TileDimension, 1); -- isl_int_init(VectorWidthMP); -- isl_int_set_si(VectorWidthMP, VectorWidth); -- Aff = isl_aff_mod(Aff, VectorWidthMP); -- isl_int_clear(VectorWidthMP); -+ -+ ct = isl_aff_get_ctx(Aff); -+ VectorWidthMP = isl_val_int_from_si(ct, VectorWidth); -+ Aff = isl_aff_mod_val(Aff, VectorWidthMP); - Modulo = isl_pw_aff_zero_set(isl_pw_aff_from_aff(Aff)); - TilingMap = isl_map_intersect_range(TilingMap, Modulo); - -@@ -365,7 +367,7 @@ - { - for (i = ScheduleDimensions - 1 ; i >= 0 ; i--) - { -- if (isl_band_member_is_zero_distance(Band, i)) -+ if (isl_band_member_is_coincident(Band, i)) - { - isl_map *TileMap; - isl_union_map *TileUMap; ---- gcc/graphite-poly.c.orig 2014-11-04 18:42:39.565982500 -0500 -+++ gcc/graphite-poly.c 2014-11-04 21:27:23.608640600 -0500 -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #endif -@@ -1021,10 +1022,7 @@ - isl_set *transdomain; - isl_space *dc; - isl_aff *aff; -- isl_int isllb, islub; -- -- isl_int_init (isllb); -- isl_int_init (islub); -+ isl_val *isllb, *islub; - - /* Map the iteration domain through the current scatter, and work - on the resulting set. */ -@@ -1038,15 +1036,14 @@ - - /* And find the min/max for that function. */ - /* XXX isl check results? */ -- isl_set_min (transdomain, aff, &isllb); -- isl_set_max (transdomain, aff, &islub); -+ isllb = isl_set_min_val (transdomain, aff); -+ islub = isl_set_max_val (transdomain, aff); - -- isl_int_sub (islub, islub, isllb); -- isl_int_add_ui (islub, islub, 1); -- isl_int_get_gmp (islub, res); -+ islub = isl_val_sub (islub, isllb); -+ islub = isl_val_add_ui (islub, 1); -+ isl_val_get_num_gmp (islub, res); - -- isl_int_clear (isllb); -- isl_int_clear (islub); -+ isl_val_free (islub); - isl_aff_free (aff); - isl_set_free (transdomain); - } ---- gcc/graphite-sese-to-poly.c.orig 2014-11-04 18:42:39.730983000 -0500 -+++ gcc/graphite-sese-to-poly.c 2014-11-04 21:27:23.598640600 -0500 -@@ -26,7 +26,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #endif -@@ -46,7 +46,6 @@ - #include "graphite-poly.h" - #include "graphite-sese-to-poly.h" - -- - /* Assigns to RES the value of the INTEGER_CST T. */ - - static inline void -@@ -461,13 +460,11 @@ - int i; - int nb_iterators = pbb_dim_iter_domain (pbb); - int used_scattering_dimensions = nb_iterators * 2 + 1; -- isl_int val; -+ isl_val *val; - isl_space *dc, *dm; - - gcc_assert (scattering_dimensions >= used_scattering_dimensions); - -- isl_int_init (val); -- - dc = isl_set_get_space (pbb->domain); - dm = isl_space_add_dims (isl_space_from_domain (dc), - isl_dim_out, scattering_dimensions); -@@ -481,12 +478,10 @@ - isl_constraint *c = isl_equality_alloc - (isl_local_space_from_space (isl_map_get_space (pbb->schedule))); - -- if (0 != isl_aff_get_coefficient (static_sched, isl_dim_in, -- i / 2, &val)) -- gcc_unreachable (); -+ val = isl_aff_get_coefficient_val (static_sched, isl_dim_in, i / 2); - -- isl_int_neg (val, val); -- c = isl_constraint_set_constant (c, val); -+ val = isl_val_neg (val); -+ c = isl_constraint_set_constant_val (c, val); - c = isl_constraint_set_coefficient_si (c, isl_dim_out, i, 1); - pbb->schedule = isl_map_add_constraint (pbb->schedule, c); - } -@@ -500,8 +495,6 @@ - } - } - -- isl_int_clear (val); -- - pbb->transformed = isl_map_copy (pbb->schedule); - } - -@@ -681,12 +674,12 @@ - isl_local_space *ls = isl_local_space_from_space (isl_space_copy (space)); - isl_aff *aff = isl_aff_zero_on_domain (ls); - isl_set *dom = isl_set_universe (space); -- isl_int v; -+ isl_val *v; -+ isl_ctx *ct; - -- isl_int_init (v); -- isl_int_set_gmp (v, g); -- aff = isl_aff_add_constant (aff, v); -- isl_int_clear (v); -+ ct = isl_aff_get_ctx (aff); -+ v = isl_val_int_from_gmp (ct, g); -+ aff = isl_aff_add_constant_val (aff, v); - - return isl_pw_aff_alloc (dom, aff); - } -@@ -709,18 +702,16 @@ - - /* Compute pwaff mod 2^width. */ - -+extern isl_ctx *the_isl_ctx; -+ - static isl_pw_aff * - wrap (isl_pw_aff *pwaff, unsigned width) - { -- isl_int mod; -- -- isl_int_init (mod); -- isl_int_set_si (mod, 1); -- isl_int_mul_2exp (mod, mod, width); -- -- pwaff = isl_pw_aff_mod (pwaff, mod); -+ isl_val *mod; - -- isl_int_clear (mod); -+ mod = isl_val_int_from_ui(the_isl_ctx, width); -+ mod = isl_val_2exp (mod); -+ pwaff = isl_pw_aff_mod_val (pwaff, mod); - - return pwaff; - } -@@ -976,11 +967,10 @@ - isl_space *space; - isl_constraint *c; - int pos = isl_set_dim (outer, isl_dim_set); -- isl_int v; -+ isl_val *v; - mpz_t g; - - mpz_init (g); -- isl_int_init (v); - - inner = isl_set_add_dims (inner, isl_dim_set, 1); - space = isl_set_get_space (inner); -@@ -998,8 +988,8 @@ - (isl_local_space_from_space(isl_space_copy (space))); - c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1); - tree_int_to_gmp (nb_iters, g); -- isl_int_set_gmp (v, g); -- c = isl_constraint_set_constant (c, v); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); -+ c = isl_constraint_set_constant_val (c, v); - inner = isl_set_add_constraint (inner, c); - } - -@@ -1053,9 +1043,9 @@ - c = isl_inequality_alloc - (isl_local_space_from_space (isl_space_copy (space))); - c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1); -- isl_int_set_gmp (v, g); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); - mpz_clear (g); -- c = isl_constraint_set_constant (c, v); -+ c = isl_constraint_set_constant_val (c, v); - inner = isl_set_add_constraint (inner, c); - } - else -@@ -1078,7 +1068,6 @@ - - isl_set_free (outer); - isl_space_free (space); -- isl_int_clear (v); - mpz_clear (g); - } - -@@ -1342,17 +1331,15 @@ - isl_space *space = isl_set_get_space (scop->context); - isl_constraint *c; - mpz_t g; -- isl_int v; -+ isl_val *v; - - c = isl_inequality_alloc (isl_local_space_from_space (space)); - mpz_init (g); -- isl_int_init (v); - tree_int_to_gmp (lb, g); -- isl_int_set_gmp (v, g); -- isl_int_neg (v, v); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); -+ v = isl_val_neg (v); - mpz_clear (g); -- c = isl_constraint_set_constant (c, v); -- isl_int_clear (v); -+ c = isl_constraint_set_constant_val (c, v); - c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, 1); - - scop->context = isl_set_add_constraint (scop->context, c); -@@ -1363,17 +1350,15 @@ - isl_space *space = isl_set_get_space (scop->context); - isl_constraint *c; - mpz_t g; -- isl_int v; -+ isl_val *v; - - c = isl_inequality_alloc (isl_local_space_from_space (space)); - - mpz_init (g); -- isl_int_init (v); - tree_int_to_gmp (ub, g); -- isl_int_set_gmp (v, g); -+ v = isl_val_int_from_gmp (the_isl_ctx, g); - mpz_clear (g); -- c = isl_constraint_set_constant (c, v); -- isl_int_clear (v); -+ c = isl_constraint_set_constant_val (c, v); - c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, -1); - - scop->context = isl_set_add_constraint (scop->context, c); diff --git a/mingw-w64-arm-none-eabi-newlib/PKGBUILD b/mingw-w64-arm-none-eabi-newlib/PKGBUILD index 32efe36fec..9587c99360 100644 --- a/mingw-w64-arm-none-eabi-newlib/PKGBUILD +++ b/mingw-w64-arm-none-eabi-newlib/PKGBUILD @@ -1,138 +1,153 @@ # Maintainer: Carlos Antunes +# Maintainer: fauxpark # Contributed by: nanodude _realname=newlib _target=arm-none-eabi +_gccver=8.4.0 pkgbase=mingw-w64-${_target}-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_target}-${_realname}") -pkgver=2.1.0 +pkgver=3.3.0 pkgrel=1 -pkgdesc="GNU Tools for ARM Embedded Processors - Newlib (mingw-w64)" +pkgdesc='GNU Tools for ARM Embedded Processors - Newlib (mingw-w64)' arch=('any') url="https://sourceware.org/newlib/" license=('Various') groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain") depends=("${MINGW_PACKAGE_PREFIX}-${_target}-binutils") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") options=('staticlibs' '!strip' '!emptydirs') -source=('gcc-arm-embedded.tar.bz2::https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q3-update/+download/gcc-arm-none-eabi-4_8-2014q3-20140805-src.tar.bz2' - '10-newlib-arm-dynamic-reent.patch' - '20-newlib-libgloss-configure-fix.patch' - '99-gcc-isl-0.13.patch') -sha256sums=('09519946642d5366ab739a89d3388b2ea333cd7dc50192bab3736a9593af83e6' - '7522f26659a69e2f02eb37d3557f8dca08bc32ada8c797b6a812ad131c87b0ef' - '3222e2910068d413c23b2830cf2c9b7b2db210c9b98c5644db5934fee84d9808' - '8e8da71e6e6b347dd7fc7f7938bf9af22be031ad8916749fa6c368f87d8891f0') -noextract=('gcc-arm-embedded.tar.bz2') +source=( + "https://sourceware.org/pub/newlib/newlib-${pkgver}.tar.gz" + "https://ftp.gnu.org/gnu/gcc/gcc-${_gccver}/gcc-${_gccver}.tar.xz" +) +sha256sums=( + '58dd9e3eaedf519360d92d84205c3deef0b3fc286685d1c562e245914ef72c66' + 'e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4' +) +noextract=("newlib-${pkgver}.tar.gz") prepare() { - # Extract packages from archive - rm -rf ${srcdir}/tmp - mkdir ${srcdir}/tmp && cd ${srcdir}/tmp - tar xf ../../gcc-arm-embedded.tar.bz2 --strip-components=2 + cd ${srcdir} + # bsdtar doesn't like the symlinks + tar -xf newlib-${pkgver}.tar.gz - # Copy and extract GCC and Newlib packages - cp gcc.tar.bz2 ${srcdir} - cp newlib.tar.bz2 ${srcdir} - cd ${srcdir} - [ -d gcc ] && rm -rf gcc - [ -d newlib ] && rm -rf newlib - tar xf gcc.tar.bz2 - tar xf newlib.tar.bz2 + cd ${srcdir}/gcc-${_gccver} + mkdir gcc-build-${MINGW_CHOST} + mkdir gcc-install-${MINGW_CHOST} - # Newlib - cd ${srcdir}/${_realname} - patch -p1 -i "${srcdir}/10-newlib-arm-dynamic-reent.patch" - patch -p2 -i "${srcdir}/20-newlib-libgloss-configure-fix.patch" + cd ${srcdir}/newlib-${pkgver} + mkdir {newlib,nano}-build-${MINGW_CHOST} +} - # GCC: Compatibility with isl>=0.12.2 - cd "${srcdir}/gcc" - patch -p0 -i "${srcdir}/99-gcc-isl-0.13.patch" +# Newlib is required to build GCC, but GCC is also required to compile newlib +# So we must build a minimal GCC first, to avoid the circular dependency +_build_gcc() { + cd ${srcdir}/gcc-${_gccver}/gcc-build-${MINGW_CHOST} - # Build cross-compiler just to compile newlib - rm -rf "${srcdir}/compiler-${MINGW_CHOST}" - mkdir -p "${srcdir}/compiler-${MINGW_CHOST}" - cp -a "${MINGW_PREFIX}/${_target}" "${srcdir}/compiler-${MINGW_CHOST}" - cd $srcdir - rm -rf build-gcc-${MINGW_CHOST} - mkdir -p build-gcc-${MINGW_CHOST} && cd build-gcc-${MINGW_CHOST} - ../gcc/configure \ - --build="${MINGW_CHOST}" \ - --host="${MINGW_CHOST}" \ - --target="${_target}" \ - --prefix="${srcdir}/compiler-${MINGW_CHOST}" \ - --enable-languages="c" \ - --disable-werror \ - --disable-lto \ - --disable-nls \ - --disable-libffi \ - --disable-decimal-float \ - --disable-libgomp \ - --disable-libmudflap \ - --disable-libquadmath \ - --disable-libssp \ - --disable-libstdcxx-pch \ - --disable-libsanitizer \ - --disable-threads \ - --disable-tls \ - --disable-shared \ - --enable-multilib \ - --enable-interwork \ - --with-newlib \ - --without-headers \ - --with-gnu-as \ - --with-gnu-ld \ - --with-system-zlib \ - --with-{gmp,mpfr,mpc,isl,cloog}="${MINGW_PREFIX}" \ - --disable-isl-version-check \ - --disable-cloog-version-check \ - --with-libelf \ - --with-multilib-list="armv6-m,armv7-m,armv7e-m,armv7-r" \ - --with-sysroot="${MINGW_PREFIX}" \ - --with-build-sysroot="${srcdir}/compiler-${MINGW_CHOST}" \ - --with-build-time-tools="${MINGW_PREFIX}/${_target}/bin" - make all-gcc - make -j1 install-gcc + cp -a ${MINGW_PREFIX}/${_target} ${srcdir}/gcc-${_gccver}/gcc-install-${MINGW_CHOST} + + local _GCC_LDFLAGS="${LDFLAGS} -Wl,--disable-dynamicbase" + if [ "${CARCH}" = 'x86_64' ]; then + _GCC_LDFLAGS+=",--image-base=0x400000" + fi + ../configure \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --prefix=/ \ + --target=${_target} \ + --enable-languages=c \ + --disable-nls \ + --disable-libssp \ + --disable-shared \ + --disable-threads \ + --disable-libgomp \ + --disable-werror \ + --disable-lto \ + --disable-libffi \ + --disable-decimal-float \ + --disable-libmudflap \ + --disable-libquadmath \ + --disable-libstdcxx-pch \ + --disable-libsanitizer \ + --disable-tls \ + --enable-multilib \ + --enable-interwork \ + --without-headers \ + --with-libelf \ + --with-newlib \ + --with-multilib-list=rmprofile \ + --with-host-libstdcxx="-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm" \ + --with-sysroot=${MINGW_PREFIX} \ + --with-build-sysroot=${srcdir}/gcc-${_gccver}/gcc-install-${MINGW_CHOST} \ + --with-build-time-tools=${MINGW_PREFIX}/${_target}/bin \ + LDFLAGS="${_GCC_LDFLAGS}" + + make all-gcc + make DESTDIR=${srcdir}/gcc-${_gccver}/gcc-install-${MINGW_CHOST} install-gcc } build() { - # Build newlib - local armgccpath="${srcdir}/compiler-${MINGW_CHOST}/bin" - if check_option "debug" "y"; then - NEWLIB_CFLAGS="-O0" - else - NEWLIB_CFLAGS="-O3" - fi - NEWLIB_CFLAGS+=" -g -ffunction-sections -fdata-sections" -# NEWLIB_CFLAGS+=" -DMALLOC_PROVIDED" -# NEWLIB_CFLAGS+=" -DREENTRANT_SYSCALLS_PROVIDED" - cd $srcdir - rm -rf build-${MINGW_CHOST} - mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - ../${_realname}/configure \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --target=${_target} \ - --prefix=${MINGW_PREFIX} \ - --enable-newlib-io-pos-args \ - --enable-newlib-io-c99-formats \ - --enable-newlib-io-long-long \ - --enable-newlib-io-float \ - --enable-newlib-reent-small \ - --disable-newlib-supplied-syscalls \ - --disable-nls \ - CFLAGS="${NEWLIB_CFLAGS}" \ - PATH="${armgccpath}:${PATH}" - make PATH="${armgccpath}:${PATH}" + _build_gcc + + cd ${srcdir}/newlib-${pkgver}/newlib-build-${MINGW_CHOST} + + ../configure \ + PATH="${srcdir}/gcc-${_gccver}/gcc-install-${MINGW_CHOST}/bin:${PATH}" \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${_target} \ + --prefix=${MINGW_PREFIX} \ + --enable-newlib-io-long-long \ + --enable-newlib-io-c99-formats \ + --enable-newlib-register-fini \ + --enable-newlib-retargetable-locking \ + --disable-newlib-supplied-syscalls \ + --disable-nls + make PATH="${srcdir}/gcc-${_gccver}/gcc-install-${MINGW_CHOST}/bin:${PATH}" + + cd ${srcdir}/newlib-${pkgver}/nano-build-${MINGW_CHOST} + + ../configure \ + PATH="${srcdir}/gcc-${_gccver}/gcc-install-${MINGW_CHOST}/bin:${PATH}" \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --target=${_target} \ + --prefix=${MINGW_PREFIX} \ + --disable-newlib-supplied-syscalls \ + --enable-newlib-reent-small \ + --enable-newlib-retargetable-locking \ + --disable-newlib-fvwrite-in-streamio \ + --disable-newlib-fseek-optimization \ + --disable-newlib-wide-orient \ + --enable-newlib-nano-malloc \ + --disable-newlib-unbuf-stream-opt \ + --enable-lite-exit \ + --enable-newlib-global-atexit \ + --enable-newlib-nano-formatted-io \ + --disable-nls + make PATH="${srcdir}/gcc-${_gccver}/gcc-install-${MINGW_CHOST}/bin:${PATH}" } package() { - local armgccpath="${srcdir}/compiler-${MINGW_CHOST}/bin" - cd ${srcdir}/build-${MINGW_CHOST} - make -j1 DESTDIR=${pkgdir} PATH="${armgccpath}:${PATH}" install + cd ${pkgdir} - # Remove files that conflict with host - rm -rf "${pkgdir}${MINGW_PREFIX}/share/info" + # make install complains if theses dirs do not already exist, for some reason + mkdir -p ${pkgdir}${MINGW_PREFIX}/${_target}/lib/arm/v5te/{hard,softfp} + mkdir -p ${pkgdir}${MINGW_PREFIX}/${_target}/lib/thumb/nofp + mkdir -p ${pkgdir}${MINGW_PREFIX}/${_target}/lib/thumb/v{6-m,7,7-m,7e-m,8-m.base,8-m.main}/nofp + mkdir -p ${pkgdir}${MINGW_PREFIX}/${_target}/lib/thumb/v{7+fp,7e-m+fp,7e-m+dp,8-m.main+fp,8-m.main+dp}/{hard,softfp} + + cd ${srcdir}/newlib-${pkgver}/nano-build-${MINGW_CHOST} + + make DESTDIR=${pkgdir} PATH="${srcdir}/gcc-${_gccver}/gcc-install-${MINGW_CHOST}/bin:${PATH}" install + + find ${pkgdir} -regex ".*/lib\(c\|g\|rdimon\)\.a" -exec rename .a _nano.a '{}' \; + install -Dm644 -t ${pkgdir}${MINGW_PREFIX}/${_target}/include/newlib-nano ${pkgdir}${MINGW_PREFIX}/${_target}/include/newlib.h + + cd ${srcdir}/newlib-${pkgver}/newlib-build-${MINGW_CHOST} + + make DESTDIR=${pkgdir} PATH="${srcdir}/gcc-${_gccver}/gcc-install-${MINGW_CHOST}/bin:${PATH}" install + + find ${pkgdir}${MINGW_PREFIX}/${_target}/lib \( -name "*.a" -or -name "*.o" \) -exec ${_target}-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc '{}' \; } - diff --git a/mingw-w64-arrow/PKGBUILD b/mingw-w64-arrow/PKGBUILD index cbaa24dff1..5d099500d1 100644 --- a/mingw-w64-arrow/PKGBUILD +++ b/mingw-w64-arrow/PKGBUILD @@ -3,7 +3,7 @@ _realname=arrow pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.0 +pkgver=1.0.1 pkgrel=1 pkgdesc="Apache Arrow is a cross-language development platform for in-memory data (mingw-w64)" arch=("any") @@ -38,7 +38,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-polly") options=("staticlibs" "strip" "!buildflags") source=(https://github.com/apache/arrow/archive/apache-arrow-${pkgver}.tar.gz) -sha256sums=('08fbd4c633c08939850d619ca0224c75d7a0526467c721c0838b8aa7efccb270') +sha256sums=('dac59f4d42416224419c020ed2e8f8371e85c1d9ff4368ed5b5c026ee28d3fd4') cmake_build_type=release meson_build_type=debugoptimized @@ -77,8 +77,8 @@ build() { -DCMAKE_BUILD_TYPE=${cmake_build_type} \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DPARQUET_BUILD_EXECUTABLES=ON \ - -G "MSYS Makefiles" - make + -G Ninja + ninja popd [[ -d ${c_glib_build_dir} ]] && rm -rf ${c_glib_build_dir} @@ -106,7 +106,7 @@ check() { } package() { - make -C ${cpp_build_dir} DESTDIR="${pkgdir}" install + DESTDIR="${pkgdir}" ninja -C ${cpp_build_dir} install PATH=$(pwd)/${c_glib_build_dir}/arrow-glib:$(pwd)/${cpp_build_dir}/${cmake_build_type}:$PATH \ DESTDIR="${pkgdir}${MINGW_PREFIX}" \ diff --git a/mingw-w64-assimp/PKGBUILD b/mingw-w64-assimp/PKGBUILD index 2eeb1388b3..cd048e3308 100644 --- a/mingw-w64-assimp/PKGBUILD +++ b/mingw-w64-assimp/PKGBUILD @@ -4,7 +4,7 @@ _realname=assimp pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=5.0.1 -pkgrel=2 +pkgrel=3 pkgdesc="Portable Open Source library to import various well-known 3D model formats in an uniform manner (mingw-w64)" arch=('any') license=('BSD') diff --git a/mingw-w64-avr-binutils/PKGBUILD b/mingw-w64-avr-binutils/PKGBUILD index 24de1103a1..56b80b64bb 100644 --- a/mingw-w64-avr-binutils/PKGBUILD +++ b/mingw-w64-avr-binutils/PKGBUILD @@ -1,39 +1,44 @@ # Maintainer: fauxpark -_realname=avr-binutils -pkgbase=mingw-w64-${_realname} -pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +_realname=binutils +_target=avr + +pkgbase=mingw-w64-${_target}-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_target}-${_realname} pkgver=2.35 -pkgrel=1 +pkgrel=3 pkgdesc='GNU Binutils for the AVR target (mingw-w64)' arch=('any') license=('GPL') url='https://www.gnu.org/software/binutils/binutils.html' +groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain") source=( - "https://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.xz" + https://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz{,.sig} "01-avr-size.patch" ) sha256sums=( '1b11659fb49e20e18db460d44485f09442c8c56d5df165de9461eb09c8302f85' + 'SKIP' '7aed303887a8541feba008943d0331dc95dd90a309575f81b7a195650e4cba1e' ) +validpgpkeys=('3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F') prepare() { - cd ${srcdir}/binutils-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} - mkdir binutils-build + mkdir ${_realname}-build # https://github.com/archlinux/svntogit-community/blob/packages/avr-binutils/trunk/avr-size.patch - patch -p1 < ../01-avr-size.patch + patch -p1 -i ../01-avr-size.patch } build() { - cd ${srcdir}/binutils-${pkgver}/binutils-build + cd ${srcdir}/${_realname}-${pkgver}/${_realname}-build ../configure \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --target=avr \ + --target=${_target} \ --disable-nls \ --disable-debug \ --disable-dependency-tracking \ @@ -42,13 +47,13 @@ build() { } package() { - cd ${srcdir}/binutils-${pkgver}/binutils-build + cd ${srcdir}/${_realname}-${pkgver}/${_realname}-build make DESTDIR="$pkgdir" install cd ${pkgdir}${MINGW_PREFIX} for info in as bfd binutils gprof ld; do - mv share/info/${info}.info share/info/avr-${info}.info + mv share/info/${info}.info share/info/${_target}-${info}.info done } diff --git a/mingw-w64-avr-gcc/PKGBUILD b/mingw-w64-avr-gcc/PKGBUILD index ba587d9909..0bcbe630ea 100644 --- a/mingw-w64-avr-gcc/PKGBUILD +++ b/mingw-w64-avr-gcc/PKGBUILD @@ -1,38 +1,41 @@ # Maintainer: fauxpark -_realname=avr-gcc -pkgbase=mingw-w64-${_realname} -pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +_realname=gcc +_target=avr + +pkgbase=mingw-w64-${_target}-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_target}-${_realname} pkgver=8.4.0 -pkgrel=1 +pkgrel=3 pkgdesc='GNU compiler collection for AVR 8-bit and 32-bit microcontrollers (mingw-w64)' arch=('any') license=('GPL') -options=(!strip) url='https://www.gnu.org/software/gcc/gcc.html' +options=(!strip) +groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain") depends=( - "${MINGW_PACKAGE_PREFIX}-avr-binutils" + "${MINGW_PACKAGE_PREFIX}-${_target}-binutils" "${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-isl" "${MINGW_PACKAGE_PREFIX}-mpc" "${MINGW_PACKAGE_PREFIX}-mpfr" ) -source=("https://ftp.gnu.org/gnu/gcc/gcc-${pkgver}/gcc-${pkgver}.tar.xz") +source=("https://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.xz") sha256sums=('e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4') prepare() { - cd ${srcdir}/gcc-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} - mkdir gcc-build + mkdir ${_realname}-build } build() { - cd ${srcdir}/gcc-${pkgver}/gcc-build + cd ${srcdir}/${_realname}-${pkgver}/${_realname}-build ../configure \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --target=avr \ + --target=${_target} \ --enable-languages=c,c++ \ --disable-nls \ --disable-libssp \ @@ -46,14 +49,14 @@ build() { } package() { - cd ${srcdir}/gcc-${pkgver}/gcc-build + cd ${srcdir}/${_realname}-${pkgver}/${_realname}-build make DESTDIR="$pkgdir" install cd ${pkgdir}${MINGW_PREFIX} # strip debug symbols from libraries - find lib -type f -name "*.a" -exec ${MINGW_PREFIX}/bin/avr-strip --strip-debug '{}' \; + find lib -type f -name "*.a" -exec ${MINGW_PREFIX}/bin/${_target}-strip --strip-debug '{}' \; # info and man7 files conflict with native gcc rm -rf share/info share/man/man7 diff --git a/mingw-w64-avr-gdb/PKGBUILD b/mingw-w64-avr-gdb/PKGBUILD index bce4f69888..0e1d51ccd9 100644 --- a/mingw-w64-avr-gdb/PKGBUILD +++ b/mingw-w64-avr-gdb/PKGBUILD @@ -1,30 +1,37 @@ # Maintainer: fauxpark -_realname=avr-gdb -pkgbase=mingw-w64-${_realname} -pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +_realname=gdb +_target=avr + +pkgbase=mingw-w64-${_target}-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_target}-${_realname} pkgver=9.2 -pkgrel=1 +pkgrel=3 pkgdesc='The GNU Debugger for AVR (mingw-w64)' arch=('any') license=('GPL') url='https://www.gnu.org/software/gdb/' -source=("https://ftp.gnu.org/gnu/gdb/gdb-${pkgver}.tar.xz") -sha256sums=('360cd7ae79b776988e89d8f9a01c985d0b1fa21c767a4295e5f88cb49175c555') +groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain") +source=(https://ftp.gnu.org/gnu/${_realname}/${_realname}-${pkgver}.tar.xz{,.sig}) +sha256sums=( + '360cd7ae79b776988e89d8f9a01c985d0b1fa21c767a4295e5f88cb49175c555' + 'SKIP' +) +validpgpkeys=('F40ADB902B24264AA42E50BF92EDB04BFF325CF3') # Joel Brobecker prepare() { - cd ${srcdir}/gdb-${pkgver} + cd ${srcdir}/${_realname}-${pkgver} - mkdir gdb-build + mkdir ${_realname}-build } build() { - cd ${srcdir}/gdb-${pkgver}/gdb-build + cd ${srcdir}/${_realname}-${pkgver}/${_realname}-build ../configure \ --build=${MINGW_CHOST} \ --prefix=${MINGW_PREFIX} \ - --target=avr \ + --target=${_target} \ --disable-nls \ --disable-debug \ --disable-dependency-tracking \ @@ -37,7 +44,7 @@ build() { } package() { - cd ${srcdir}/gdb-${pkgver}/gdb-build + cd ${srcdir}/${_realname}-${pkgver}/${_realname}-build make DESTDIR="$pkgdir" install-gdb diff --git a/mingw-w64-avr-libc/PKGBUILD b/mingw-w64-avr-libc/PKGBUILD index 6d9ee9d730..1e45c0afab 100644 --- a/mingw-w64-avr-libc/PKGBUILD +++ b/mingw-w64-avr-libc/PKGBUILD @@ -1,37 +1,40 @@ # Maintainer: fauxpark -_realname=avr-libc -pkgbase=mingw-w64-${_realname} -pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +_realname=libc +_target=avr + +pkgbase=mingw-w64-${_target}-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_target}-${_realname} pkgver=2.0.0 -pkgrel=1 +pkgrel=3 pkgdesc='The C runtime library for the AVR family of microcontrollers (mingw-w64)' arch=('any') license=('BSD') url='https://savannah.nongnu.org/projects/avr-libc/' options=(!strip) -depends=("${MINGW_PACKAGE_PREFIX}-avr-gcc") -source=("https://download.savannah.gnu.org/releases/avr-libc/avr-libc-${pkgver}.tar.bz2") +groups=("${MINGW_PACKAGE_PREFIX}-${_target}-toolchain") +depends=("${MINGW_PACKAGE_PREFIX}-${_target}-gcc") +source=("https://download.savannah.gnu.org/releases/${_target}-${_realname}/${_target}-${_realname}-${pkgver}.tar.bz2") sha256sums=('b2dd7fd2eefd8d8646ef6a325f6f0665537e2f604ed02828ced748d49dc85b97') prepare() { - cd ${srcdir}/avr-libc-${pkgver} + cd ${srcdir}/${_target}-${_realname}-${pkgver} - mkdir avr-libc-build + mkdir ${_realname}-build } build() { - cd ${srcdir}/avr-libc-${pkgver}/avr-libc-build + cd ${srcdir}/${_target}-${_realname}-${pkgver}/${_realname}-build ../configure \ --build=${MINGW_CHOST} \ - --host=avr \ + --host=${_target} \ --prefix=${MINGW_PREFIX} make } package() { - cd ${srcdir}/${_realname}-${pkgver}/avr-libc-build + cd ${srcdir}/${_target}-${_realname}-${pkgver}/${_realname}-build make DESTDIR="$pkgdir" install } diff --git a/mingw-w64-aws-sdk-cpp/PKGBUILD b/mingw-w64-aws-sdk-cpp/PKGBUILD index 08f128868d..4dc9167257 100644 --- a/mingw-w64-aws-sdk-cpp/PKGBUILD +++ b/mingw-w64-aws-sdk-cpp/PKGBUILD @@ -4,7 +4,7 @@ _realname=aws-sdk-cpp pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=1.7.365 -pkgrel=1 +pkgrel=2 pkgdesc="AWS SDK for C++ (mingw-w64)" arch=('any') url="https://github.com/aws/aws-sdk-cpp" @@ -38,7 +38,7 @@ build() { -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ - -DBUILD_ONLY="config;s3;transfer" \ + -DBUILD_ONLY="config;identity-management;s3;sts;transfer" \ -DENABLE_UNITY_BUILD=ON \ -DAUTORUN_UNIT_TESTS=OFF \ ../${_realname}-${pkgver} diff --git a/mingw-w64-binaryen/PKGBUILD b/mingw-w64-binaryen/PKGBUILD index daffcecf63..ae5a029c34 100644 --- a/mingw-w64-binaryen/PKGBUILD +++ b/mingw-w64-binaryen/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: Diego Sogari +# Contributor: Konstantin Podsvirov _realname=binaryen pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=95 +pkgver=96 pkgrel=1 pkgdesc="Compiler infrastructure and toolchain library for WebAssembly, in C++ (mingw-w64)" arch=('any') @@ -11,7 +12,7 @@ url="https://github.com/WebAssembly/binaryen" license=('Apache') makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") source=("${_realname}-${pkgver}.tar.gz::https://github.com/WebAssembly/binaryen/archive/version_${pkgver}.tar.gz") -sha256sums=('d0fc0f7b5ec147a886aea7dc40a2fff7a675e970c8fc38768e1908458b97aaab') +sha256sums=('fe140191607c76f02bd0f1cc641715cefcb48e723409418c2a39a50905a4514c') build() { declare -a extra_config diff --git a/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch b/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch index 0eeb35d563..207f24d4ac 100644 --- a/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch +++ b/mingw-w64-binutils/0110-binutils-mingw-gnu-print.patch @@ -59,9 +59,9 @@ diff -urN binutils-2.27.orig/binutils/prdbg.c binutils-2.27/binutils/prdbg.c sprintf (buf, "0x%llx", (unsigned long long) vma); else if (unsignedp) diff -urN binutils-2.27.orig/binutils/readelf.c binutils-2.27/binutils/readelf.c ---- binutils-2.27.orig/binutils/readelf.c 2016-08-03 09:36:51.000000000 +0200 -+++ binutils-2.27/binutils/readelf.c 2016-09-21 21:13:49.240194700 +0200 -@@ -1154,7 +1154,7 @@ +--- binutils-2.35/binutils/readelf.c.orig 2020-07-24 11:12:19.000000000 +0200 ++++ binutils-2.35/binutils/readelf.c 2020-08-26 22:30:15.008358800 +0200 +@@ -1274,7 +1274,7 @@ : "%12.12lx %12.12lx ", offset, inf); #elif BFD_HOST_64BIT_LONG_LONG @@ -70,15 +70,15 @@ diff -urN binutils-2.27.orig/binutils/readelf.c binutils-2.27/binutils/readelf.c printf (do_wide ? "%16.16llx %16.16llx " : "%12.12llx %12.12llx ", -@@ -12372,7 +12372,7 @@ - { - size_t maxlen = end - data; - +@@ -13927,7 +13927,7 @@ + } + else + { -#ifndef __MSVCRT__ +#if !defined(__MSVCRT__) || defined(__USE_MINGW_ANSI_STDIO) - /* PR 11128: Use two separate invocations in order to work - around bugs in the Solaris 8 implementation of printf. */ - printf (" [%6tx] ", data - start); + /* PR 11128: Use two separate invocations in order to work + around bugs in the Solaris 8 implementation of printf. */ + printf (" [%6tx] ", data - start); diff -urN binutils-2.27.orig/binutils/strings.c binutils-2.27/binutils/strings.c --- binutils-2.27.orig/binutils/strings.c 2016-08-03 09:36:51.000000000 +0200 +++ binutils-2.27/binutils/strings.c 2016-09-21 21:13:49.251195600 +0200 diff --git a/mingw-w64-binutils/0320-aslr-compat-base-addr.patch b/mingw-w64-binutils/0320-aslr-compat-base-addr.patch new file mode 100644 index 0000000000..5267066066 --- /dev/null +++ b/mingw-w64-binutils/0320-aslr-compat-base-addr.patch @@ -0,0 +1,26 @@ +--- binutils-2.35/ld/emultempl/pep.em.orig 2020-08-27 08:46:36.064000100 +0200 ++++ binutils-2.35/ld/emultempl/pep.em 2020-08-27 09:00:44.598810700 +0200 +@@ -104,19 +104,19 @@ + #undef NT_EXE_IMAGE_BASE + #define NT_EXE_IMAGE_BASE \ + ((bfd_vma) (${move_default_addr_high} ? 0x100400000LL \ +- : 0x400000LL)) ++ : 0x140000000LL)) + #undef NT_DLL_IMAGE_BASE + #define NT_DLL_IMAGE_BASE \ + ((bfd_vma) (${move_default_addr_high} ? 0x400000000LL \ +- : 0x10000000LL)) ++ : 0x180000000LL)) + #undef NT_DLL_AUTO_IMAGE_BASE + #define NT_DLL_AUTO_IMAGE_BASE \ + ((bfd_vma) (${move_default_addr_high} ? 0x400000000LL \ +- : 0x61300000LL)) ++ : 0x1C0000000LL)) + #undef NT_DLL_AUTO_IMAGE_MASK + #define NT_DLL_AUTO_IMAGE_MASK \ + ((bfd_vma) (${move_default_addr_high} ? 0x1ffff0000LL \ +- : 0x0ffc0000LL)) ++ : 0x1ffff0000LL)) + #else + #undef NT_EXE_IMAGE_BASE + #define NT_EXE_IMAGE_BASE \ diff --git a/mingw-w64-binutils/1000-PR24511.patch b/mingw-w64-binutils/1000-PR24511.patch deleted file mode 100644 index a3a54112cb..0000000000 --- a/mingw-w64-binutils/1000-PR24511.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 40bfb9762747f8336b17c70a0173d10200fa62eb Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Thu, 27 Feb 2020 17:28:47 +1030 -Subject: [PATCH] Re: PR24511, nm should not mark symbols in .init_array as "t" - - PR 24511 - * syms.c (bfd_decode_symclass): Reverse order of coff_section_type - and decode_section_type calls. ---- - bfd/syms.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/bfd/syms.c b/bfd/syms.c -index 128cf191453..8a8b74f3f92 100644 ---- a/bfd/syms.c -+++ b/bfd/syms.c -@@ -705,9 +705,9 @@ bfd_decode_symclass (asymbol *symbol) - c = 'a'; - else if (symbol->section) - { -- c = decode_section_type (symbol->section); -+ c = coff_section_type (symbol->section->name); - if (c == '?') -- c = coff_section_type (symbol->section->name); -+ c = decode_section_type (symbol->section); - } - else - return '?'; --- -2.18.2 - diff --git a/mingw-w64-binutils/1001-Change-the-default-characteristics-of-DLLs-built-by-.patch b/mingw-w64-binutils/1001-Change-the-default-characteristics-of-DLLs-built-by-.patch new file mode 100644 index 0000000000..e07b5f41a4 --- /dev/null +++ b/mingw-w64-binutils/1001-Change-the-default-characteristics-of-DLLs-built-by-.patch @@ -0,0 +1,611 @@ +From 3021170f1728200d1f08c2a57af625f7a1003097 Mon Sep 17 00:00:00 2001 +From: Jeremy Drake +Date: Thu, 27 Aug 2020 12:58:27 +0100 +Subject: [PATCH 1/3] Change the default characteristics of DLLs built by the + linker to more secure settings. + + PR 19011 + * emultempl/pe.em (DEFAULT_DLL_CHARACTERISTICS): Define. + (pe_dll_characteristics): Initialise to DEFAULT_DLL_CHARACTERISTICS. + (add_options): Add options to disable DLL characteristics. + (list_options): List the new options. + (handle_options): Handle the new options. + * emultempl/pep.em: Similar changes to above. + (NT_EXE_IMAGE_BASE): Default to an address above 4G. + (NT_DLL_IMAGE_BASE, NT_DLL_AUTO_IMAGE_BASE, + (NT_DLL_AUTO_IMAGE_MASK): Likewise. + * ld.texi: Document the new options. + * pe-dll.c (pe_dll_enable_reloc_section): Change to default to + true. + (generate_reloc): Do nothing if there is no reloc section. + (pe_exe_fill_sections): Only assign the reloc section contents if + the section exists. + * testsuite/ld-pe/pe.exp: Add the --disable-reloc-section flag to + the .secrel32 tests. + * testsuite/ld-scripts/provide-8.d: Expect for fail on PE targets. + * NEWS: Mention the change in DLL generation. +--- + ld/ChangeLog | 23 ++++++++ + ld/NEWS | 3 + + ld/emultempl/pe.em | 75 ++++++++++++++++++++---- + ld/emultempl/pep.em | 91 +++++++++++++++++++++++------ + ld/ld.texi | 34 ++++++++--- + ld/pe-dll.c | 10 +++- + ld/testsuite/ld-pe/pe.exp | 6 +- + ld/testsuite/ld-scripts/provide-8.d | 2 +- + 8 files changed, 201 insertions(+), 43 deletions(-) + +diff --git a/ld/ChangeLog b/ld/ChangeLog +index 4ba491d3c1..0a65318c46 100644 +--- a/ld/ChangeLog ++++ b/ld/ChangeLog +@@ -1,3 +1,26 @@ ++2020-08-27 Jeremy Drake ++ ++ PR 19011 ++ * emultempl/pe.em (DEFAULT_DLL_CHARACTERISTICS): Define. ++ (pe_dll_characteristics): Initialise to DEFAULT_DLL_CHARACTERISTICS. ++ (add_options): Add options to disable DLL characteristics. ++ (list_options): List the new options. ++ (handle_options): Handle the new options. ++ * emultempl/pep.em: Similar changes to above. ++ (NT_EXE_IMAGE_BASE): Default to an address above 4G. ++ (NT_DLL_IMAGE_BASE, NT_DLL_AUTO_IMAGE_BASE, ++ (NT_DLL_AUTO_IMAGE_MASK): Likewise. ++ * ld.texi: Document the new options. ++ * pe-dll.c (pe_dll_enable_reloc_section): Change to default to ++ true. ++ (generate_reloc): Do nothing if there is no reloc section. ++ (pe_exe_fill_sections): Only assign the reloc section contents if ++ the section exists. ++ * testsuite/ld-pe/pe.exp: Add the --disable-reloc-section flag to ++ the .secrel32 tests. ++ * testsuite/ld-scripts/provide-8.d: Expect for fail on PE targets. ++ * NEWS: Mention the change in DLL generation. ++ + 2020-07-24 Nick Clifton + + 2.35 Release: +diff --git a/ld/NEWS b/ld/NEWS +index eb2cff12ea..004e7c5d41 100644 +--- a/ld/NEWS ++++ b/ld/NEWS +@@ -1,5 +1,8 @@ + -*- text -*- + ++* The creation of PE format DLLs now defaults to using a more secure set of DLL ++ characteristics. ++ + Changes in 2.35: + + * X86 NaCl target support is removed. +diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em +index 3899c9d92c..f45518eafb 100644 +--- a/ld/emultempl/pe.em ++++ b/ld/emultempl/pe.em +@@ -104,6 +104,9 @@ fragment <input_bfds; b; b = b->link.next) + for (s = b->sections; s; s = s->next) +@@ -1547,9 +1548,11 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info) + if (s->output_section->vma == 0) + { + /* Huh? Shouldn't happen, but punt if it does. */ ++#if 0 /* This happens when linking with --just-symbols=, so do not generate an error. */ + einfo (_("%P: zero vma section reloc detected: `%s' #%d f=%d\n"), + s->output_section->name, s->output_section->index, + s->output_section->flags); ++#endif + continue; + } + +@@ -3630,7 +3633,8 @@ pe_exe_fill_sections (bfd *abfd, struct bfd_link_info *info) + /* Do the assignments again. */ + lang_do_assignments (lang_final_phase_enum); + } +- reloc_s->contents = reloc_d; ++ if (reloc_s) ++ reloc_s->contents = reloc_d; + } + + bfd_boolean +diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp +index 7bc933fc5a..17dafbb02b 100644 +--- a/ld/testsuite/ld-pe/pe.exp ++++ b/ld/testsuite/ld-pe/pe.exp +@@ -33,7 +33,7 @@ if {[istarget i*86-*-cygwin*] + + if {[istarget x86_64-*-mingw*] } { + set pe_tests { +- {".secrel32" "" "" "" {secrel1.s secrel2.s} ++ {".secrel32" "--disable-reloc-section" "" "" {secrel1.s secrel2.s} + {{objdump -s secrel_64.d}} "secrel.x"} + {"Empty export table" "" "" "" "exports.s" + {{objdump -p exports64.d}} "exports.dll"} +@@ -42,7 +42,7 @@ if {[istarget i*86-*-cygwin*] + } + } elseif {[istarget i*86-*-cygwin*] } { + set pe_tests { +- {".secrel32" "--disable-auto-import" "" "" {secrel1.s secrel2.s} ++ {".secrel32" "--disable-auto-import --disable-reloc-section" "" "" {secrel1.s secrel2.s} + {{objdump -s secrel.d}} "secrel.x"} + {"Empty export table" "" "" "" "exports.s" + {{objdump -p exports.d}} "exports.dll"} +@@ -51,7 +51,7 @@ if {[istarget i*86-*-cygwin*] + } + } else { + set pe_tests { +- {".secrel32" "" "" "" {secrel1.s secrel2.s} ++ {".secrel32" "--disable-reloc-section" "" "" {secrel1.s secrel2.s} + {{objdump -s secrel.d}} "secrel.x"} + {"Empty export table" "" "" "" "exports.s" + {{objdump -p exports.d}} "exports.dll"} +diff --git a/ld/testsuite/ld-scripts/provide-8.d b/ld/testsuite/ld-scripts/provide-8.d +index f5abc524e8..1dd5553ed3 100644 +--- a/ld/testsuite/ld-scripts/provide-8.d ++++ b/ld/testsuite/ld-scripts/provide-8.d +@@ -1,7 +1,7 @@ + #source: provide-5.s + #ld: -T provide-8.t + #nm: -B +-#xfail: x86_64-*-cygwin mmix-*-* sh-*-pe spu-*-* ++#xfail: mmix-*-* *-*-pe spu-*-* *-*-mingw* *-*-cygwin + + #... + 0+4000 D __FOO +-- +2.28.0.windows.1 + diff --git a/mingw-w64-binutils/1001-PR25447.patch b/mingw-w64-binutils/1001-PR25447.patch deleted file mode 100644 index 37b92cfbc0..0000000000 --- a/mingw-w64-binutils/1001-PR25447.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 82f439d028c65663a0baf0a17ef5c4a2ea5c84a7 Mon Sep 17 00:00:00 2001 -From: Nick Clifton -Date: Tue, 11 Feb 2020 15:55:25 +0000 -Subject: [PATCH] Import a fix from the mainline sources that prevents a - potential illegal memory access when parsing PE binaries. - - PR 25447 - * coffgen.c (_bfd_coff_close_and_cleanup): Do not clear the keep - syms and keep strings flags as these may have been set in order to - prevent a bogus call to free. ---- - bfd/coffgen.c | 6 ++++-- - 1 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/bfd/coffgen.c b/bfd/coffgen.c -index 2bfcf1a6b14..3ddd2d89a83 100644 ---- a/bfd/coffgen.c -+++ b/bfd/coffgen.c -@@ -3175,8 +3175,10 @@ _bfd_coff_close_and_cleanup (bfd *abfd) - && bfd_family_coff (abfd) - && coff_data (abfd) != NULL) - { -- obj_coff_keep_syms (abfd) = FALSE; -- obj_coff_keep_strings (abfd) = FALSE; -+ /* PR 25447: -+ Do not clear the keep_syms and keep_strings flags. -+ These may have been set by pe_ILF_build_a_bfd() indicating -+ that the syms and strings pointers are not to be freed. */ - if (!_bfd_coff_free_symbols (abfd)) - return FALSE; - } --- -2.18.2 - diff --git a/mingw-w64-binutils/1002-mingw-plugin-test-regressions-due-to-commit-514b4e19.patch b/mingw-w64-binutils/1002-mingw-plugin-test-regressions-due-to-commit-514b4e19.patch new file mode 100644 index 0000000000..83dcb8970d --- /dev/null +++ b/mingw-w64-binutils/1002-mingw-plugin-test-regressions-due-to-commit-514b4e19.patch @@ -0,0 +1,69 @@ +From 369140ab89948265c722a9b7a7e92b7de4a88d02 Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Fri, 28 Aug 2020 10:51:28 +0930 +Subject: [PATCH 2/3] mingw plugin test regressions due to commit 514b4e191d5f + +Fixes new failures due to image base change. + + PR 19011 + * testsuite/ld-plugin/plugin.exp: Use modified CFLAGS throughout + file. Add --image-base for pecoff. +--- + ld/ChangeLog | 6 ++++++ + ld/testsuite/ld-plugin/plugin.exp | 8 ++++++++ + 2 files changed, 14 insertions(+) + +diff --git a/ld/ChangeLog b/ld/ChangeLog +index 0a65318c46..b952c547db 100644 +--- a/ld/ChangeLog ++++ b/ld/ChangeLog +@@ -1,3 +1,9 @@ ++2020-08-28 Alan Modra ++ ++ PR 19011 ++ * testsuite/ld-plugin/plugin.exp: Use modified CFLAGS throughout ++ file. Add --image-base for pecoff. ++ + 2020-08-27 Jeremy Drake + + PR 19011 +diff --git a/ld/testsuite/ld-plugin/plugin.exp b/ld/testsuite/ld-plugin/plugin.exp +index dc8f007397..bbff5d9d55 100644 +--- a/ld/testsuite/ld-plugin/plugin.exp ++++ b/ld/testsuite/ld-plugin/plugin.exp +@@ -95,6 +95,7 @@ set _ "" + set plugin_nm_output "" + set old_CFLAGS "$CFLAGS" + append CFLAGS " $NOSANTIZE_CFLAGS" ++ + if { $can_compile && \ + (![ld_compile "$CC $CFLAGS" $srcdir/$subdir/main.c tmpdir/main.o] \ + || ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/func.c tmpdir/func.o] \ +@@ -129,6 +130,10 @@ set libs "[ld_link_defsyms] --defsym ${_}printf=${_}main --defsym ${_}puts=${_}m + if { $dotsym } { + append libs " --defsym .printf=.main --defsym .puts=.main" + } ++if [is_pecoff_format] { ++ #otherwise relocs overflow to symbols defined on the command line ++ append libs " --image-base=0x10000000" ++} + + set plugin_tests [list \ + [list "load plugin" "-plugin $plugin_path \ +@@ -289,6 +294,7 @@ if { !$can_compile || $failed_compile } { + $failure_kind [lindex $testitem 0] + } + } ++ set CFLAGS "$old_CFLAGS" + return + } + +@@ -390,3 +396,5 @@ if [ar_simple_create $ar "--plugin $plugin4_path" "tmpdir/libpr20070.a" \ + } else { + unresolved "PR ld/20070" + } ++ ++set CFLAGS "$old_CFLAGS" +-- +2.28.0.windows.1 + diff --git a/mingw-w64-binutils/1003-Fixes-for-testsuite-failures-introduced-by-the-chang.patch b/mingw-w64-binutils/1003-Fixes-for-testsuite-failures-introduced-by-the-chang.patch new file mode 100644 index 0000000000..892d9a6398 --- /dev/null +++ b/mingw-w64-binutils/1003-Fixes-for-testsuite-failures-introduced-by-the-chang.patch @@ -0,0 +1,88 @@ +From f62e26a9b35e76eec4e11753eaf9dcb61b9ddda3 Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Fri, 28 Aug 2020 09:43:13 +0100 +Subject: [PATCH 3/3] Fixes for testsuite failures introduced by the changes + made for PR 19011. + + PR19011 +bfd * cofflink.c (_bfd_coff_generic_relocate_section): Provide a value + for undefined symbols which will not generate extra warning + messages about truncated relocs. + +ld * testsuite/lib/ld-lib.exp (ld_link_defsyms): For PE based targets + define the __main and ___main symbols in terms of the main symbol. +--- + bfd/ChangeLog | 7 +++++++ + bfd/cofflink.c | 12 +++++++++--- + ld/ChangeLog | 6 ++++++ + ld/testsuite/lib/ld-lib.exp | 2 +- + 4 files changed, 23 insertions(+), 4 deletions(-) + +diff --git a/bfd/ChangeLog b/bfd/ChangeLog +index 87cd2916c9..f991e4208d 100644 +--- a/bfd/ChangeLog ++++ b/bfd/ChangeLog +@@ -1,3 +1,10 @@ ++2020-08-28 Nick Clifton ++ ++ PR19011 ++ * cofflink.c (_bfd_coff_generic_relocate_section): Provide a value ++ for undefined symbols which will not generate extra warning ++ messages about truncated relocs. ++ + 2020-07-24 Nick Clifton + + 2.35 Release: +diff --git a/bfd/cofflink.c b/bfd/cofflink.c +index 63bdcde115..8833cd0caf 100644 +--- a/bfd/cofflink.c ++++ b/bfd/cofflink.c +@@ -3053,9 +3053,15 @@ _bfd_coff_generic_relocate_section (bfd *output_bfd, + } + + else if (! bfd_link_relocatable (info)) +- (*info->callbacks->undefined_symbol) +- (info, h->root.root.string, input_bfd, input_section, +- rel->r_vaddr - input_section->vma, TRUE); ++ { ++ (*info->callbacks->undefined_symbol) ++ (info, h->root.root.string, input_bfd, input_section, ++ rel->r_vaddr - input_section->vma, TRUE); ++ /* Stop the linker from issueing errors about truncated relocs ++ referencing this undefined symbol by giving it an address ++ that should be in range. */ ++ val = input_section->output_section->vma; ++ } + } + + /* If the input section defining the symbol has been discarded +diff --git a/ld/ChangeLog b/ld/ChangeLog +index b952c547db..f8ad16235f 100644 +--- a/ld/ChangeLog ++++ b/ld/ChangeLog +@@ -1,3 +1,9 @@ ++2020-08-28 Nick Clifton ++ ++ PR 19011 ++ * testsuite/lib/ld-lib.exp (ld_link_defsyms): For PE based targets ++ define the __main and ___main symbols in terms of the main symbol. ++ + 2020-08-28 Alan Modra + + PR 19011 +diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp +index 8d851a94b7..828bf849f5 100644 +--- a/ld/testsuite/lib/ld-lib.exp ++++ b/ld/testsuite/lib/ld-lib.exp +@@ -376,7 +376,7 @@ proc ld_link_defsyms {} { + + # Windows targets need __main, some prefixed with underscore. + if {[istarget *-*-cygwin* ] || [istarget *-*-mingw*]} { +- append flags " --defsym __main=0 --defsym ___main=0" ++ append flags " --defsym __main=main --defsym ___main=main" + } + + # PowerPC EABI code calls __eabi. +-- +2.28.0.windows.1 + diff --git a/mingw-w64-binutils/2000-Temporarily-revert-default-dll-characteristics.patch b/mingw-w64-binutils/2000-Temporarily-revert-default-dll-characteristics.patch new file mode 100644 index 0000000000..5ccf7cf089 --- /dev/null +++ b/mingw-w64-binutils/2000-Temporarily-revert-default-dll-characteristics.patch @@ -0,0 +1,113 @@ +From 322caba57ff2728aa8f194683af3109a122c0130 Mon Sep 17 00:00:00 2001 +From: Jeremy Drake +Date: Mon, 31 Aug 2020 10:26:19 -0700 +Subject: [PATCH 4/4] Temporarily revert default dll characteristics. + +Until more testing is done, this patch reverts the +DEFAULT_DLL_CHARACTERISTICS to 0, but keeps the new --disable- options +for the flags so that they can be overridden later on the command line. + +Note that this does NOT revert the default --enable-reloc-section. This +shouldn't hurt anything other than making the resulting executable +larger. +--- + ld/ChangeLog | 8 ++++++++ + ld/NEWS | 2 ++ + ld/emultempl/pe.em | 3 +-- + ld/emultempl/pep.em | 4 +--- + ld/ld.texi | 7 +++---- + 5 files changed, 15 insertions(+), 9 deletions(-) + +diff --git a/ld/ChangeLog b/ld/ChangeLog +index f8ad16235f..4f9ccb6b10 100644 +--- a/ld/ChangeLog ++++ b/ld/ChangeLog +@@ -1,3 +1,11 @@ ++2020-08-30 Jeremy Drake ++ ++ PR 19011 ++ * emultempl/pe.em (DEFAULT_DLL_CHARACTERISTICS): Revert to 0. ++ * emultempl/pep.em: Likewise. ++ * ld.texi: Document the reverted defaults. ++ * NEWS: Mention the reverted defaults. ++ + 2020-08-28 Nick Clifton + + PR 19011 +diff --git a/ld/NEWS b/ld/NEWS +index 004e7c5d41..a947ff2f1a 100644 +--- a/ld/NEWS ++++ b/ld/NEWS +@@ -3,6 +3,8 @@ + * The creation of PE format DLLs now defaults to using a more secure set of DLL + characteristics. + ++* These defaults are temporarily reverted until more testing is done. ++ + Changes in 2.35: + + * X86 NaCl target support is removed. +diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em +index f45518eafb..b3990cf677 100644 +--- a/ld/emultempl/pe.em ++++ b/ld/emultempl/pe.em +@@ -104,8 +104,7 @@ fragment < 0) { ++ fd = open(windowsFullName, O_RDONLY); ++ } ++ } ++#else ++ fd = open(fullname, O_RDONLY); ++#endif ++ if (fd == -1) { ++ if (!silent) { ++ Parse_Error(PARSE_FATAL, "Cannot open %s", fullname); ++ } ++ free(fullname); ++ return; + } +diff --git a/util.c b/util.c +index 25f4f5e..7fd2768 100644 +--- a/util.c ++++ b/util.c +@@ -3032,2 +3032,11 @@ char * getUnixPathCmd(const char *path) + ++char * getWindowsPathCmd(const char *path) ++{ ++ return str_concat( ++ "cygpath -m", str_concat("\"", ++ str_concat(path, "\"", 0), ++ 0), ++ STR_ADDSPACE); ++} ++ + #endif diff --git a/mingw-w64-bmake/PKGBUILD b/mingw-w64-bmake/PKGBUILD index 6d5c325782..3a6623b99d 100644 --- a/mingw-w64-bmake/PKGBUILD +++ b/mingw-w64-bmake/PKGBUILD @@ -8,7 +8,7 @@ _realname=bmake pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=20181221 -pkgrel=5 +pkgrel=6 pkgdesc='Portable version of the NetBSD make build tool' arch=('any') url='http://www.crufty.net/help/sjg/bmake.html' @@ -27,6 +27,7 @@ source=("http://www.crufty.net/ftp/pub/sjg/bmake-$pkgver.tar.gz" 0002-enable-debug-output-on-test.patch 0003-print-pwd-on-fail-install.patch 0004-add-windows-draft-configs.patch + 0005-fallback-open-file-through-native-windows-path.patch ) # checksum source: http://www.crufty.net/ftp/pub/sjg/bmake-$pkgver.tar.gz.sha1 sha1sums=('ce7db05c68e2fbad41d1dd92ec110406093293bd' @@ -34,6 +35,7 @@ sha1sums=('ce7db05c68e2fbad41d1dd92ec110406093293bd' 'SKIP' 'SKIP' 'SKIP' + 'SKIP' ) prepare() { @@ -42,6 +44,7 @@ prepare() { patch -p1 -l -i "${srcdir}"/0002-enable-debug-output-on-test.patch patch -p1 -l -i "${srcdir}"/0003-print-pwd-on-fail-install.patch patch -p1 -l -i "${srcdir}"/0004-add-windows-draft-configs.patch + patch -p1 -l -i "${srcdir}"/0005-fallback-open-file-through-native-windows-path.patch } build() { diff --git a/mingw-w64-ca-certificates/PKGBUILD b/mingw-w64-ca-certificates/PKGBUILD index 302bba578d..5fe327b466 100644 --- a/mingw-w64-ca-certificates/PKGBUILD +++ b/mingw-w64-ca-certificates/PKGBUILD @@ -3,7 +3,7 @@ _realname=ca-certificates pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=20190110 +pkgver=20200601 pkgrel=1 pkgdesc='Common CA certificates (mingw-w64)' arch=('any') @@ -19,9 +19,9 @@ source=("http://archive.ubuntu.com/ubuntu/pool/main/c/${_realname}/${_realname}_ depends=("${MINGW_PACKAGE_PREFIX}-p11-kit") makedepends=("${MINGW_PACKAGE_PREFIX}-openssl" "${MINGW_PACKAGE_PREFIX}-p11-kit" - "${MINGW_PACKAGE_PREFIX}-python3" + "${MINGW_PACKAGE_PREFIX}-python" 'asciidoc' 'libxslt' 'sed' 'grep') -sha256sums=('ee4bf0f4c6398005f5b5ca4e0b87b82837ac5c3b0280a1cb3a63c47555c3a675' +sha256sums=('43766d5a436519503dfd65ab83488ae33ab4d4ca3d0993797b58c92eb9ed4e63' 'aae6aa5d2bd31064eb923a00a0d37789d3e2f2aa2ef0b39c10228d8d7a3ceb30' '5736cc3a73ff9bceed43bafad85100a2fcfdfae1cf2cb7e201b5fa6f1421fc2e' 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' @@ -29,7 +29,10 @@ sha256sums=('ee4bf0f4c6398005f5b5ca4e0b87b82837ac5c3b0280a1cb3a63c47555c3a675' 'b052972dd118a3e25f785b6caa141599f0db6fc1d943e9ebcd6ca0e1f0421f60') prepare() { - sed "s|/usr/bin/python|${MINGW_PREFIX}/bin/python3|g" -i certdata2pem.py + cd "${srcdir}" + mv "work" "${srcdir}/${_realname}-${pkgver}" + + sed "s|/usr/bin/python|${MINGW_PREFIX}/bin/python|g" -i certdata2pem.py patch -p0 -i ${srcdir}/certdata2pem.patch cp certdata2pem.py ${srcdir}/${_realname}-${pkgver}/mozilla/certdata2pem.py cd ${srcdir}/${_realname}-${pkgver} @@ -41,7 +44,7 @@ build() { cd ${srcdir}/${_realname}-${pkgver}/mozilla mkdir -p legacy-{default,disable} - PYTHONUTF8=1 PYTHONIOENCODING=utf-8 ${MINGW_PREFIX}/bin/python3 ./certdata2pem.py + PYTHONUTF8=1 PYTHONIOENCODING=utf-8 ${MINGW_PREFIX}/bin/python ./certdata2pem.py ( cat < +_realname=cninja +pkgbase=mingw-w64-${_realname} +pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} +pkgver=3.5.3 +pkgrel=1 +pkgdesc="cninja, an opinionated cmake config manager" +arch=('any') +url="https://github.com/jcelerier/cninja" +license=('AGPLv3') +depends=( + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-clang" + "${MINGW_PACKAGE_PREFIX}-lld" + "${MINGW_PACKAGE_PREFIX}-ninja" + "${MINGW_PACKAGE_PREFIX}-libc++" +) +makedepends=( + "${MINGW_PACKAGE_PREFIX}-boost" +) +provides=("$pkgname=$pkgver") +source=("https://github.com/jcelerier/cninja/releases/download/v${pkgver}/cninja-v${pkgver}-src.tar.gz") +sha512sums=("915495dcd0abfda9adc7c7b69bb195929a9e26e5052314f9d14596924dac5c62487b488a5926fc59b5e2bf44ea033acbb2c49adb88f5e5ed180f2b6398936f8d") + +build() { + [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} + mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -GNinja \ + -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ + "$srcdir" + + cmake --build . +} + +package() { + cd "$srcdir/build-${MINGW_CHOST}" + DESTDIR="${pkgdir}" cmake --build . --target install/strip + + install -D -m644 "$srcdir/LICENSE.md" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/mingw-w64-cross-binutils/PKGBUILD b/mingw-w64-cross-binutils/PKGBUILD deleted file mode 100644 index 2c28312d61..0000000000 --- a/mingw-w64-cross-binutils/PKGBUILD +++ /dev/null @@ -1,64 +0,0 @@ -# Maintainer: wirx6 - -_realname=binutils -_targets=(i686-elf - x86_64-elf - arm-none-eabi) -pkgbase=mingw-w64-cross-${_realname} -pkgname=() - -for target in ${_targets[@]} -do - pkgname+=(${MINGW_PACKAGE_PREFIX}-${target}-${_realname}) -done - -pkgver=2.31.1 -pkgrel=1 -arch=('any') -url="https://www.gnu.org/software/binutils/" -license=('GPL') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -options=(staticlibs) -source=("https://mirrors.kernel.org/sources.redhat.com/${_realname}/releases/${_realname}-${pkgver}.tar.bz2") -sha256sums=('SKIP') - -build() { - for target in ${_targets[@]} - do - plain "building ${MINGW_PACKAGE_PREFIX}-${target}-${_realname}" - - cd ${srcdir} - [[ -d build-${MINGW_CHOST}-${target} ]] && rm -rf build-${MINGW_CHOST}-${target} - mkdir -p build-${MINGW_CHOST}-${target} && cd build-${MINGW_CHOST}-${target} - - ../${_realname}-${pkgver}/configure \ - --build="${MINGW_CHOST}" \ - --host="${MINGW_CHOST}" \ - --target="${target}" \ - --prefix="${MINGW_PREFIX}" \ - --with-sysroot="${MINGW_PREFIX}" \ - --disable-nls \ - --disable-rpath \ - --disable-werror \ - --enable-multilib \ - --enable-interwork - - make - done -} - -package_target() { - pkgdesc="GNU Tools for ${1} target - Binutils (mingw-w64)" - groups=("${MINGW_PACKAGE_PREFIX}-${1}-toolchain") - - cd ${srcdir}/build-${MINGW_CHOST}-${1} - make DESTDIR=${pkgdir} install - rm -rf ${pkgdir}${MINGW_PREFIX}/share/info -} - -for target in ${_targets[@]} -do - eval "package_${MINGW_PACKAGE_PREFIX}-${target}-${_realname}() { - package_target ${target} - }" -done diff --git a/mingw-w64-curl/PKGBUILD b/mingw-w64-curl/PKGBUILD index 1eb4d918eb..a2c469e4f0 100644 --- a/mingw-w64-curl/PKGBUILD +++ b/mingw-w64-curl/PKGBUILD @@ -13,7 +13,7 @@ fi _realname=curl pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}${_namesuff}" -pkgver=7.71.0 +pkgver=7.72.0 pkgrel=1 pkgdesc="Command line tool and library for transferring data with URLs. (mingw-w64)" arch=('any') @@ -46,7 +46,7 @@ source=("${url}/download/${_realname}-${pkgver}.tar.bz2"{,.asc} "0001-Make-cURL-relocatable.patch" "0002-nghttp2-static.patch" "0003-libpsl-static-libs.patch") -sha256sums=('600f00ac2481a89548a4141ddf983fd9386165e1960bac91d0a1c81dca5dd341' +sha256sums=('ad91970864102a59765e20ce16216efc9d6ad381471f7accceceab7d905703ef' 'SKIP' '70bc753d72c8b5b814ceffc0d7007626f3a7c9dfa6d10bf29afdf5f594cdb6a4' '79eec8a337e375d5102fef884030ceacd163a79e5c495e9a974a6b9a11b60c61' diff --git a/mingw-w64-dfu-programmer/PKGBUILD b/mingw-w64-dfu-programmer/PKGBUILD index dc489476bc..600fa9fe31 100644 --- a/mingw-w64-dfu-programmer/PKGBUILD +++ b/mingw-w64-dfu-programmer/PKGBUILD @@ -4,12 +4,12 @@ _realname=dfu-programmer pkgbase=mingw-w64-${_realname} pkgname=${MINGW_PACKAGE_PREFIX}-${_realname} pkgver=0.7.2 -pkgrel=1 +pkgrel=2 pkgdesc='Device firmware update based USB programmer for Atmel chips (mingw-w64)' arch=('any') license=('GPL') url='https://github.com/dfu-programmer/dfu-programmer' -makedepends=("${MINGW_PACKAGE_PREFIX}-libusb-win32") +depends=("${MINGW_PACKAGE_PREFIX}-libusb-win32") source=( "https://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/${pkgver}/dfu-programmer-${pkgver}.tar.gz" 01-use-libusb-win32.patch diff --git a/mingw-w64-enchant/PKGBUILD b/mingw-w64-enchant/PKGBUILD index dd7ae11905..58f32834d5 100644 --- a/mingw-w64-enchant/PKGBUILD +++ b/mingw-w64-enchant/PKGBUILD @@ -4,7 +4,7 @@ _realname=enchant pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.2.8 +pkgver=2.2.10 pkgrel=1 pkgdesc="Enchanting Spell Checking Library (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ depends=(${MINGW_PACKAGE_PREFIX}-aspell options=('!libtool' 'strip' '!debug' '!makeflags') source=("${_realname}-${pkgver}.tar.gz::https://github.com/AbiWord/enchant/archive/v${pkgver}.tar.gz" 001_fix_relocation.patch) -sha256sums=('20cf8120e57723c6aa6a2595c357e45f68fd21afe1f0382b0cef5e4c251800e7' +sha256sums=('bacfc31336c4da9f1e6405be2761266e049e893039f22f1d792c75f0366c5a56' '8cac1be09ab84212b4ee388cbaa45593e3ed71b257b64c20e99cf147249dec62') prepare() { diff --git a/mingw-w64-exiv2/0001-fix-tests.patch b/mingw-w64-exiv2/0001-fix-tests.patch deleted file mode 100644 index 236d073d67..0000000000 --- a/mingw-w64-exiv2/0001-fix-tests.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -Naur exiv2-0.26.orig/test/functions.source exiv2-0.26/test/functions.source ---- exiv2-0.26.orig/test/functions.source 2017-04-26 21:16:21.000000000 +0200 -+++ exiv2-0.26/test/functions.source 2017-06-20 23:59:49.920106800 +0200 -@@ -440,6 +440,8 @@ - testdir="$here/tmp" - datadir="../data" - -+ mkdir -p $testdir -+ - if [ -z "$EXIV2_BINDIR" ] ; then - bin="$here/../build/bin/" - else -@@ -452,6 +454,7 @@ - export PLATFORM=cygwin - elif [ "${os:0:4}" == "MING" -o "${os:0:4}" == "MSYS" ]; then - export PLATFORM=mingw -+ bin=$(cygpath $EXIV2_BINDIR) - else - export PLATFORM=$os - fi diff --git a/mingw-w64-exiv2/PKGBUILD b/mingw-w64-exiv2/PKGBUILD index 8f07765648..2ca4c05a33 100644 --- a/mingw-w64-exiv2/PKGBUILD +++ b/mingw-w64-exiv2/PKGBUILD @@ -4,8 +4,8 @@ _realname=exiv2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.27.2 -pkgrel=2 +pkgver=0.27.3 +pkgrel=1 pkgdesc="Exif and Iptc metadata manipulation library and tools (mingw-w64)" arch=('any') url="https://exiv2.org/" @@ -15,19 +15,15 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool" "${MINGW_PACKAGE_PREFIX}-cmake") depends=("${MINGW_PACKAGE_PREFIX}-expat" - "${MINGW_PACKAGE_PREFIX}-gettext" "${MINGW_PACKAGE_PREFIX}-curl" - "${MINGW_PACKAGE_PREFIX}-libssh2" + "${MINGW_PACKAGE_PREFIX}-libiconv" "${MINGW_PACKAGE_PREFIX}-zlib") options=('strip' 'staticlibs') -source=(${_realname}-${pkgver}.tar.gz::"https://github.com/Exiv2/${_realname}/archive/v${pkgver}.tar.gz" - 0001-fix-tests.patch) -sha256sums=('3dbcaf01fbc5b98d42f091d1ff0d4b6cd9750dc724de3d9c0d113948570b2934' - '8d6928e9657554a0ba306bfc931dc3a5fc08422c8552fed1bbe00b512e69eae4') +source=(${_realname}-${pkgver}.tar.gz::"https://github.com/Exiv2/${_realname}/archive/v${pkgver}.tar.gz") +sha256sums=('6398bc743c32b85b2cb2a604273b8c90aa4eb0fd7c1700bf66cbb2712b4f00c1') prepare() { cd ${srcdir}/${_realname}-${pkgver} - patch -p1 -i ${srcdir}/0001-fix-tests.patch } build() { @@ -51,18 +47,13 @@ build() { -DEXIV2_ENABLE_NLS=OFF \ -DEXIV2_ENABLE_WIN_UNICODE=ON \ -DEXIV2_BUILD_SAMPLES=OFF \ + -DEXIV2_ENABLE_WEBREADY=ON \ -DEXIV2_ENABLE_CURL=ON \ - -DEXIV2_ENABLE_SSH=ON \ ../${_realname}-${pkgver} make } -check() { - cd ${srcdir}/build-${MINGW_CHOST} - make tests -} - package() { cd ${srcdir}/build-${MINGW_CHOST} make DESTDIR="${pkgdir}" install diff --git a/mingw-w64-faudio/PKGBUILD b/mingw-w64-faudio/PKGBUILD index 11d8ef33b8..632e0f15a5 100644 --- a/mingw-w64-faudio/PKGBUILD +++ b/mingw-w64-faudio/PKGBUILD @@ -3,7 +3,7 @@ _realname=FAudio pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=20.08 +pkgver=20.09 pkgrel=1 pkgdesc="FAudio - Accuracy-focused XAudio reimplementation for open platforms (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ depends=("${MINGW_PACKAGE_PREFIX}-SDL2" makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") options=('strip' 'staticlibs') source=(${_realname}-${pkgver}.tar.gz::"https://github.com/FNA-XNA/FAudio/archive/${pkgver}.tar.gz") -sha256sums=('5c3409fa0e532591f0ab4de1ae57d07cc345efa5cbe83ec25e9f5ba180f920f4') +sha256sums=('375d12ba57f507b95e030926fd08308029b38af883d0524583a2d5d8fe65168b') build() { [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH} diff --git a/mingw-w64-ffmpeg/PKGBUILD b/mingw-w64-ffmpeg/PKGBUILD index e293b8879f..d171944801 100644 --- a/mingw-w64-ffmpeg/PKGBUILD +++ b/mingw-w64-ffmpeg/PKGBUILD @@ -5,8 +5,8 @@ _realname=ffmpeg pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.3 -pkgrel=2 +pkgver=4.3.1 +pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution (mingw-w64)" arch=('any') url="https://ffmpeg.org/" @@ -49,7 +49,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-nasm") source=(https://ffmpeg.org/releases/${_realname}-${pkgver}.tar.xz{,.asc}) validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8') -sha256sums=('1d0ad06484f44bcb97eba5e93c40bcb893890f9f64aeb43e46cd9bb4cbd6795d' +sha256sums=('ad009240d46e307b4e03a213a0f49c11b650e445b1f8be0dda2a9212b34d2ffb' 'SKIP') prepare() { diff --git a/mingw-w64-freeimage/PKGBUILD b/mingw-w64-freeimage/PKGBUILD index 46888897ca..8ada0f6b20 100644 --- a/mingw-w64-freeimage/PKGBUILD +++ b/mingw-w64-freeimage/PKGBUILD @@ -7,7 +7,7 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}") pkgver=3.18.0 -pkgrel=4 +pkgrel=5 pkgdesc="Library project for developers who would like to support popular graphics image formats (mingw-w64)" arch=('any') license=('GPL' 'custom:FIPL') @@ -24,20 +24,24 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-iconv" "${MINGW_PACKAGE_PREFIX}-pkg-config" - "dos2unix" "make") + "dos2unix" "make" "lndir") options=('strip' 'staticlibs' '!buildflags') source=("https://downloads.sourceforge.net/sourceforge/freeimage/${_realname}${pkgver//./}.zip" 'FreeImage-3.17.0_mingw-makefiles.patch' - 'FreeImage-3.18.0_unbundle.patch') + 'FreeImage-3.18.0_unbundle.patch' + 'freeimage-libraw-0.20.patch') sha256sums=('f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd' 'df3845a61b45fdb0426c4466e48e2478e63effb721cb0b1f2521952390c57290' - '029960951b743bbf78557d78cd3ac5c417146b169f65aaf9fc2c7a914a87611b') + '029960951b743bbf78557d78cd3ac5c417146b169f65aaf9fc2c7a914a87611b' + '71c25974c25dfced11b08206aae6e759675b53bae061be5f34fa1107beec9233') prepare() { cd ${srcdir}/${_realname} patch -p1 -i ${srcdir}/FreeImage-3.18.0_unbundle.patch patch -p1 -i ${srcdir}/FreeImage-3.17.0_mingw-makefiles.patch + # taken from Arch + patch -p1 -i ${srcdir}/freeimage-libraw-0.20.patch # remove all included libs to make sure these don't get used during compile rm -r Source/Lib* Source/ZLib Source/OpenEXR diff --git a/mingw-w64-freeimage/freeimage-libraw-0.20.patch b/mingw-w64-freeimage/freeimage-libraw-0.20.patch new file mode 100644 index 0000000000..b921dca1ea --- /dev/null +++ b/mingw-w64-freeimage/freeimage-libraw-0.20.patch @@ -0,0 +1,50 @@ +--- FreeImage/Source/FreeImage/PluginRAW.cpp.orig 2020-07-23 17:27:57.937848902 +0000 ++++ FreeImage/Source/FreeImage/PluginRAW.cpp 2020-07-23 17:28:59.482079468 +0000 +@@ -63,17 +63,14 @@ + } + + int read(void *buffer, size_t size, size_t count) { +- if(substream) return substream->read(buffer, size, count); + return _io->read_proc(buffer, (unsigned)size, (unsigned)count, _handle); + } + + int seek(INT64 offset, int origin) { +- if(substream) return substream->seek(offset, origin); + return _io->seek_proc(_handle, (long)offset, origin); + } + + INT64 tell() { +- if(substream) return substream->tell(); + return _io->tell_proc(_handle); + } + +@@ -83,13 +80,11 @@ + + int get_char() { + int c = 0; +- if(substream) return substream->get_char(); + if(!_io->read_proc(&c, 1, 1, _handle)) return -1; + return c; + } + + char* gets(char *buffer, int length) { +- if (substream) return substream->gets(buffer, length); + memset(buffer, 0, length); + for(int i = 0; i < length; i++) { + if(!_io->read_proc(&buffer[i], 1, 1, _handle)) +@@ -104,7 +99,6 @@ + std::string buffer; + char element = 0; + bool bDone = false; +- if(substream) return substream->scanf_one(fmt,val); + do { + if(_io->read_proc(&element, 1, 1, _handle) == 1) { + switch(element) { +@@ -127,7 +121,6 @@ + } + + int eof() { +- if(substream) return substream->eof(); + return (_io->tell_proc(_handle) >= _eof); + } + diff --git a/mingw-w64-fribidi/PKGBUILD b/mingw-w64-fribidi/PKGBUILD index 0715d73a3c..d29fc4952b 100644 --- a/mingw-w64-fribidi/PKGBUILD +++ b/mingw-w64-fribidi/PKGBUILD @@ -3,7 +3,7 @@ _realname=fribidi pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.9 +pkgver=1.0.10 pkgrel=1 pkgdesc="A Free Implementation of the Unicode Bidirectional Algorithm (mingw-w64)" arch=('any') @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-meson" "${MINGW_PACKAGE_PREFIX}-ninja") source=(${_realname}-${pkgver}.tar.gz::"https://github.com/fribidi/fribidi/archive/v${pkgver}.tar.gz") -sha256sums=('ef6f940d04213a0fb91a0177b2b57df2031bf3a7e2cd0ee2c6877a160fc206df') +sha256sums=('3ebb19c4184ed6dc324d2e291d7465bc6108a20be019f053f33228e07e879c4f') build() { mkdir -p build-${MINGW_CHOST}-static diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 20332e1660..fed9163f9b 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -84,7 +84,10 @@ sha256sums=('b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c' 'c7359f4c7015bc1fb02bc13449fa9826669273bd1f0663ba898decb67e8487fc' '055289699c4222ef0b8125abdc8c9ceeff0712876c86e6d552a056fbacc14284' '5240a9e731b45c17a164066c7eb193c1fbee9fd8d9a2a5afa2edbcde9510da47') -validpgpkeys=('33C235A34C46AA3FFB293709A328C3A2C3C45C06') +validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org + 86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos@foutrelis.com + 13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther@gmail.com + 33C235A34C46AA3FFB293709A328C3A2C3C45C06) # Jakub Jelinek # Helper macros to help make tasks easier # apply_patch_with_msg() { diff --git a/mingw-w64-glib2/PKGBUILD b/mingw-w64-glib2/PKGBUILD index 2033568688..083e2d11fe 100644 --- a/mingw-w64-glib2/PKGBUILD +++ b/mingw-w64-glib2/PKGBUILD @@ -6,7 +6,7 @@ _realname=glib2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.64.4 +pkgver=2.64.5 pkgrel=1 url="https://www.gtk.org/" arch=('any') @@ -31,7 +31,7 @@ source=("https://download.gnome.org/sources/glib/${pkgver%.*}/glib-${pkgver}.tar gio-querymodules.hook.in 0002-disable_glib_compile_schemas_warning.patch pyscript2exe.py) -sha256sums=('f7e0b325b272281f0462e0f7fff25a833820cac19911ff677251daf6d87bce50' +sha256sums=('9cbd5bd2715ead1c28d53c46f7b7b6ff6166f5887b772c1a9e3bf2910cfecc11' '51d02360a1ee978fd45e77b84bca9cfbcf080d91986b5c0efe0732779c6a54ec' '1e3ac7cfd4644f3849704e54fcfbb12d15440a33cd5c2d014d4a479c6aaab185' '0f44135a139e3951c4b5fa7d4628d75226e0666d891faf524777e1d1ec3b440b' diff --git a/mingw-w64-gnupg/PKGBUILD b/mingw-w64-gnupg/PKGBUILD index 3d049c7966..903b1cbb62 100644 --- a/mingw-w64-gnupg/PKGBUILD +++ b/mingw-w64-gnupg/PKGBUILD @@ -4,7 +4,7 @@ _realname=gnupg pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.2.20 +pkgver=2.2.23 pkgrel=1 pkgdesc="GNU Privacy Guard - a PGP replacement tool (mingw-w64)" arch=('any') @@ -32,7 +32,7 @@ source=(https://gnupg.org/ftp/gcrypt/gnupg/${_realname}-${pkgver}.tar.bz2{,.sig} 02-mingw-sysconfigdir-under-prefix.patch 03-ldap-libraries-check-order.patch 04-dos-extra-defs.patch) -sha256sums=('04a7c9d48b74c399168ee8270e548588ddbe52218c337703d7f06373d326ca30' +sha256sums=('10b55e49d78b3e49f1edb58d7541ecbdad92ddaeeb885b6f486ed23d1cd1da5c' 'SKIP' '592396d968353f991c879488b4b3e55a550873fa74703e08c7d28bb22241d8b9' 'a936d17a8dc60fb401db07d040e55e03ba382d5e38871d1b62f527b1aa458dc1' diff --git a/mingw-w64-gnuplot/01-gnuplot.patch b/mingw-w64-gnuplot/01-gnuplot.patch index e66e4e8aa6..297ce9eeac 100644 --- a/mingw-w64-gnuplot/01-gnuplot.patch +++ b/mingw-w64-gnuplot/01-gnuplot.patch @@ -1,177 +1,144 @@ -diff -Naur gnuplot-5.2.0.orig/config/mingw/Makefile gnuplot-5.2.0/config/mingw/Makefile ---- gnuplot-5.2.0.orig/config/mingw/Makefile 2017-07-31 04:02:24.000000000 +0200 -+++ gnuplot-5.2.0/config/mingw/Makefile 2017-09-10 18:36:11.300817700 +0200 -@@ -236,8 +236,8 @@ +diff --unified '--color=auto' -r gnuplot-5.4.0.orig/config/mingw/Makefile gnuplot-5.4.0/config/mingw/Makefile +--- gnuplot-5.4.0.orig/config/mingw/Makefile 2020-04-10 09:15:40.000000000 +0530 ++++ gnuplot-5.4.0/config/mingw/Makefile 2020-09-06 20:38:04.140186600 +0530 +@@ -784,19 +784,19 @@ + $(HELPFILE): $(BUILDHELPFILE) + $(CP) $^ $@ - ifndef TARGET - TARGET=wgnuplot.exe --#TARGET=wgnuplot_pipes.exe --#TARGET=gnuplot.exe -+TARGET=wgnuplot_pipes.exe -+TARGET=gnuplot.exe - endif - - # Set PIPES and CONSOLE according to the target -@@ -571,7 +571,7 @@ - $(MAKE) TARGET=gnuplot.exe gnuplot.pdf tutorial.pdf \ - ps_symbols.pdf ps_fontfile_doc.pdf ps_guide.pdf - --support: $(HELPFILE) $(M)bf_test.exe $(QT_TARGET) $(QT_TRANSLATION) demo_plugin.dll $(LUATARGETS) $(HELPFILEJA) -+support: $(QT_TARGET) $(QT_TRANSLATION) $(LUATARGETS) - - ja: $(HELPFILEJA) - -@@ -598,8 +598,8 @@ - $(CC) -c $(CFLAGS) $(CFLAGSEXTRA) -MMD -MT '$*.$$(O)' -MF $*.d -o $@ $< - - LDLIBS = -lkernel32 -lgdi32 -lwinspool -lcomdlg32 -lcomctl32 -ladvapi32 -lshell32 -lmsimg32 -lgdiplus -lshlwapi -ld2d1 -ldwrite -lole32 --LDLIBS += -lhtmlhelp --LDFLAGS2 += -L$(HHWPATH)lib -+#LDLIBS += -lhtmlhelp -+#LDFLAGS2 += -L$(HHWPATH)lib - ifdef MINGW64 - LDFLAGS2 += -L. - endif -@@ -717,24 +717,24 @@ - $(CC) $(CFLAGS) -I$(M)plugin -shared -o $@ $< - - # convert gnuplot.doc to windows/wgnuplot.html --$(BUILDHELPFILE): doc2html.exe $(D)gnuplot.doc $(D)windows/wgnuplot.hhp $(D)windows/wgnuplot.hhk \ -- $(D)windows/wgnuplot.stp $(D)plotstyles.gnu $(CORETERM) -- ./doc2html $(D)gnuplot.doc $(D)windows/ -- -./$(TARGET) -d -e "winhelp=1; cd '$(D)'" plotstyles.gnu -- -$(HHC) $(D)windows/wgnuplot.hhp -- --$(HELPFILE): $(BUILDHELPFILE) -- $(CP) $^ $@ -- --htmlhelp.lib: htmlhelp.def -- dlltool -d htmlhelp.def -l htmlhelp.lib -- --htmlhelp.def: +-htmlhelp.def: /c/Windows/System32/hhctrl.ocx -ifndef MINGW64 -- pexports c/Windows/System32/hhctrl.ocx > htmlhelp.def +- pexports $^ > $@ -else -- gendef - /c/Windows/System32/hhctrl.ocx > htmlhelp.def +- gendef - $^ > $@ -endif -+#$(BUILDHELPFILE): doc2html.exe $(D)gnuplot.doc $(D)windows/wgnuplot.hhp $(D)windows/wgnuplot.hhk \ -+# $(D)windows/wgnuplot.stp $(D)plotstyles.gnu $(CORETERM) -+# ./doc2html $(D)gnuplot.doc $(D)windows/ -+# -./$(TARGET) -d -e "winhelp=1; cd '$(D)'" plotstyles.gnu -+# -$(HHC) $(D)windows/wgnuplot.hhp -+# -+#$(HELPFILE): $(BUILDHELPFILE) -+# $(CP) $^ $@ -+# -+#htmlhelp.lib: htmlhelp.def -+# dlltool -d htmlhelp.def -l htmlhelp.lib -+ -+#htmlhelp.def: ++#htmlhelp.def: /c/Windows/System32/hhctrl.ocx +#ifndef MINGW64 -+# pexports c/Windows/System32/hhctrl.ocx > htmlhelp.def ++# pexports $^ > $@ +#else -+# gendef - /c/Windows/System32/hhctrl.ocx > htmlhelp.def ++# gendef - $^ > $@ ++#endif + +-prntvpt.def: /c/Windows/System32/prntvpt.dll +-ifndef MINGW64 +- pexports $^ > $@ +-else +- gendef - $^ > $@ +-endif ++#prntvpt.def: /c/Windows/System32/prntvpt.dll ++#ifndef MINGW64 ++# pexports $^ > $@ ++#else ++# gendef - $^ > $@ +#endif # Working directory for patched Japanese sources JA = ja/ -@@ -973,9 +973,9 @@ - cp -p wgnuplot_pipes.exe $(DESTDIR)/bin/ - cp -p $(W)/wgnuplot.mnu $(DESTDIR)/bin/ - cp -p $(W)/wgnuplot-ja.mnu $(DESTDIR)/bin/ -- cp -p $(HELPFILE) $(DESTDIR)/bin/ -+ #cp -p $(HELPFILE) $(DESTDIR)/bin/ - ifdef HELPFILEJA -- cp -p $(HELPFILEJA) $(DESTDIR)/bin/ -+ #cp -p $(HELPFILEJA) $(DESTDIR)/bin/ - endif - # configuration files - mkdir -p $(DESTDIR)/$(GNUPLOT_SHARE_DIR) -@@ -1037,12 +1037,12 @@ - cp -p $(TOP)/FAQ.pdf $(DESTDIR)/docs/ - -cp -p tutorial.pdf $(DESTDIR)/docs/ - mkdir -p $(DESTDIR)/docs/psdoc -- cp -p $(D)psdoc/ps_file.doc $(DESTDIR)/docs/psdoc/ps_file_doc.txt -- cp -p $(D)psdoc/ps_guide.ps $(DESTDIR)/docs/psdoc/ -- -cp -p ps_guide.pdf $(DESTDIR)/docs/psdoc/ -- -cp -p ps_symbols.ps $(DESTDIR)/docs/psdoc/ -- -cp -p ps_symbols.pdf $(DESTDIR)/docs/psdoc/ -- -cp -p ps_fontfile_doc.pdf $(DESTDIR)/docs/psdoc/ -+ #cp -p $(D)psdoc/ps_file.doc $(DESTDIR)/docs/psdoc/ps_file_doc.txt -+ #cp -p $(D)psdoc/ps_guide.ps $(DESTDIR)/docs/psdoc/ -+ #-cp -p ps_guide.pdf $(DESTDIR)/docs/psdoc/ -+ #-cp -p ps_symbols.ps $(DESTDIR)/docs/psdoc/ -+ #-cp -p ps_symbols.pdf $(DESTDIR)/docs/psdoc/ -+ #-cp -p ps_fontfile_doc.pdf $(DESTDIR)/docs/psdoc/ - # runtime libraries, configuration files etc. - ifdef EXTRADIST - cp -pR $(EXTRADIST)/* $(DESTDIR)/ -diff -Naur gnuplot-5.2.0.orig/src/command.c gnuplot-5.2.0/src/command.c ---- gnuplot-5.2.0.orig/src/command.c 2017-08-30 20:48:26.000000000 +0200 -+++ gnuplot-5.2.0/src/command.c 2017-09-10 18:33:08.422397000 +0200 -@@ -117,7 +117,7 @@ +diff --unified '--color=auto' -r gnuplot-5.4.0.orig/configure.ac gnuplot-5.4.0/configure.ac +--- gnuplot-5.4.0.orig/configure.ac 2020-07-12 05:59:47.000000000 +0530 ++++ gnuplot-5.4.0/configure.ac 2020-09-06 20:04:48.475405900 +0530 +@@ -37,6 +37,8 @@ + AC_C_STRINGIZE + AC_PROG_LN_S + ++AC_CANONICAL_HOST ++ + if test "${build}" != "${host}" + then + CC=${CC-${host_alias-gcc}} +@@ -50,6 +52,8 @@ + CC_FOR_BUILD="${CC}" + AC_PROG_CC + ++ build_mingw=no ++ + # We must set the default linker to the linker used by gcc for the correct + # operation of libtool. If LD is not defined and we are using gcc, try to + # set the LD default to the ld used by gcc. +@@ -59,7 +63,10 @@ + then + case $build in + *-*-mingw*) +- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; ++ gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ++ AC_MSG_NOTICE([MINGW environment detected, executing MINGW type build]) ++ #AC_CONFIG_LINKS([src/config.h:config/config.mgw]) ++ build_mingw=yes ;; + *) + gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; + esac +@@ -955,6 +962,8 @@ + + AM_CONDITIONAL(BUILD_GPCAIRO, test "${build_gpcairo}" = yes) + ++AM_CONDITIONAL(BUILD_MINGW, test "${build_mingw}" = yes) ++ + dnl Enable subsystem to generate statistical summary of file contents + AC_ARG_ENABLE(stats,dnl + [ --disable-stats Omit calculation of statistical summary of data], +diff --unified '--color=auto' -r gnuplot-5.4.0.orig/demo/plugin/Makefile.am gnuplot-5.4.0/demo/plugin/Makefile.am +--- gnuplot-5.4.0.orig/demo/plugin/Makefile.am 2017-12-22 23:02:30.000000000 +0530 ++++ gnuplot-5.4.0/demo/plugin/Makefile.am 2020-09-06 20:05:12.659453700 +0530 +@@ -4,7 +4,7 @@ + noinst_PROGRAMS = demo_plugin.so + + demo_plugin_so_SOURCES = demo_plugin.c gnuplot_plugin.h +-demo_plugin_so_CFLAGS = -rdynamic -fPIC -I$(top_srcdir)/src ++demo_plugin_so_CFLAGS = -fPIC -I$(top_srcdir)/src + demo_plugin_so_LDFLAGS = -shared + + # Note: Solaris SunPro C compiler needs these flags instead +diff --unified '--color=auto' -r gnuplot-5.4.0.orig/docs/Makefile.am gnuplot-5.4.0/docs/Makefile.am +--- gnuplot-5.4.0.orig/docs/Makefile.am 2020-04-10 22:24:28.000000000 +0530 ++++ gnuplot-5.4.0/docs/Makefile.am 2020-09-06 20:03:02.506859700 +0530 +@@ -50,6 +50,11 @@ + + AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/term + ++if BUILD_MINGW ++AM_CPPFLAGS += -DWINDOWS_NO_GUI ++dist_doc_DATA = gnuplot.pdf ++endif ++ + # Documentation will be prepared for all terminals in CORETERM + # even if the terminal itself is not included in the build. + +diff --unified '--color=auto' -r gnuplot-5.4.0.orig/Makefile.am gnuplot-5.4.0/Makefile.am +--- gnuplot-5.4.0.orig/Makefile.am 2020-03-31 22:58:16.000000000 +0530 ++++ gnuplot-5.4.0/Makefile.am 2020-09-06 20:01:49.907467200 +0530 +@@ -7,6 +7,8 @@ + PATCHLEVEL PGPKEYS README RELEASE_NOTES \ + configure.vms win + ++dist_doc_DATA = FAQ.pdf README RELEASE_NOTES Copyright NEWS BUGS ++ + DISTCLEANFILES = stamp-h + + ACLOCAL_AMFLAGS = -I m4 +diff --unified '--color=auto' -r gnuplot-5.4.0.orig/src/command.c gnuplot-5.4.0/src/command.c +--- gnuplot-5.4.0.orig/src/command.c 2020-06-11 03:03:34.000000000 +0530 ++++ gnuplot-5.4.0/src/command.c 2020-09-06 19:57:28.950915200 +0530 +@@ -112,7 +112,7 @@ + int thread_rl_RetCode = -1; /* return code from readline in a thread */ #endif /* OS2_IPC */ - --#ifndef _Windows -+#if !defined( _Windows) || defined(__MINGW32__) +-#ifndef _WIN32 ++#if !defined (_WIN32) || defined (__MINGW32__) # include "help.h" - #endif /* _Windows */ + #endif -@@ -129,7 +129,7 @@ - # else - # include - # endif /* !MSC */ --# include -+//# include - # include "win/winmain.h" - #endif /* _Windows */ - -@@ -2857,7 +2857,7 @@ +@@ -2839,7 +2839,7 @@ #ifdef NO_GIH --#if defined(_Windows) -+#if defined(_Windows) && !defined (__MINGW32__) +-#ifdef _WIN32 ++#if defined (_WIN32) && !defined (__MINGW32__) void help_command() { -diff -Naur gnuplot-5.2.0.orig/src/win/winmain.c gnuplot-5.2.0/src/win/winmain.c ---- gnuplot-5.2.0.orig/src/win/winmain.c 2017-07-30 18:44:02.000000000 +0200 -+++ gnuplot-5.2.0/src/win/winmain.c 2017-09-10 18:29:06.999408000 +0200 -@@ -56,7 +56,7 @@ - #include - #include - #include --#include -+//#include - #include - #include - #include -@@ -371,7 +371,8 @@ - else - lang = GetLanguageCode(); - -- filename = (LPTSTR) malloc((_tcslen(szModuleName) + _tcslen(name) + _tcslen(lang) + _tcslen(ext) + 1) * sizeof(TCHAR)); -+ //filename = (LPTSTR) malloc((_tcslen(szModuleName) + _tcslen(name) + _tcslen(lang) + _tcslen(ext) + 1) * sizeof(TCHAR)); -+ filename = (LPTSTR) malloc(1024 * sizeof(TCHAR)); - if (filename) { - _tcscpy(filename, szModuleName); - _tcscat(filename, name); ---- gnuplot-5.2.0.orig/src/term.c 2017-07-09 01:49:45.000000000 +0200 -+++ gnuplot-5.2.0/src/term.c 2017-09-22 06:30:56.438408900 +0200 -@@ -1582,7 +1582,7 @@ - - #if defined(WXWIDGETS) && defined(_WIN32) - if (term_name == (char *) NULL) -- term_name = "wxt"; -+ term_name = "win"; - #endif - - #ifdef QTTERM ---- gnuplot-5.2.0.orig/src/makefile.am.orig 2016-01-10 01:22:18.000000000 +0100 -+++ gnuplot-5.2.0/src/makefile.am 2017-09-22 00:25:36.299247900 +0200 -@@ -91,6 +91,26 @@ +diff --unified '--color=auto' -r gnuplot-5.4.0.orig/src/Makefile.am gnuplot-5.4.0/src/Makefile.am +--- gnuplot-5.4.0.orig/src/Makefile.am 2020-03-31 22:58:16.000000000 +0530 ++++ gnuplot-5.4.0/src/Makefile.am 2020-09-06 20:06:11.275225300 +0530 +@@ -93,6 +93,25 @@ # Hercules and original pc graphics driver code # corgraph.asm header.mac hrcgraph.asm pcgraph.asm lineproc.mac @@ -184,7 +151,6 @@ diff -Naur gnuplot-5.2.0.orig/src/win/winmain.c gnuplot-5.2.0/src/win/winmain.c +AM_CPPFLAGS += -D__USE_MINGW_ANSI_STDIO=1 +AM_CPPFLAGS += -DUSE_MOUSE=1 -DWIN_IPC + -+ +AM_LDFLAGS = + +gnuplot_SOURCES += win/winmain.c win/wgnuplib.c win/wgraph.c win/wprinter.c \ @@ -198,7 +164,7 @@ diff -Naur gnuplot-5.2.0.orig/src/win/winmain.c gnuplot-5.2.0/src/win/winmain.c if BUILD_WXWIDGETS gnuplot_SOURCES += wxterminal/wxt_gui.cpp endif -@@ -101,6 +121,43 @@ +@@ -103,6 +122,41 @@ if BUILD_BITMAP gnuplot_SOURCES += bitmap.c @@ -208,7 +174,6 @@ diff -Naur gnuplot-5.2.0.orig/src/win/winmain.c gnuplot-5.2.0/src/win/winmain.c + +menudir = $(prefix)/bin +menu_DATA = win/wgnuplot.mnu -+dist_doc_DATA = ../FAQ.pdf ../README ../RELEASE_NOTES ../Copyright ../NEWS ../ChangeLog ../BUGS + +wgnuplot_SOURCES = $(gnuplot_SOURCES) +wgnuplot_SOURCES += win/wtext.c win/screenbuf.c win/wmenu.c win/wredirect.cpp @@ -216,7 +181,6 @@ diff -Naur gnuplot-5.2.0.orig/src/win/winmain.c gnuplot-5.2.0/src/win/winmain.c +wgnuplot_LDADD = $(gnuplot_LDADD) wgplt_res.$(O) +wgnuplot_LDFLAGS = $(AM_LDFLAGS) -mwindows --enable-auto-import + -+ +#wgnuplot_pipes section +bin_PROGRAMS += wgnuplot_pipes + @@ -241,117 +205,17 @@ diff -Naur gnuplot-5.2.0.orig/src/win/winmain.c gnuplot-5.2.0/src/win/winmain.c + endif - DISTCLEANFILES = timestamp.h ---- gnuplot-5.2.0.orig/makefile.am 2017-06-05 00:03:34.000000000 +0200 -+++ gnuplot-5.2.0/makefile.am 2017-09-22 06:53:00.751133800 +0200 -@@ -7,6 +7,8 @@ - Makefile.maint PATCHLEVEL PGPKEYS README RELEASE_NOTES \ - VERSION configure.vms win + if DEVELOPMENT_VERSION +diff --unified '--color=auto' -r gnuplot-5.4.0.orig/src/win/winmain.c gnuplot-5.4.0/src/win/winmain.c +--- gnuplot-5.4.0.orig/src/win/winmain.c 2020-04-10 22:24:28.000000000 +0530 ++++ gnuplot-5.4.0/src/win/winmain.c 2020-09-06 19:58:17.437576400 +0530 +@@ -368,7 +368,8 @@ + else + lang = GetLanguageCode(); -+dist_doc_DATA = FAQ.pdf README RELEASE_NOTES Copyright NEWS ChangeLog BUGS -+ - DISTCLEANFILES = stamp-h - - ACLOCAL_AMFLAGS = -I m4 ---- gnuplot-5.2.0.orig/docs/makefile.am.orig 2017-07-06 01:01:27.000000000 +0200 -+++ gnuplot-5.2.0/docs/makefile.am 2017-09-22 07:01:56.461836100 +0200 -@@ -50,6 +50,12 @@ - - AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/term - -+if BUILD_MINGW -+AM_CPPFLAGS += -DWINDOWS_NO_GUI -+dist_doc_DATA = gnuplot.pdf -+endif -+ -+ - T = $(top_srcdir)/term/ - CORETERM = $(T)ai.trm $(T)aquaterm.trm $(T)be.trm $(T)caca.trm \ - $(T)cairo.trm $(T)canvas.trm $(T)cgm.trm $(T)context.trm \ -@@ -124,7 +130,8 @@ - done >$@ - - # for debugging --alldoc: check dvi gih hlp html info ipf nroff pdf ps rnh rtf htb -+#alldoc: check dvi gih hlp html info ipf nroff pdf ps rnh rtf htb -+alldoc: gih - - ### [tn]roff documentation - troff: gnuplot.ms $(srcdir)/titlepag.ms -@@ -223,6 +230,7 @@ - - doc2tex_SOURCES = doc2tex.c termdoc.c - doc2tex_CPPFLAGS = -DALL_TERM_DOC $(AM_CPPFLAGS) -+doc2tex_CFLAGS= -DWINDOWS_NO_GUI - - dvi: gnuplot.dvi - gnuplot.dvi: gnuplot.tex $(srcdir)/titlepag.tex $(srcdir)/toc_entr.sty -@@ -339,6 +347,7 @@ - $(AM_V_GEN) ./doc2ipf$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.ipf - - doc2ipf_SOURCES = doc2ipf.c termdoc.c xref.c -+doc2ipf_CFLAGS= -DWINDOWS_NO_GUI - - ### Rich Text Format - rtf: gnuplot.rtf -@@ -366,6 +375,8 @@ - fi - - checkdoc_SOURCES = checkdoc.c termdoc.c gnuplot.doc -+checkdoc_CFLAGS= -DWINDOWS_NO_GUI -+ - - clean-local: - $(AM_V_at)for f in figure*.pdf $(LUA_HELP); do \ ---- gnuplot-5.2.0.orig/configure.ac.orig 2017-09-03 05:43:58.000000000 +0200 -+++ gnuplot-5.2.0/configure.ac 2017-09-20 15:41:50.308502400 +0200 -@@ -36,6 +36,8 @@ - AC_C_STRINGIZE - AC_PROG_LN_S - -+AC_CANONICAL_HOST -+ - if test "${build}" != "${host}" - then - CC=${CC-${host_alias-gcc}} -@@ -49,6 +51,8 @@ - CC_FOR_BUILD="${CC}" - AC_PROG_CC - -+ build_mingw=no -+ - # We must set the default linker to the linker used by gcc for the correct - # operation of libtool. If LD is not defined and we are using gcc, try to - # set the LD default to the ld used by gcc. -@@ -58,7 +62,10 @@ - then - case $build in - *-*-mingw*) -- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; -+ gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` -+ AC_MSG_NOTICE([MINGW environment detected, executing MINGW type build]) -+ #AC_CONFIG_LINKS([src/config.h:config/config.mgw]) -+ build_mingw=yes ;; - *) - gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; - esac -@@ -1087,6 +1094,8 @@ - - AM_CONDITIONAL(BUILD_GPCAIRO, test "${build_gpcairo}" = yes) - -+AM_CONDITIONAL(BUILD_MINGW, test "${build_mingw}" = yes) -+ - dnl Enable subsystem to generate statistical summary of file contents - AC_ARG_ENABLE(stats,dnl - [ --disable-stats Omit calculation of statistical summary of data], ---- gnuplot-5.2.0.orig/demo/plugin/Makefile.am.orig 2016-06-22 22:58:42.000000000 +0200 -+++ gnuplot-5.2.0/demo/plugin/Makefile.am 2018-02-23 15:44:39.590296200 +0100 -@@ -4,8 +4,8 @@ - noinst_PROGRAMS = demo_plugin.so - - demo_plugin_so_SOURCES = demo_plugin.c gnuplot_plugin.h --demo_plugin_so_CFLAGS = -rdynamic -fPIC -I$(top_srcdir)/src -+demo_plugin_so_CFLAGS = -fPIC -I$(top_srcdir)/src - demo_plugin_so_LDFLAGS = -shared - - # Note: Solaris SunPro C compiler needs these flags instead +- filename = (LPTSTR) malloc((_tcslen(szModuleName) + _tcslen(name) + _tcslen(lang) + _tcslen(ext) + 1) * sizeof(TCHAR)); ++ //filename = (LPTSTR) malloc((_tcslen(szModuleName) + _tcslen(name) + _tcslen(lang) + _tcslen(ext) + 1) * sizeof(TCHAR)); ++ filename = (LPTSTR) malloc(1024 * sizeof(TCHAR)); + if (filename) { + _tcscpy(filename, szModuleName); + _tcscat(filename, name); diff --git a/mingw-w64-gnuplot/PKGBUILD b/mingw-w64-gnuplot/PKGBUILD index ce7f53a6d6..d255be4e74 100644 --- a/mingw-w64-gnuplot/PKGBUILD +++ b/mingw-w64-gnuplot/PKGBUILD @@ -6,7 +6,7 @@ _realname=gnuplot pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=5.2.8 +pkgver=5.4.0 pkgrel=1 pkgdesc="Plotting package which outputs to X11, PostScript, PNG, GIF, and others (mingw-w64)" arch=('any') @@ -25,14 +25,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-cairo" options=('strip' 'staticlibs') source=("https://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-${pkgver}.tar.gz" "01-gnuplot.patch" ) -sha256sums=('60a6764ccf404a1668c140f11cc1f699290ab70daa1151bb58fed6139a28ac37' - '4e87cf60cba733fd0f7144c886329b5f762902853fb48da042f3c11d980e2a69') +sha256sums=('eb4082f03a399fd1e9e2b380cf7a4f785e77023d8dcc7e17570c1b5570a49c47' + '9f32dd569400d986f4597a89ecb83021cebb4ce8a15256cab7a0d71581b05fa4') prepare() { cd "${srcdir}"/${_realname}-${pkgver} patch -p1 -i ${srcdir}/01-gnuplot.patch - autoreconf -fi + autoreconf -fiv } build() { diff --git a/mingw-w64-gnutls/0006-fix-ncrypt-bcrypt-linking.patch b/mingw-w64-gnutls/0006-fix-ncrypt-bcrypt-linking.patch deleted file mode 100644 index d19639aea4..0000000000 --- a/mingw-w64-gnutls/0006-fix-ncrypt-bcrypt-linking.patch +++ /dev/null @@ -1,94 +0,0 @@ -From b47e28afa5c0ee9a7fe1dff907f7eb99511b35c7 Mon Sep 17 00:00:00 2001 -From: Steve Lhomme -Date: Sat, 6 Jun 2020 14:05:16 +0200 -Subject: [PATCH] Merge the extra libraries to link dynamically in - GNUTLS_LIBS_PRIVATE - -This should fix #1020 where bcrypt is missing from thirdparty_libadd. - -Ultimately it would be good to add libraries that always need to be linked in -one variable that is shared between the Makefile and the pkg-config file. - -Signed-off-by: Steve Lhomme ---- - configure.ac | 12 ++++++------ - lib/Makefile.am | 2 +- - lib/gnutls.pc.in | 2 +- - 3 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/configure.ac b/configure.ac -index d59553b6a1..74278d5689 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -120,8 +120,7 @@ case "$host" in - *mingw32* | *mingw64*) - have_win=yes - AC_DEFINE([_UNICODE], [1], [Defined to 1 for Unicode (wide chars) APIs]) -- LIB_CRYPT32="-lcrypt32" -- AC_SUBST([LIB_CRYPT32]) -+ GNUTLS_LIBS_PRIVATE="${GNUTLS_LIBS_PRIVATE} -lcrypt32" - AC_PREPROC_IFELSE([AC_LANG_PROGRAM( - [[#include - #if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600 -@@ -135,9 +134,8 @@ case "$host" in - if test "x$enable_dyn_ncrypt" = "xyes"; then - AC_DEFINE([DYN_NCRYPT], 1, [Dynamic use of ncrypt API (win32)]) - else -- LIBNCRYPT="-lncrypt" -+ GNUTLS_LIBS_PRIVATE="${GNUTLS_LIBS_PRIVATE} -lncrypt" - fi -- AC_SUBST([LIBNCRYPT]) - ;; - *darwin*) - have_macosx=yes -@@ -601,11 +599,12 @@ fi - AM_CONDITIONAL(HAVE_LIBIDN2, test "$with_libidn2" != "no") - - if test "x$have_vista_dynamic" = "xno"; then -- AC_CHECK_TYPES([BCRYPT_ALG_HANDLE],[LIBBCRYPT="-lbcrypt"],[],[#include -+ AC_CHECK_TYPES([BCRYPT_ALG_HANDLE],[ -+ GNUTLS_LIBS_PRIVATE="${GNUTLS_LIBS_PRIVATE} -lbcrypt" -+ ],[],[#include - #include ]) - fi - AM_CONDITIONAL(HAVE_BCRYPT, test "$ac_cv_type_BCRYPT_ALG_HANDLE" = "yes") --AC_SUBST([LIBBCRYPT]) - - AC_ARG_ENABLE(non-suiteb-curves, - AS_HELP_STRING([--disable-non-suiteb-curves], [disable curves not in SuiteB]), -@@ -937,6 +936,7 @@ AC_CHECK_SIZEOF(time_t, 4) - # export for use in scripts - AC_SUBST(ac_cv_sizeof_time_t) - -+AC_SUBST(GNUTLS_LIBS_PRIVATE) - AC_SUBST(GNUTLS_REQUIRES_PRIVATE) - - -diff --git a/lib/Makefile.am b/lib/Makefile.am -index f55f298f7b..fa47ac5e62 100644 ---- a/lib/Makefile.am -+++ b/lib/Makefile.am -@@ -151,7 +151,7 @@ libgnutls_la_LIBADD = ../gl/libgnu.la x509/libgnutls_x509.la \ - auth/libgnutls_auth.la algorithms/libgnutls_alg.la \ - extras/libgnutls_extras.la - thirdparty_libadd = $(LTLIBZ) $(LTLIBINTL) $(LIBSOCKET) $(LTLIBNSL) \ -- $(P11_KIT_LIBS) $(LIB_SELECT) $(LIB_CRYPT32) -+ $(P11_KIT_LIBS) $(LIB_SELECT) $(GNUTLS_LIBS_PRIVATE) - - if HAVE_LIBIDN2 - thirdparty_libadd += $(LIBIDN2_LIBS) -diff --git a/lib/gnutls.pc.in b/lib/gnutls.pc.in -index 0ed41e2ddd..7cdedda5d7 100644 ---- a/lib/gnutls.pc.in -+++ b/lib/gnutls.pc.in -@@ -19,6 +19,6 @@ Description: Transport Security Layer implementation for the GNU system - URL: https://www.gnutls.org/ - Version: @VERSION@ - Libs: -L${libdir} -lgnutls --Libs.private: @LIBINTL@ @LIBSOCKET@ @INET_PTON_LIB@ @LIBPTHREAD@ @LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@ @LIBUNISTRING@ @LIBATOMIC_LIBS@ @LIB_CRYPT32@ @LIBNCRYPT@ @LIBBCRYPT@ -+Libs.private: @LIBINTL@ @LIBSOCKET@ @INET_PTON_LIB@ @LIBPTHREAD@ @LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@ @LIBUNISTRING@ @LIBATOMIC_LIBS@ @GNUTLS_LIBS_PRIVATE@ - @GNUTLS_REQUIRES_PRIVATE@ - Cflags: -I${includedir} --- -2.26.2 - diff --git a/mingw-w64-gnutls/PKGBUILD b/mingw-w64-gnutls/PKGBUILD index 3fdb94ef29..dc9bd65892 100644 --- a/mingw-w64-gnutls/PKGBUILD +++ b/mingw-w64-gnutls/PKGBUILD @@ -3,7 +3,7 @@ _realname=gnutls pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_pkgver=3.6.14 +_pkgver=3.6.15 pkgver=${_pkgver} pkgrel=1 pkgdesc="A library which provides a secure layer over a reliable transport layer (mingw-w64)" @@ -28,15 +28,13 @@ source=(https://www.gnupg.org/ftp/gcrypt/gnutls/v${_pkgver%.*}/${_realname}-${pk 0001-add-missing-define.patch 0003-gnutls-fix-external-libtasn1-detection.patch 0004-disable-broken-examples.patch - 0005-remove-coverage-rules.patch - 0006-fix-ncrypt-bcrypt-linking.patch) -sha256sums=('5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63' + 0005-remove-coverage-rules.patch) +sha256sums=('0ea8c3283de8d8335d7ae338ef27c53a916f15f382753b174c18b45ffd481558' 'SKIP' 'fe1d9df924f72ec82972df328467591e49fe82feacebaf2605d37cc059c5429e' '6493f69e782d60fe04de4b0040987e99851c522d0baf2fe25d10b85b63e97863' 'cbf9e59fb2432d4ac1edcb70734023e074b8058fa4c010a036a40de8449f67fb' - '10ea5a84459af8d848788cc8871decd3b3cdd542b829883ebe4f6ec28d60578f' - '33498061ad943439a9a372d77d6e7aa6c618a3f61f766e9931960bfa07188a20') + '10ea5a84459af8d848788cc8871decd3b3cdd542b829883ebe4f6ec28d60578f') validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') # "Simon Josefsson " validpgpkeys+=('1F42418905D8206AA754CCDC29EE58B996865171') # "Nikos Mavrogiannopoulos validpgpkeys+=('462225C3B46F34879FC8496CD605848ED7E69871') # "Daiki Ueno " @@ -47,8 +45,6 @@ prepare() { patch -p1 -i ${srcdir}/0003-gnutls-fix-external-libtasn1-detection.patch patch -p1 -i ${srcdir}/0004-disable-broken-examples.patch patch -p1 -i ${srcdir}/0005-remove-coverage-rules.patch - # https://gitlab.com/gnutls/gnutls/-/merge_requests/1280 - patch -p1 -i ${srcdir}/0006-fix-ncrypt-bcrypt-linking.patch WANT_AUTOMAKE=latest autoreconf -fiv -I m4 } diff --git a/mingw-w64-gpgme/0008-no-py2.patch b/mingw-w64-gpgme/0008-no-py2.patch index 049b05b1a0..0bc7b0ad42 100644 --- a/mingw-w64-gpgme/0008-no-py2.patch +++ b/mingw-w64-gpgme/0008-no-py2.patch @@ -1,11 +1,11 @@ ---- gpgme-1.13.1/configure.ac.orig 2019-12-10 09:13:40.267700900 +0100 -+++ gpgme-1.13.1/configure.ac 2019-12-10 09:20:25.726331800 +0100 -@@ -423,7 +423,7 @@ +--- gpgme-1.14.0/configure.ac.orig 2020-09-05 15:02:43.720753300 +0200 ++++ gpgme-1.14.0/configure.ac 2020-09-05 15:03:38.558261200 +0200 +@@ -425,7 +425,7 @@ if test "$found_py" = "1" -o "$found_py3" = "1"; then # Reset everything, so that we can look for another Python. m4_foreach([mym4pythonver], -- [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[all]], -+ [[3.4],[3.5],[3.6],[3.7],[3.8],[all]], +- [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[all]], ++ [[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[all]], [unset PYTHON unset PYTHON_VERSION unset PYTHON_CPPFLAGS diff --git a/mingw-w64-gpgme/PKGBUILD b/mingw-w64-gpgme/PKGBUILD index d0367c4755..49e4b90b5c 100644 --- a/mingw-w64-gpgme/PKGBUILD +++ b/mingw-w64-gpgme/PKGBUILD @@ -5,8 +5,8 @@ _realname=gpgme pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.13.1 -pkgrel=4 +pkgver=1.14.0 +pkgrel=1 pkgdesc="A C wrapper library for GnuPG (mingw-w64)" arch=('any') url="https://gnupg.org/related_software/gpgme/" @@ -35,13 +35,13 @@ validpgpkeys=('D8692123C4065DEA5E0F3AB5249B39D24F25E3B6' '46CC730865BB5C78EBABADCF04376F3EE0856959' '031EC2536E580D8EA286A9F22071B08A33BD3F06' 'D238EA65D64C67ED4C3073F28A861B1C7EFD60D9') -sha256sums=('c4e30b227682374c23cddc7fdb9324a99694d907e79242a25a4deeedb393be46' +sha256sums=('cef1f710a6b0d28f5b44242713ad373702d1466dcbe512eb4e754d7f35cd4307' 'SKIP' '71763a209761afe6495d3d85e25bbe6ba76348450d426f8a2618a34a264e058a' '2389cc237bf860b961bf3519377e83f7678e657dcf28c33510cd155f80516d42' 'b56fe3e3da872ca84d08b4aa426e6f71b3227e2a253bc45bf6023abf1288ecc9' '393c89dfc707a4982ab297196b00b5b7e1b8af7ee5bfc02846800c5ca3608891' - '923a972c161f93f9d19f13314edff23a141600cf71a1b574f87000e0e8aa8a3c' + 'd421cd1a4cdd7a011954c60cbc80e68b42b7fd014f1685aabd33217f3bd23de3' '32465eb5f99015d06a0b89c30c69a7c4208ab32c287275b729cf9bec08c4474c' '0a98bbfeff6643aa7195b3f5c87feab9ea8b329adfb65c2339e72f4fbb98523c' 'd09070c005b72e8aed14a848553f7c7289353ff7f32e62c9013a729ba46d7117') diff --git a/mingw-w64-gr/PKGBUILD b/mingw-w64-gr/PKGBUILD index ffa66a180e..6bdccce0da 100644 --- a/mingw-w64-gr/PKGBUILD +++ b/mingw-w64-gr/PKGBUILD @@ -3,7 +3,7 @@ _realname=gr pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.51.2 +pkgver=0.52.0 pkgrel=1 pkgdesc="A graphics library for visualisation applications (mingw-w64)" arch=("any") @@ -26,7 +26,7 @@ makedepends=("git" options=("staticlibs" "strip" "!buildflags") source=("${_realname}-${pkgver}.tar.gz::https://github.com/sciapp/gr/archive/v${pkgver}.tar.gz") noextract=("${_realname}-${pkgver}.tar.gz") -sha256sums=("E6A3D0ED911F6E59CC2293B5694EE18A0620849E666143870A9EDA71C02BB833") +sha256sums=("8C9149377BFD3FE61B05CDA34B980F894F1A723D7C74C4ACE5DA2E31D3630870") prepare() { # We can't use bsdtar to extract the archive because the archive includes diff --git a/mingw-w64-groonga/PKGBUILD b/mingw-w64-groonga/PKGBUILD index e379d21ed3..bade9b687f 100644 --- a/mingw-w64-groonga/PKGBUILD +++ b/mingw-w64-groonga/PKGBUILD @@ -3,14 +3,14 @@ _realname=groonga pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=10.0.5 +pkgver=10.0.6 pkgrel=1 pkgdesc="An opensource fulltext search engine (mingw-w64)" arch=('any') url="http://groonga.org/" license=('LGPL2') options=('strip' 'staticlibs') -source=("https://packages.groonga.org/source/${_realname}/${_realname}-${pkgver}.tar.gz") +source=(https://packages.groonga.org/source/${_realname}/${_realname}-${pkgver}.tar.gz{,.asc}) depends=("${MINGW_PACKAGE_PREFIX}-arrow" #"${MINGW_PACKAGE_PREFIX}-libevent" "${MINGW_PACKAGE_PREFIX}-luajit" @@ -26,7 +26,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-arrow" "${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-zstd") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -sha256sums=('e0d60ecbf441f86fe8a7e2448ec2e5b1e0a9f26405a71258abb2940d69c53213') +sha256sums=('6932252fe5d13cf6651600c9e4f1b0ed14836cc7d9ee87e091f698c4a4e97de0' + 'SKIP') +validpgpkeys=('2701F317CFCCCB975CADE9C2624CF77434839225') # Groonga Key build() { [[ -d ${srcdir}/build-${CARCH} ]] && rm -rf ${srcdir}/build-${CARCH} diff --git a/mingw-w64-gtk3/0005-fix-build.patch b/mingw-w64-gtk3/0005-fix-build.patch deleted file mode 100644 index a612e3f706..0000000000 --- a/mingw-w64-gtk3/0005-fix-build.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- gtk+-3.24.20/meson.build.orig 2020-04-27 16:35:59.000000000 +0200 -+++ gtk+-3.24.20/meson.build 2020-05-16 18:19:45.010944100 +0200 -@@ -987,16 +987,6 @@ - install_dir : join_paths(gtk_datadir, 'gtk-3.0', 'valgrind')) - endif - --test( -- 'version-check', -- find_program('check-version.py'), -- args: [ -- join_paths(meson.current_source_dir(), 'configure.ac'), -- join_paths(meson.current_source_dir(), 'meson.build'), -- ], -- suite: 'gtk', --) -- - summary = [ - '', - '------', diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index d213f75907..b3ddc71c07 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -3,8 +3,8 @@ _realname=gtk3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.24.20 -pkgrel=3 +pkgver=3.24.23 +pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') url="https://www.gtk.org/" @@ -31,16 +31,14 @@ source=("https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar "0002-Revert-Quartz-Set-the-popup-menu-type-hint-before-re.patch" "0003-gtkwindow-Don-t-force-enable-CSD-under-Windows.patch" "0004-Disable-low-level-keyboard-hook.patch" - "0005-fix-build.patch" "0006_fix_mouse_events.patch" "gtk-query-immodules-3.0.hook.in" "gtk-update-icon-cache.hook.in" "gtk-update-icon-cache.script.in") -sha256sums=('2dac69f716e8d04ba7a95091589e2baaec95dcace932cb15839163db479b1df3' +sha256sums=('5d864d248357a2251545b3387b35942de5f66e4c66013f0962eb5cb6f8dae2b1' '5cdebb11098d241da955d4662904215275fa7a54d52877cc38c4ff4a3087fafd' 'b84a7f38f0af80680bee143d431f2a7bae53899efb337de0f67a1b4d9b59fa02' 'e553083298495f9581ae1454b1046a22b83e81862311b30de984057eec859708' - '233a1238913034a538b6ab495d06f2f2045fc72b749e337d99b932f7eaddec42' 'ae048aa0674124217e26e7a3041e2aa34cea89b1e36534c97448d841687a035d' 'adbe57eb726d882bba7a031ab8fb1788e7cd03cbf713823fd0f99d3cb380b97c' '56a566739c4f153f3c924b2bfe5ec7aaca469e15c023810cd7c5f57036d1a258' @@ -57,8 +55,6 @@ prepare() { patch -p1 -i "${srcdir}"/0004-Disable-low-level-keyboard-hook.patch - patch -p1 -i "${srcdir}"/0005-fix-build.patch - patch -p1 -i "${srcdir}"/0006_fix_mouse_events.patch } diff --git a/mingw-w64-gtk4/0001-imcontextime-Add-missing-semicolon.patch b/mingw-w64-gtk4/0001-imcontextime-Add-missing-semicolon.patch deleted file mode 100644 index ba3f1ba556..0000000000 --- a/mingw-w64-gtk4/0001-imcontextime-Add-missing-semicolon.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ca2bffc06024d12b65995900f2b61de09051bd8e Mon Sep 17 00:00:00 2001 -From: Benjamin Otte -Date: Tue, 21 May 2019 07:18:50 +0200 -Subject: [PATCH] imcontextime: Add missing semicolon - -I wonder how thoroughly this was tested... ;) ---- - gtk/gtkimcontextime.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gtk/gtkimcontextime.c b/gtk/gtkimcontextime.c -index ab972c90e6..1814e7b30b 100644 ---- a/gtk/gtkimcontextime.c -+++ b/gtk/gtkimcontextime.c -@@ -879,7 +879,7 @@ gtk_im_context_ime_set_preedit_font (GtkIMContext *context) - - widget = gtk_root_get_for_surface (context_ime->client_surface); - if (!widget) -- return -+ return; - - hwnd = gdk_win32_surface_get_impl_hwnd (context_ime->client_surface); - himc = ImmGetContext (hwnd); --- -2.23.0.windows.1 - diff --git a/mingw-w64-gtk4/PKGBUILD b/mingw-w64-gtk4/PKGBUILD index 47025de44d..b207487ba9 100644 --- a/mingw-w64-gtk4/PKGBUILD +++ b/mingw-w64-gtk4/PKGBUILD @@ -3,7 +3,7 @@ _realname=gtk4 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=3.96.0 +pkgver=3.99.0 pkgrel=1 pkgdesc="GObject-based multi-platform GUI toolkit (v4) (mingw-w64)" arch=('any') @@ -13,6 +13,7 @@ install=gtk4-${CARCH}.install makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-gobject-introspection" + "${MINGW_PACKAGE_PREFIX}-sassc" "${MINGW_PACKAGE_PREFIX}-meson") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme" @@ -27,14 +28,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gst-plugins-bad" "${MINGW_PACKAGE_PREFIX}-shared-mime-info") options=('!strip' '!debug') -source=("https://gitlab.gnome.org/GNOME/gtk/-/archive/${pkgver}/gtk-${pkgver}.tar.gz" - "0001-imcontextime-Add-missing-semicolon.patch") -sha512sums=('d16d36725a82fe06bdd6b7346348fae0e709351f46337a5e8c0cffce3ea69fa79d449def4dfe53167d2363e959ee6b33d122415e3f443135f5ed79d037071a7f' - 'eafa6ebe1153ff56b8e870461e2173adbebf572cc9fbb8c1b7926c9064c8741549d87b92ebae98158ff4170970aed1edddbad5d14c0c5bee92a520f3e5ee7ce2') +source=("https://gitlab.gnome.org/GNOME/gtk/-/archive/${pkgver}/gtk-${pkgver}.tar.gz") +sha512sums=('aca7b54688fefdec08efee7e1aca8f85297504c519fbbcb249546c130c364c740c6e01400f3549ee9dea5452c9b37872ab3902fce695dd00ba846b6e9c66df2a') prepare() { cd "${srcdir}/gtk-${pkgver}" - patch -p1 -i "${srcdir}"/0001-imcontextime-Add-missing-semicolon.patch + } build() { @@ -42,6 +41,7 @@ build() { mkdir "${srcdir}/build-${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}" + # FIXME: introspection requires a newer g-i CFLAGS+=" -DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS" meson \ --buildtype=plain \ @@ -49,6 +49,7 @@ build() { -Dbuild-tests=false \ -Dman-pages=true \ -Dvulkan=no \ + -Dintrospection=false \ ../gtk-${pkgver} ninja diff --git a/mingw-w64-harfbuzz/PKGBUILD b/mingw-w64-harfbuzz/PKGBUILD index b2414621dd..cc14097f68 100644 --- a/mingw-w64-harfbuzz/PKGBUILD +++ b/mingw-w64-harfbuzz/PKGBUILD @@ -4,7 +4,7 @@ _realname=harfbuzz pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.7.1 +pkgver=2.7.2 pkgrel=1 pkgdesc="OpenType text shaping engine (mingw-w64)" arch=('any') @@ -29,7 +29,7 @@ options=('strip' 'staticlibs') optdepends=("${MINGW_PACKAGE_PREFIX}-icu: harfbuzz-icu support" "${MINGW_PACKAGE_PREFIX}-cairo: hb-view program") source=("https://github.com/harfbuzz/harfbuzz/archive/${pkgver}.tar.gz") -sha256sums=('431c856ff18eeca89b2a36b58f2c2d56273cd522c34c0ffbc9dd6f7da4b9bd08') +sha256sums=('8ec112ee108642477478b75fc7906422abed404d7530e47ba0a4875f553f1b59') noextract=("${pkgver}.tar.gz") prepare() { diff --git a/mingw-w64-helics/PKGBUILD b/mingw-w64-helics/PKGBUILD index 17c3f6f82f..ae51e6756b 100644 --- a/mingw-w64-helics/PKGBUILD +++ b/mingw-w64-helics/PKGBUILD @@ -3,7 +3,7 @@ _realname=helics pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.5.2 +pkgver=2.6.0 pkgrel=1 pkgdesc="Hierarchical Engine for Large-scale Infrastructure Co-Simulation (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-boost") options=('!staticlibs' '!strip') source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/GMLC-TDC/HELICS/releases/download/v${pkgver}/HELICS-v${pkgver}-source.tar.gz") -sha256sums=('81928f7e30233a07ae2bfe6c5489fdd958364c0549b2a3e6fdc6163d4b390311') +sha256sums=('450cbfc0c37b77ea051d3edc12bbc0f7cf4c1a17091ae10df5214b6176eebb42') #prepare() { # mkdir -p test diff --git a/mingw-w64-hwloc/PKGBUILD b/mingw-w64-hwloc/PKGBUILD new file mode 100644 index 0000000000..37b2dee107 --- /dev/null +++ b/mingw-w64-hwloc/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: Levente Polyak +# Contributor: Stéphane Gaudreault +# Contributor: Sylvain HENRY +# Contributor: Hervé YVIQUEL + +_realname=hwloc +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.2.0 +pkgrel=1 +pkgdesc='Portable Hardware Locality is a portable abstraction of hierarchical architectures' +arch=('any') +depends=("${MINGW_PACKAGE_PREFIX}-libtool") +makedepends=("${MINGW_PACKAGE_PREFIX}-cairo" "${MINGW_PACKAGE_PREFIX}-libxml2") +optdepends=("${MINGW_PACKAGE_PREFIX}-cairo" "${MINGW_PACKAGE_PREFIX}-libxml2") +options=('!docs') +license=('BSD') +url='https://www.open-mpi.org/projects/hwloc/' +source=(https://www.open-mpi.org/software/hwloc/v${pkgver%.*}/downloads/${_realname}-${pkgver}.tar.bz2) +sha512sums=('23efd1d5e2df870ca7a0abb9b3c28c5c5d60dd0cc650ee95d20d5934f48947cbe1d3cf4e90e02b2dc61062ddf7afd67f2c1cf6e1862a48397078d66dd798e850') +b2sums=('00e10f9c7467e6342e14a45d583ed307103428085a9b88398464f0439fec48647949aa80e099042b915b2c371fe105d61e8490d0555383d94740f3e6dab5aeee') + +# =========================================== # + +prepare() { + cd hwloc-${pkgver} + autoreconf -fiv +} + +build() { + cd hwloc-${pkgver} + ./configure \ + --prefix=${MINGW_PREFIX} \ + --sbindir=${MINGW_PREFIX}/bin \ + --sysconfdir=${MINGW_PREFIX}/etc \ + --enable-static \ + --enable-plugins \ + + make +} + +check() { + cd hwloc-${pkgver} + make check-am +} + +package() { + cd hwloc-${pkgver} + make install DESTDIR="${pkgdir}" + install -Dm 644 COPYING -t ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE +} + +# vim: ts=2 sw=2 et: diff --git a/mingw-w64-imagemagick/PKGBUILD b/mingw-w64-imagemagick/PKGBUILD index b487c02b86..e9846aa81b 100644 --- a/mingw-w64-imagemagick/PKGBUILD +++ b/mingw-w64-imagemagick/PKGBUILD @@ -6,7 +6,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _basever=7.0.10 _rc=-11 pkgver=${_basever}${_rc//-/.} # pkgver doesn't have "," "/", "-" and space. -pkgrel=2 +pkgrel=3 pkgdesc="An image viewing/manipulation program (mingw-w64)" arch=('any') url="https://www.imagemagick.org/" @@ -58,12 +58,11 @@ optdepends=("${MINGW_PACKAGE_PREFIX}-ghostscript: for Ghostscript support" #"${MINGW_PACKAGE_PREFIX}-libwebp: for WEBP support" ) options=('staticlibs' 'strip' '!debug' 'libtool') -source=(https://imagemagick.org/download/releases/ImageMagick-${_basever}${_rc}.tar.xz{,.asc} +source=(https://imagemagick.org/download/releases/ImageMagick-${_basever}${_rc}.tar.xz ImageMagick-7.0.1.3-mingw.patch 001-7.0.4.1-relocate.patch 002-7.0.4.1-build-fixes.patch) sha256sums=('a06d686bbad1eae663b2571bd7bb45f0e1ba438ed2217863d2e79ab394c5dfbd' - 'SKIP' '313e781918c66a2acfdbd99fab3de2fd680c34efdaaab18318d7543d4c79bb3e' '28c54cd97706e14e631f5dd4d67b79c1680be6eacaf94c15b0f5acd8159b64b0' '5ad829d563aed15e6d829f81ea0fa91053108d428449e91c733c5acae5a341b3') diff --git a/mingw-w64-leptonica/PKGBUILD b/mingw-w64-leptonica/PKGBUILD index 1db61fe2ba..f3927253e3 100644 --- a/mingw-w64-leptonica/PKGBUILD +++ b/mingw-w64-leptonica/PKGBUILD @@ -3,8 +3,8 @@ _realname=leptonica pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.79.0 -pkgrel=2 +pkgver=1.80.0 +pkgrel=1 pkgdesc="Leptonica library (mingw-w64)" arch=('any') url="http://www.leptonica.org" @@ -20,7 +20,7 @@ depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs ${MINGW_PACKAGE_PREFIX}-zlib) options=('!libtool' 'strip') source=(https://github.com/DanBloomberg/leptonica/releases/download/${pkgver}/${_realname}-${pkgver}.tar.gz) -sha256sums=('045966c9c5d60ebded314a9931007a56d9d2f7a6ac39cb5cc077c816f62300d8') +sha256sums=('ec9c46c2aefbb960fb6a6b7f800fe39de48343437b6ce08e30a8d9688ed14ba4') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -30,7 +30,7 @@ build() { [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}" mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}" CFLAGS+=" -DMINIMUM_SEVERITY=L_SEVERITY_WARNING" - ../${_realname}-${pkgver}/configure \ + ../${_realname}-${pkgver}/configure -C \ --disable-dependency-tracking \ --disable-silent-rules \ --build=${MINGW_CHOST} \ diff --git a/mingw-w64-lfcbase/PKGBUILD b/mingw-w64-lfcbase/PKGBUILD index 1cd68a335e..cb421e1038 100644 --- a/mingw-w64-lfcbase/PKGBUILD +++ b/mingw-w64-lfcbase/PKGBUILD @@ -3,7 +3,7 @@ _realname=lfcbase pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.14.1 +pkgver=1.14.4 pkgrel=1 pkgdesc="LFC C++ base classes (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") -sha256sums=("06321574285d390075ce661173331fda46743bb1d30f251fe67cc185a0f109b8") +sha256sums=("d1460853696711297ae530263de33d22af310b3f6617c7a60989993f4a1a7123") prepare() { # for mingw build, we have to patch the tap-driver to filter out windows carrige returns from the test program output diff --git a/mingw-w64-lfcxml/PKGBUILD b/mingw-w64-lfcxml/PKGBUILD index 2ccde3683b..31c01f5559 100644 --- a/mingw-w64-lfcxml/PKGBUILD +++ b/mingw-w64-lfcxml/PKGBUILD @@ -3,7 +3,7 @@ _realname=lfcxml pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.2.10 +pkgver=1.2.11 pkgrel=1 pkgdesc="LFC C++ xml classes (mingw-w64)" arch=('any') @@ -14,7 +14,7 @@ source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz") depends=("${MINGW_PACKAGE_PREFIX}-lfcbase") -sha256sums=("11cb6e26c866ebd3d3c6527b2bba79d2e2d1f63f57ec606a0a8d503f98817aab") +sha256sums=("073f0095e1df2f74f5a986e78aa86ed754a54e695126e47fd267ed6d4913a788") prepare() { cd $srcdir/${_realname}-${pkgver} diff --git a/mingw-w64-libavif/003-fix-pixbuf-crash.patch b/mingw-w64-libavif/003-fix-pixbuf-crash.patch deleted file mode 100644 index 22c180b925..0000000000 --- a/mingw-w64-libavif/003-fix-pixbuf-crash.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 9759bc7346802faa8ec96bb38456d8b8170580aa Mon Sep 17 00:00:00 2001 -From: Emmanuel Gil Peyrot -Date: Fri, 17 Jul 2020 21:41:48 +0200 -Subject: [PATCH] Fix a crash in the gdk-pixbuf loader when error is NULL - ---- - contrib/gdk-pixbuf/loader.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/contrib/gdk-pixbuf/loader.c b/contrib/gdk-pixbuf/loader.c -index b197b20..24a25a1 100644 ---- a/contrib/gdk-pixbuf/loader.c -+++ b/contrib/gdk-pixbuf/loader.c -@@ -182,7 +182,8 @@ static gboolean load_increment(gpointer data, const guchar * buf, guint size, GE - { - struct avif_context * context = (struct avif_context *) data; - g_byte_array_append(context->data, buf, size); -- *error = NULL; -+ if (error) -+ *error = NULL; - return TRUE; - } - diff --git a/mingw-w64-libavif/004-gdk-pixbuf-loader.c-Include-stdlib.h-for-strtol.patch b/mingw-w64-libavif/004-gdk-pixbuf-loader.c-Include-stdlib.h-for-strtol.patch new file mode 100644 index 0000000000..7b3b349a2f --- /dev/null +++ b/mingw-w64-libavif/004-gdk-pixbuf-loader.c-Include-stdlib.h-for-strtol.patch @@ -0,0 +1,24 @@ +From 117246d5faa5bc3c4c217bf548c2727e07e9ff9b Mon Sep 17 00:00:00 2001 +From: Biswapriyo Nath +Date: Sat, 29 Aug 2020 19:17:45 +0530 +Subject: [PATCH] gdk-pixbuf/loader.c: Include stdlib.h for strtol + +--- + contrib/gdk-pixbuf/loader.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/contrib/gdk-pixbuf/loader.c b/contrib/gdk-pixbuf/loader.c +index af0e775..6531ec0 100644 +--- a/contrib/gdk-pixbuf/loader.c ++++ b/contrib/gdk-pixbuf/loader.c +@@ -3,6 +3,7 @@ + */ + + #include ++#include + + #define GDK_PIXBUF_ENABLE_BACKEND + #include +-- +2.27.0 + diff --git a/mingw-w64-libavif/PKGBUILD b/mingw-w64-libavif/PKGBUILD index 0623fbcce0..1ddc6ce5ea 100644 --- a/mingw-w64-libavif/PKGBUILD +++ b/mingw-w64-libavif/PKGBUILD @@ -3,26 +3,29 @@ _realname=libavif pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.8.0 -pkgrel=2 +pkgver=0.8.1 +pkgrel=1 pkgdesc="Library for encoding and decoding .avif files (mingw-w64)" arch=('any') url="https://github.com/AOMediaCodec/libavif" license=('BSD') depends=("${MINGW_PACKAGE_PREFIX}-aom" "${MINGW_PACKAGE_PREFIX}-dav1d" + "${MINGW_PACKAGE_PREFIX}-rav1e" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" - "${MINGW_PACKAGE_PREFIX}-libpng") + "${MINGW_PACKAGE_PREFIX}-libpng" + "${MINGW_PACKAGE_PREFIX}-zlib") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2" - "${MINGW_PACKAGE_PREFIX}-nasm") + "${MINGW_PACKAGE_PREFIX}-nasm" + "${MINGW_PACKAGE_PREFIX}-pkg-config") source=("${_realname}-${pkgver}.tar.gz::https://github.com/AOMediaCodec/libavif/archive/v${pkgver}.tar.gz" 002-pixbuf-install-repfix.patch - 003-fix-pixbuf-crash.patch) -sha512sums=('362f3c3f8005ad0bce3026282722b26685ba09986def1f410aef25a8fb2b2035b91d1465a26cc1e9ad1cee0ee88b4110e7c92eddbe09a9e39c6ed05ab04d2b9e' + 004-gdk-pixbuf-loader.c-Include-stdlib.h-for-strtol.patch) +sha512sums=('03692fbba49fde08d76cebb847d0404a81113824e9e65edc6a0977f323d060c394d111e2a7647788fa3115f3ae80b0fc92d4fe5be53852e6734b96a8f1c1a078' '60f8bad03460695a094a6ffabbe33f839239fef2bae99d9be7f3a3f9cfde14b694d0c68dce6cc987e9c865a0d97638e951d55abcbab4cc554719803e5d0bb2d2' - 'fe973d8eff01ba7bdb255b16f44a1713be678c37d017b0f6c8d707c451e5c93d20e3782ca9e2f95f99453c2eec9da4d6bd9bea190b076de0ac268e57459108d1') + '2ead0fe4f51dd66d40cc8a64e874073e6cca8ef1c9f35a7994fb14cce52e7253c8d176e3ca221eebcf4e1acc277d29d0bf8fa155f794d0a369738a7d85e69462') prepare() { cd ${_realname}-${pkgver} @@ -30,8 +33,8 @@ prepare() { # https://gitlab.kitware.com/cmake/cmake/-/issues/19632 patch -p1 -i ${srcdir}/002-pixbuf-install-repfix.patch - # https://github.com/AOMediaCodec/libavif/pull/236 - patch -p1 -i ${srcdir}/003-fix-pixbuf-crash.patch + # https://github.com/AOMediaCodec/libavif/pull/295 + patch -p1 -i ${srcdir}/004-gdk-pixbuf-loader.c-Include-stdlib.h-for-strtol.patch } build() { @@ -46,20 +49,22 @@ build() { -DAVIF_BUILD_APPS=ON \ -DAVIF_CODEC_AOM=ON \ -DAVIF_CODEC_DAV1D=ON \ + -DAVIF_CODEC_RAV1E=ON \ -DAVIF_BUILD_GDK_PIXBUF=ON \ + -DAVIF_BUILD_TESTS=ON \ ../${_realname}-${pkgver} - ${MINGW_PREFIX}/bin/cmake --build . + ${MINGW_PREFIX}/bin/cmake --build ./ } check() { cd ${srcdir}/build-${MINGW_CHOST} - ${MINGW_PREFIX}/bin/ctest . + ${MINGW_PREFIX}/bin/ctest ./ || true } package() { cd ${srcdir}/build-${MINGW_CHOST} - DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build . --target install + DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build ./ --target install install -Dm644 ${srcdir}/${_realname}-${pkgver}/README.md ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/README.md install -Dm644 ${srcdir}/${_realname}-${pkgver}/LICENSE ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE diff --git a/mingw-w64-libfreexl/PKGBUILD b/mingw-w64-libfreexl/PKGBUILD index 33d65839eb..17cd8ca6e8 100644 --- a/mingw-w64-libfreexl/PKGBUILD +++ b/mingw-w64-libfreexl/PKGBUILD @@ -6,7 +6,7 @@ _realname=libfreexl pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.0.5 +pkgver=1.0.6 pkgrel=1 pkgdesc="Library to extract valid data from within an Excel (.xls) spreadsheet (mingw-w64)" arch=('any') @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libiconv") options=(strip) source=("https://www.gaia-gis.it/gaia-sins/freexl-${pkgver}.tar.gz" "01-fix-pkgconfig.patch") -sha256sums=('3dc9b150d218b0e280a3d6a41d93c1e45f4d7155829d75f1e5bf3e0b0de6750d' +sha256sums=('3de8b57a3d130cb2881ea52d3aa9ce1feedb1b57b7daa4eb37f751404f90fc22' 'bc6facd7b0bde308d442962b350fa1894cd6605412ae4665775be745069e4ea5') prepare() { diff --git a/mingw-w64-libgcrypt/PKGBUILD b/mingw-w64-libgcrypt/PKGBUILD index e2bd4c5dc9..a90ae0019f 100644 --- a/mingw-w64-libgcrypt/PKGBUILD +++ b/mingw-w64-libgcrypt/PKGBUILD @@ -4,7 +4,7 @@ _realname=libgcrypt pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.8.5 +pkgver=1.8.6 pkgrel=1 pkgdesc="General purpose cryptographic library based on the code from GnuPG (mingw-w64)" arch=('any') @@ -21,7 +21,7 @@ validpgpkeys=('D8692123C4065DEA5E0F3AB5249B39D24F25E3B6' '46CC730865BB5C78EBABADCF04376F3EE0856959' '031EC2536E580D8EA286A9F22071B08A33BD3F06' 'D238EA65D64C67ED4C3073F28A861B1C7EFD60D9') -sha256sums=('3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3' +sha256sums=('0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975' 'SKIP' '55cf915badebb4b3cfa671eea725aebb77be791aa39a19caef090ded4f38d8eb' 'd6855fc9b7a3a7fa440be1d9ae3477f8c08524d1aab1a8c7bb26d62b55382f72') diff --git a/mingw-w64-libgd/PKGBUILD b/mingw-w64-libgd/PKGBUILD index 5590d647d5..4c822aabcf 100644 --- a/mingw-w64-libgd/PKGBUILD +++ b/mingw-w64-libgd/PKGBUILD @@ -4,7 +4,7 @@ _realname=libgd pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.3.0 -pkgrel=1 +pkgrel=3 pkgdesc="GD is an open source code library for the dynamic creation of images by programmers (mingw-w64)" arch=('any') url="https://libgd.github.io/" @@ -21,15 +21,18 @@ depends=("${MINGW_PACKAGE_PREFIX}-libpng" "${MINGW_PACKAGE_PREFIX}-zlib") replaces=("${MINGW_PACKAGE_PREFIX}-gd") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-cmake") + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-ninja") source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/libgd/libgd/releases/download/gd-${pkgver}/${_realname}-${pkgver}.tar.gz" "libgd-export-pkg-config-build-in-subdirs.patch" "mingw-replace-posix_memalign.patch" - "mingw-getline-link.patch") + "mingw-getline-link.patch" + "upstream-622.patch") sha256sums=('32590e361a1ea6c93915d2448ab0041792c11bae7b18ee812514fe08b2c6a342' 'ac2786835434b05c72bd826d0cff5e7346b4bd01e78fa22d8b0bea7720c369d2' 'c3e69c7e59c280e5cc561c984c906b5cfa5ee56aff0b173c0febfdbf90cb048f' - 'b52ec6485d43b511b9b399cda41fc85d5f15f5ebccad1dfc76bb89b451aae512') + 'b52ec6485d43b511b9b399cda41fc85d5f15f5ebccad1dfc76bb89b451aae512' + 'cfa9ce3683c744d92158f639cf275126b03298a8365b4b46026825045c2db4fb') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -40,6 +43,9 @@ prepare() { patch -Nbp1 -i "${srcdir}/libgd-export-pkg-config-build-in-subdirs.patch" patch -Nbp1 -i "${srcdir}/mingw-replace-posix_memalign.patch" patch -Nbp1 -i "${srcdir}/mingw-getline-link.patch" + + # https://github.com/libgd/libgd/pull/622 + patch -Nbp1 -i "${srcdir}/upstream-622.patch" } build() { @@ -48,7 +54,7 @@ build() { MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake.exe \ - -G"MSYS Makefiles" \ + -GNinja \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DBUILD_{SHARED,STATIC}_LIBS=ON \ -DENABLE_FONTCONFIG=ON \ @@ -60,6 +66,7 @@ build() { -DENABLE_FREETYPE=ON \ -DENABLE_WEBP=ON \ -DENABLE_LIQ=ON \ + -DENABLE_GD_FORMATS=ON \ -DXPM_XPM_INCLUDE_DIR="${MINGW_PREFIX}/include/X11" \ -DWEBP_INCLUDE_DIR="${MINGW_PREFIX}/include/webp/" \ -DLIQ_INCLUDE_DIR="${MINGW_PREFIX}/include/libimagequant" \ @@ -67,12 +74,13 @@ build() { -DFREETYPE_INCLUDE_DIRS="${MINGW_PREFIX}/include/freetype2" \ ../${_realname}-${pkgver} - make + ${MINGW_PREFIX}/bin/cmake --build ./ } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR=${pkgdir} install + + DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build ./ --target install local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) files=("/lib/pkgconfig/gdlib.pc") diff --git a/mingw-w64-libgd/upstream-622.patch b/mingw-w64-libgd/upstream-622.patch new file mode 100644 index 0000000000..d477a9ba08 --- /dev/null +++ b/mingw-w64-libgd/upstream-622.patch @@ -0,0 +1,27 @@ +From 03529794c6e16e14b11430f38d5552dcf06d4b85 Mon Sep 17 00:00:00 2001 +From: willson-chen +Date: Fri, 10 Apr 2020 15:24:09 +0800 +Subject: [PATCH] src/config.h.cmake: replace #cmakedefine01 with #define in + macro ENABLE_GD_FOORMATS + +Although we have a document describ the avaiable options +are ENABLE_XXX=1/0, there must some one are familar with +ENABLE_XXX=ON/OF. If ENABLE_GD_FORMATS=ON is used, it will +result that GD formats is not enabled actually. +--- + src/config.h.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/config.h.cmake b/src/config.h.cmake +index 54f3a528..836be470 100644 +--- a/src/config.h.cmake ++++ b/src/config.h.cmake +@@ -4,7 +4,7 @@ + #cmakedefine BGDWIN32 + + /* Whether to support gd image formats */ +-#define ENABLE_GD_FORMATS @ENABLE_GD_FORMATS@ ++#cmakedefine01 ENABLE_GD_FORMATS + + /* Define to 1 if you have the header file. */ + #cmakedefine HAVE_DIRENT_H diff --git a/mingw-w64-libgpg-error/04-use-winpthreads.mingw.patch b/mingw-w64-libgpg-error/04-use-winpthreads.mingw.patch deleted file mode 100644 index 450a0444e1..0000000000 --- a/mingw-w64-libgpg-error/04-use-winpthreads.mingw.patch +++ /dev/null @@ -1,69 +0,0 @@ ---- libgpg-error-1.13/configure.ac.orig 2014-04-15 12:25:16.000000000 +0000 -+++ libgpg-error-1.13/configure.ac 2014-05-02 23:52:02.087073700 +0000 -@@ -169,27 +169,8 @@ - - - # Check for thread library. --# --# Windows has always thread support; thus we don't bother to test for --# it as it may lead to false results when cross building. --if test "$have_w32_system" = yes; then -- AC_DEFINE([USE_WINDOWS_THREADS], [1]) -- LIBTHREAD= -- LTLIBTHREAD= -- LIBMULTITHREAD= -- LTLIBMULTITHREAD= -- THREADLIB_CPPFLAGS="" -- AC_SUBST([LIBTHREAD]) -- AC_SUBST([LTLIBTHREAD]) -- AC_SUBST([LIBMULTITHREAD]) -- AC_SUBST([LTLIBMULTITHREAD]) --else -- gl_LOCK -- if test "$gl_threads_api" = posix; then - AC_CHECK_SIZEOF(pthread_mutex_t,,[AC_INCLUDES_DEFAULT - #include ]) -- fi --fi - - - # Substitution used for gpg-error-config ---- libgpg-error-1.13/src/gen-posix-lock-obj.c.orig 2014-01-28 22:47:12.000000000 +0000 -+++ libgpg-error-1.13/src/gen-posix-lock-obj.c 2014-05-02 23:55:32.376277000 +0000 -@@ -21,10 +21,6 @@ - #include - #endif - --#ifdef HAVE_W32_SYSTEM --# error This module may not be build for Windows. --#endif -- - #include - #include - #include ---- libgpg-error-1.13/src/posix-lock.c.orig 2014-01-28 22:47:12.000000000 +0000 -+++ libgpg-error-1.13/src/posix-lock.c 2014-05-02 23:55:32.376277000 +0000 -@@ -25,10 +25,6 @@ - #include - #endif - --#ifdef HAVE_W32_SYSTEM --# error This module may not be build for Windows. --#endif -- - #include - #include - #include ---- libgpg-error-1.13/src/posix-thread.c.orig 2014-01-28 22:47:12.000000000 +0000 -+++ libgpg-error-1.13/src/posix-thread.c 2014-05-02 23:55:32.376277000 +0000 -@@ -25,10 +25,6 @@ - #include - #endif - --#ifdef HAVE_W32_SYSTEM --# error This module may not be build for Windows. --#endif -- - #include - #include - #include diff --git a/mingw-w64-libgpg-error/09-fix-generating-union.patch b/mingw-w64-libgpg-error/09-fix-generating-union.patch deleted file mode 100644 index 28f6130d19..0000000000 --- a/mingw-w64-libgpg-error/09-fix-generating-union.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- libgpg-error-1.16/src/gen-w32-lock-obj.c.orig 2014-01-15 18:53:55.000000000 +0300 -+++ libgpg-error-1.16/src/gen-w32-lock-obj.c 2014-09-26 23:30:41.184111000 +0300 -@@ -39,17 +39,23 @@ - unsigned char *p; - int i; - -- printf ("sizeof CRITICAL_SECTION = %u\n", (int)sizeof (CRITICAL_SECTION)); -- printf ("sizeof _gpgrt_lock_t = %u\n", (int)sizeof lk); -- -+ printf ("#pragma pack(push, 8)\n" -+ "typedef struct\n" -+ "{\n" -+ " volatile char _priv[%d];\n" -+ "} gpgrt_lock_t;\n" -+ "#pragma pack(pop)\n", -+ sizeof lk); -+ - memset (&lk, 0, sizeof lk); - lk.vers = LOCK_ABI_VERSION; - lk.started = -1; -- printf ("#define GPGRT_LOCK_INITIALIZER {"); -+ -+ printf ("#define GPGRT_LOCK_INITIALIZER {{"); - p = (unsigned char *)&lk; - for (i=0; i < sizeof lk - 1; i++) - printf ("%u,", p[i]); -- printf ("%u}\n", p[sizeof(lk)-1]); -+ printf ("%u}}\n", p[sizeof(lk)-1]); - - return 0; - } diff --git a/mingw-w64-libgpg-error/PKGBUILD b/mingw-w64-libgpg-error/PKGBUILD index 2a4e9d546c..2988fdf8f9 100644 --- a/mingw-w64-libgpg-error/PKGBUILD +++ b/mingw-w64-libgpg-error/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgpg-error pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.38 +pkgver=1.39 pkgrel=1 pkgdesc="Support library for libgcrypt (mingw-w64)" arch=('any') @@ -15,35 +15,28 @@ options=('staticlibs' 'strip') source=("https://gnupg.org/ftp/gcrypt/libgpg-error/${_realname}-${pkgver}.tar.bz2"{,.sig} 01-mingw32-fix-potomo.mingw.patch 02-fix-symbollist-on.mingw.patch - 04-use-winpthreads.mingw.patch 05-w32-gen.all.patch 07-windows-build.patch - 09-fix-generating-union.patch 10-gpg-error-static-linking.patch) #These might be signed by any of these keys https://gnupg.org/signature_key.html validpgpkeys=('D8692123C4065DEA5E0F3AB5249B39D24F25E3B6' '46CC730865BB5C78EBABADCF04376F3EE0856959' '031EC2536E580D8EA286A9F22071B08A33BD3F06' 'D238EA65D64C67ED4C3073F28A861B1C7EFD60D9') -sha256sums=('d8988275aa69d7149f931c10442e9e34c0242674249e171592b430ff7b3afd02' +sha256sums=('4a836edcae592094ef1c5a4834908f44986ab2b82e0824a0344b49df8cdb298f' 'SKIP' '252349e58d418adfec5621af1e09753db52b1bf39983aa3bc398d636afb9b495' '364da17febff3f6eeffee5a5f1e3ed1b644adeb5ca48a972c5c4675c10238a91' - '2bf2572ac0bada49b8947a842d99e2190acbe34badd73a629173fda757525edc' '9ccdc567810d58526888fd11c5f7d01101627011840b7b75a91e96aa9e71f49d' 'ab1d5e1a10d3803b2ae514aacba184c0bba019417bf9f7615243505455ffabb8' - '999a02c10a2f0c57520a009cebc2a4ea410aea53e2d457e074aa5dc4c877672b' '9780e3e397b983ef52d5dae22d54c4453a47bddf04eafa2f874c75038e3485eb') prepare() { cd "${srcdir}/${_realname}-${pkgver}" patch -p1 -i ${srcdir}/01-mingw32-fix-potomo.mingw.patch patch -p1 -i ${srcdir}/02-fix-symbollist-on.mingw.patch - #patch -p1 -i ${srcdir}/03-fix-config-on.mingw.patch - #patch -p1 -i ${srcdir}/04-use-winpthreads.mingw.patch patch -p1 -i ${srcdir}/05-w32-gen.all.patch patch -p1 -i ${srcdir}/07-windows-build.patch - #patch -p1 -i ${srcdir}/09-fix-generating-union.patch patch -p1 -i ${srcdir}/10-gpg-error-static-linking.patch autoreconf -fi } diff --git a/mingw-w64-libgsf/PKGBUILD b/mingw-w64-libgsf/PKGBUILD index a50b477a04..1480392271 100644 --- a/mingw-w64-libgsf/PKGBUILD +++ b/mingw-w64-libgsf/PKGBUILD @@ -3,7 +3,7 @@ _realname=libgsf pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.14.46 +pkgver=1.14.47 pkgrel=1 arch=('any') pkgdesc="An extensible I/O abstraction library for dealing with structured file formats (mingw-w64)" @@ -18,13 +18,17 @@ options=('strip' 'staticlibs') license=('GPL' 'LGPL') url="https://gitlab.gnome.org/GNOME/libgsf.git" source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz - 002-get-unix-path-for-git.patch) -sha256sums=('ea36959b1421fc8e72caa222f30ec3234d0ed95990e2bf28943a85f33eadad2d' - 'f08db8333d2b4a369737a77969b5896d408a4d9992fab6f1c9c44ddeae25c516') + 002-get-unix-path-for-git.patch + fix-windows-build.patch) +sha256sums=('d188ebd3787b5375a8fd38ee6f761a2007de5e98fa0cf5623f271daa67ba774d' + 'f08db8333d2b4a369737a77969b5896d408a4d9992fab6f1c9c44ddeae25c516' + '10d2c40cae20af1591777c387e6c2534ca8343e0f656ac1c07970a72911e5748') prepare() { cd ${_realname}-${pkgver} patch -b -V simple -p1 -i ${srcdir}/002-get-unix-path-for-git.patch + # upstream fix: https://gitlab.gnome.org/GNOME/libgsf/-/commit/8441d5863cb90ed48199d6976bc6e2fcfbe3365a + patch -Np1 -i "${srcdir}/fix-windows-build.patch" autoreconf -fiv } diff --git a/mingw-w64-libgsf/fix-windows-build.patch b/mingw-w64-libgsf/fix-windows-build.patch new file mode 100644 index 0000000000..6acdeed101 --- /dev/null +++ b/mingw-w64-libgsf/fix-windows-build.patch @@ -0,0 +1,40 @@ +From 8441d5863cb90ed48199d6976bc6e2fcfbe3365a Mon Sep 17 00:00:00 2001 +From: Morten Welinder +Date: Sat, 2 May 2020 21:24:12 -0400 +Subject: [PATCH] Compilation: fix win32 build + +--- + NEWS | 3 +++ + gsf/Makefile.am | 3 +-- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/NEWS b/NEWS +index bbfeefd..2c3c986 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,5 +1,8 @@ + libgsf 1.14.48 + ++Greg Hellings: ++ * Fix win32 build. ++ + -------------------------------------------------------------------------- + libgsf 1.14.47 + +diff --git a/gsf/Makefile.am b/gsf/Makefile.am +index 20d92bc..121015e 100644 +--- a/gsf/Makefile.am ++++ b/gsf/Makefile.am +@@ -18,8 +18,7 @@ EXTRA_DIST = libgsf.syms + libgsf_1_la_LIBADD = $(LIBGSF_LIBS) $(Z_LIBS) $(BZ2_LIBS) + libgsf_1_la_LDFLAGS = -version-info $(VERSION_INFO) -export-symbols $(srcdir)/libgsf.syms + if WITH_WIN32 +- libgsf_1_la_DEPENDENCIES = lib.def +- libgsf_1_la_LDFLAGS += -no-undefined -export-symbols lib.def ++ libgsf_1_la_LDFLAGS += -no-undefined + endif + + libgsf_1_la_SOURCES = \ +-- +GitLab + diff --git a/mingw-w64-libhandy/001-fix-types.patch b/mingw-w64-libhandy/001-fix-types.patch deleted file mode 100644 index 776143a283..0000000000 --- a/mingw-w64-libhandy/001-fix-types.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/src/hdy-swipe-group.c b/src/hdy-swipe-group.c -index 18b167ab5a260093bc0e6cd8fc4deef86211cb0f..2779a312e066f698635f151a8df6c57b6ac8b125 100644 ---- a/src/hdy-swipe-group.c -+++ b/src/hdy-swipe-group.c -@@ -104,7 +104,7 @@ hdy_swipe_group_new (void) - - static void - child_switched_cb (HdySwipeGroup *self, -- uint index, -+ guint index, - gint64 duration, - HdySwipeable *swipeable) - { -diff --git a/tests/test-carousel.c b/tests/test-carousel.c -index 538ca6e1a8f9589ebf10d0099bfdb56349f0a357..25ccb3e68700612dc8ed5f0c3e4debb6e8cbdc8e 100644 ---- a/tests/test-carousel.c -+++ b/tests/test-carousel.c -@@ -158,7 +158,7 @@ static void - test_hdy_carousel_indicator_spacing (void) - { - HdyCarousel *carousel = HDY_CAROUSEL (hdy_carousel_new ()); -- uint spacing; -+ guint spacing; - - notified = 0; - g_signal_connect (carousel, "notify::indicator-spacing", G_CALLBACK (notify_cb), NULL); -@@ -210,7 +210,7 @@ static void - test_hdy_carousel_spacing (void) - { - HdyCarousel *carousel = HDY_CAROUSEL (hdy_carousel_new ()); -- uint spacing; -+ guint spacing; - - notified = 0; - g_signal_connect (carousel, "notify::spacing", G_CALLBACK (notify_cb), NULL); -@@ -236,7 +236,7 @@ static void - test_hdy_carousel_animation_duration (void) - { - HdyCarousel *carousel = HDY_CAROUSEL (hdy_carousel_new ()); -- uint duration; -+ guint duration; - - notified = 0; - g_signal_connect (carousel, "notify::animation-duration", G_CALLBACK (notify_cb), NULL); diff --git a/mingw-w64-libhandy/PKGBUILD b/mingw-w64-libhandy/PKGBUILD index b3a09ac5d8..70ece3e005 100644 --- a/mingw-w64-libhandy/PKGBUILD +++ b/mingw-w64-libhandy/PKGBUILD @@ -3,26 +3,26 @@ _realname=libhandy pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.84.0 -pkgrel=1 +pkgver=0.90.0 +pkgrel=2 pkgdesc="A library full of GTK+ widgets for mobile phones (mingw-w64)" url="https://gitlab.gnome.org/GNOME/libhandy" license=("LGPL2.1+") arch=('any') -depends=("${MINGW_PACKAGE_PREFIX}-gtk3") -makedepends=("${MINGW_PACKAGE_PREFIX}-meson" +depends=("${MINGW_PACKAGE_PREFIX}-glib2" + "${MINGW_PACKAGE_PREFIX}-gtk3") +makedepends=("${MINGW_PACKAGE_PREFIX}-glade" + "${MINGW_PACKAGE_PREFIX}-meson" + "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-pkg-config" "${MINGW_PACKAGE_PREFIX}-vala" "${MINGW_PACKAGE_PREFIX}-gobject-introspection") options=('strip' 'staticlibs' '!debug') -source=("http://ftp.gnome.org/pub/GNOME/sources/libhandy/${pkgver:0:4}/libhandy-${pkgver}.tar.xz" - 001-fix-types.patch) -sha256sums=('c05c539f96f91cdf29a07320576c74909fcf77d216d7328e602fe16599f561aa' - '0d7833c87deaf5b25f6e1205fe54c1814a1cf91ab19f89b3cef1b96bac401d27') +source=("https://download.gnome.org/sources/libhandy/${pkgver:0:4}/libhandy-${pkgver}.tar.xz") +sha256sums=('6ab0869a3aa483298ea20ec89d4c14c38ba4de416b33181d21e15a6039df5985') prepare() { cd libhandy-${pkgver} - patch -p1 -i ${srcdir}/001-fix-types.patch } build() { @@ -33,7 +33,7 @@ build() { --buildtype=plain \ -Dexamples=false \ -Dgtk_doc=false \ - -Dglade_catalog=disabled \ + -Dglade_catalog=enabled \ ../"libhandy-${pkgver}" ${MINGW_PREFIX}/bin/ninja diff --git a/mingw-w64-libheif/PKGBUILD b/mingw-w64-libheif/PKGBUILD index a8adab7334..42bcdc9b06 100644 --- a/mingw-w64-libheif/PKGBUILD +++ b/mingw-w64-libheif/PKGBUILD @@ -3,7 +3,7 @@ _realname=libheif pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.7.0 +pkgver=1.8.0 pkgrel=1 pkgdesc="HEIF image decoder/encoder library and tools (mingw-w64)" arch=('any') @@ -20,13 +20,18 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-x265") options=('strip') source=("https://github.com/strukturag/libheif/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz" - 001-fix-pkgconfig-provide-includedir.patch) -sha256sums=('842a9ab4b8d6f0faf5a6dc5e8507321199ec44c0b1d8eb199f2de9b49e2db092' - 'b782444a8f2c3f23c3b57e6e0a25ebe1313656aeeb72fad2335b1c6ee4b90a0b') + 001-fix-pkgconfig-provide-includedir.patch + initialize-img_format-and-fix-warnings.patch) +sha256sums=('e43ef91a5ad41de4471a2fd484279d0793b419009a7d102965739da8f7b75d96' + 'b782444a8f2c3f23c3b57e6e0a25ebe1313656aeeb72fad2335b1c6ee4b90a0b' + 'f923553318fce9c1fe0abb5e054cb92c63ffa19b116e8e33d8b60dffd87fdcea') prepare() { cd ${_realname}-${pkgver} patch -p1 -i ${srcdir}/001-fix-pkgconfig-provide-includedir.patch + + # already fixed upstream for next release + patch -Np1 -i ${srcdir}/initialize-img_format-and-fix-warnings.patch } build() { diff --git a/mingw-w64-libheif/initialize-img_format-and-fix-warnings.patch b/mingw-w64-libheif/initialize-img_format-and-fix-warnings.patch new file mode 100644 index 0000000000..096032e2f6 --- /dev/null +++ b/mingw-w64-libheif/initialize-img_format-and-fix-warnings.patch @@ -0,0 +1,27 @@ +diff --git a/libheif/heif_context.cc b/libheif/heif_context.cc +index da7027f..c9b6d7a 100644 +--- a/libheif/heif_context.cc ++++ b/libheif/heif_context.cc +@@ -1617,8 +1617,8 @@ create_alpha_image_from_image_alpha_channel(const std::shared_ptrcopy_new_plane_from(image, heif_channel_Alpha, heif_channel_Y); + +- int bpp = image->get_bits_per_pixel(heif_channel_Alpha); +- int half_range = 1<<(bpp-1); ++ uint8_t bpp = image->get_bits_per_pixel(heif_channel_Alpha); ++ uint16_t half_range = static_cast(1 << (bpp - 1)); + + alpha_image->fill_new_plane(heif_channel_Cb, half_range, chroma_width, chroma_height, bpp); + alpha_image->fill_new_plane(heif_channel_Cr, half_range, chroma_width, chroma_height, bpp); +diff --git a/libheif/heif_encoder_aom.cc b/libheif/heif_encoder_aom.cc +index e8652a0..4d85b81 100644 +--- a/libheif/heif_encoder_aom.cc ++++ b/libheif/heif_encoder_aom.cc +@@ -524,6 +524,7 @@ struct heif_error aom_encode_image(void* encoder_raw, const struct heif_image* i + img_format = AOM_IMG_FMT_I444; + break; + default: ++ img_format = AOM_IMG_FMT_NONE; + assert(false); + break; + } diff --git a/mingw-w64-libid3tag/006-libid3tag-0.15.1b-gperf-size_t.patch b/mingw-w64-libid3tag/006-libid3tag-0.15.1b-gperf-size_t.patch new file mode 100644 index 0000000000..588bde9c3d --- /dev/null +++ b/mingw-w64-libid3tag/006-libid3tag-0.15.1b-gperf-size_t.patch @@ -0,0 +1,25 @@ +Index: libid3tag-0.15.1b/frametype.h +=================================================================== +--- libid3tag-0.15.1b.orig/frametype.h ++++ libid3tag-0.15.1b/frametype.h +@@ -37,6 +37,6 @@ extern struct id3_frametype const id3_fr + extern struct id3_frametype const id3_frametype_obsolete; + + struct id3_frametype const *id3_frametype_lookup(register char const *, +- register unsigned int); ++ register size_t); + + # endif +Index: libid3tag-0.15.1b/compat.h +=================================================================== +--- libid3tag-0.15.1b.orig/compat.h ++++ libid3tag-0.15.1b/compat.h +@@ -34,7 +34,7 @@ struct id3_compat { + }; + + struct id3_compat const *id3_compat_lookup(register char const *, +- register unsigned int); ++ register size_t); + + int id3_compat_fixup(struct id3_tag *); + diff --git a/mingw-w64-libid3tag/PKGBUILD b/mingw-w64-libid3tag/PKGBUILD index 49faa11cca..c360e81fba 100644 --- a/mingw-w64-libid3tag/PKGBUILD +++ b/mingw-w64-libid3tag/PKGBUILD @@ -4,7 +4,7 @@ _realname=libid3tag pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.15.1b -pkgrel=1 +pkgrel=2 pkgdesc="Library for id3 tagging (mingw-w64)" arch=('any') url="https://www.underbit.com/products/mad/" @@ -19,6 +19,7 @@ source=(#"ftp://ftp.mars.org/pub/mpeg/${_realname}-${pkgver}.tar.gz" '10_utf16.patch' '11_unknown_encoding.patch' 'CVE-2008-2109.patch' + '006-libid3tag-0.15.1b-gperf-size_t.patch' 'id3tag.pc' ) sha256sums=('63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151' @@ -27,7 +28,8 @@ sha256sums=('63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151' '8aa2ef25a6560d5f82e8f1b06c080bf7bb507d63098915b9aa6614684f44af0f' 'f58b782bef23fe393b992b74ef2fe4c5f7715b971faf9e048e65f8eb020b0c1a' '43ea3e0b324fb25802dae6410564c947ce1982243c781ef54b023f060c3b0ac4' - '224815cbbaaf8008061fca9a65524629eec4dbd4dc7f4db35645e0c89b30f37d') + 'e85136f6f907c5e5f8f04ce5d125316ffbfc215f84cd06eea4196b651184fe89' + '12c59fd85e1e327c96e33457e71d41018e6200cd0d567c0fc7556328f88a8f23') prepare() { cd "${srcdir}/${_realname}-${pkgver}" @@ -36,10 +38,14 @@ prepare() { patch -p1 -i ${srcdir}/10_utf16.patch patch -p1 -i ${srcdir}/11_unknown_encoding.patch patch -Np0 -i ${srcdir}/CVE-2008-2109.patch + patch -p1 -i ${srcdir}/006-libid3tag-0.15.1b-gperf-size_t.patch touch NEWS AUTHORS ChangeLog rm aclocal.m4 rm Makefile.in + # Force these files to be regenerated from the .gperf sources. + rm compat.c frametype.c + autoreconf -fi } diff --git a/mingw-w64-libid3tag/id3tag.pc b/mingw-w64-libid3tag/id3tag.pc index 82700bb4ec..b7b1c682be 100644 --- a/mingw-w64-libid3tag/id3tag.pc +++ b/mingw-w64-libid3tag/id3tag.pc @@ -5,6 +5,6 @@ includedir=${prefix}/include Name: ID3TAG Description: libid3tag - ID3 tag manipulation library -Version: 0.15.0b +Version: 0.15.1b Libs: -L${libdir} -lid3tag -lz Cflags: \ No newline at end of file diff --git a/mingw-w64-libslirp/PKGBUILD b/mingw-w64-libslirp/PKGBUILD index fadc254986..bcac67e56b 100644 --- a/mingw-w64-libslirp/PKGBUILD +++ b/mingw-w64-libslirp/PKGBUILD @@ -3,8 +3,8 @@ _realname=libslirp pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.3.0 -pkgrel=2 +pkgver=4.3.1 +pkgrel=1 pkgdesc="General purpose TCP-IP emulator (mingw-w64)" arch=('any') url="https://gitlab.freedesktop.org/slirp/libslirp" @@ -16,7 +16,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-ninja") #"https://gitlab.freedesktop.org/slirp/${_realname}/-/archive/v${pkgver}/${_realname}-v${pkgver}.tar.bz2" source=("https://elmarco.fedorapeople.org/${_realname}-${pkgver}.tar.xz") -sha256sums=('4866cce89b0e129abebe3e34c7dd3d33145537e3bc77efeeb46e7d9589c13625') +sha256sums=('388b4b08a8cc0996cc5155cb027a097dc1a7f2cfe84b1121496608ab5366cc48') build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} diff --git a/mingw-w64-libsndfile/001-cmake-build-fixes.patch b/mingw-w64-libsndfile/001-cmake-build-fixes.patch new file mode 100644 index 0000000000..8632124491 --- /dev/null +++ b/mingw-w64-libsndfile/001-cmake-build-fixes.patch @@ -0,0 +1,38 @@ +--- libsndfile-1.0.29/CMakeLists.txt.orig 2020-08-26 19:06:05.255127700 +0200 ++++ libsndfile-1.0.29/CMakeLists.txt 2020-08-26 18:57:22.158126800 +0200 +@@ -66,7 +66,7 @@ + set (CPU_CLIPS_POSITIVE FALSE) + set (CPU_CLIPS_NEGATIVE FALSE) + endif () +-cmake_dependent_option (ENABLE_COMPATIBLE_LIBSNDFILE_NAME "Set DLL name to libsndfile-1.dll (canonical name), sndfile.dll otherwise" OFF "WIN32;NOT MINGW;BUILD_SHARED_LIBS" OFF) ++cmake_dependent_option (ENABLE_COMPATIBLE_LIBSNDFILE_NAME "Set DLL name to libsndfile-1.dll (canonical name), sndfile.dll otherwise" ON "WIN32;BUILD_SHARED_LIBS" OFF) + + set (HAVE_EXTERNAL_XIPH_LIBS ${ENABLE_EXTERNAL_LIBS}) + set (HAVE_SQLITE3 ${BUILD_REGTEST}) +@@ -86,7 +86,7 @@ + add_feature_info (ENABLE_CPU_CLIP ENABLE_CPU_CLIP "Enable tricky cpu specific clipper") + add_feature_info (ENABLE_BOW_DOCS ENABLE_BOW_DOCS "enable black-on-white html docs") + add_feature_info (ENABLE_PACKAGE_CONFIG ENABLE_PACKAGE_CONFIG "generate and install package config file") +-if (WIN32 AND (NOT MINGW) AND BUILD_SHARED_LIBS) ++if (WIN32 AND BUILD_SHARED_LIBS) + add_feature_info (ENABLE_COMPATIBLE_LIBSNDFILE_NAME ENABLE_COMPATIBLE_LIBSNDFILE_NAME "Set DLL name to libsndfile-1.dll (canonical name), sndfile.dll otherwise") + endif () + +@@ -314,7 +314,7 @@ + + if (ENABLE_COMPATIBLE_LIBSNDFILE_NAME) + set_target_properties (sndfile PROPERTIES +- RUNTIME_OUTPUT_NAME "libsndfile-1" ++ RUNTIME_OUTPUT_NAME "sndfile-1" + ) + endif () + +@@ -656,7 +656,7 @@ + + endif () + +-if (UNIX) ++if (UNIX OR MINGW) + set (man_MANS + man/sndfile-info.1 + man/sndfile-play.1 diff --git a/mingw-w64-libsndfile/PKGBUILD b/mingw-w64-libsndfile/PKGBUILD index 00abf1edbc..e918b09a42 100644 --- a/mingw-w64-libsndfile/PKGBUILD +++ b/mingw-w64-libsndfile/PKGBUILD @@ -3,49 +3,74 @@ _realname=libsndfile pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.0.29pre2 -pkgrel=1 +pkgver=1.0.29 +pkgrel=2 pkgdesc="A C library for reading and writing files containing sampled sound (mingw-w64)" arch=('any') url="http://www.mega-nerd.com/libsndfile" license=('LGPL') -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") -depends=("${MINGW_PACKAGE_PREFIX}-flac" "${MINGW_PACKAGE_PREFIX}-libogg" "${MINGW_PACKAGE_PREFIX}-libvorbis" "${MINGW_PACKAGE_PREFIX}-opus") +depends=("${MINGW_PACKAGE_PREFIX}-flac" + "${MINGW_PACKAGE_PREFIX}-libogg" + "${MINGW_PACKAGE_PREFIX}-libvorbis" + "${MINGW_PACKAGE_PREFIX}-opus") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-ninja") options=('staticlibs' 'strip') -source=("http://www.mega-nerd.com/libsndfile/files/${pkgver}/${_realname}-${pkgver}.tar.bz2") -sha256sums=('ffe2d6bff622bc66e6f96059ada79cfcdc43b3e8bc9cc4f45dbc567dccbfae75') -validpgpkeys=('6A91A5CF22C24C99A35E013FCFDCF91FB242ACED') # Erik de Castro Lopo - +source=("https://github.com/erikd/libsndfile/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.bz2" + "001-cmake-build-fixes.patch") +sha256sums=('2ba20d44817c8176f097ab25eff44ef0aeec9e00973def5a7174c5ae0764b22f' + 'cecda39c0a00ba9c0236fc97fb30e43048106189b1d824d8302a429dff67771e') prepare() { cd ${srcdir}/${_realname}-${pkgver} - autoreconf -vfi + + patch -Np1 -i "${srcdir}"/001-cmake-build-fixes.patch } build() { - [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}" - mkdir -p ${srcdir}/build-${MINGW_CHOST} - cd ${srcdir}/build-${MINGW_CHOST} - ../${_realname}-${pkgver}/configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --disable-sqlite \ - --disable-test-coverage \ - --enable-external-libs \ - --enable-stack-smash-protection \ - --enable-shared \ - --enable-static + declare -a _extra_config + if check_option "debug" "n"; then + _extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + _extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi - make + msg2 "Build static for ${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}-static" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}-static" + mkdir -p "${srcdir}/build-${MINGW_CHOST}-static" && cd "${srcdir}/build-${MINGW_CHOST}-static" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + "${_extra_config[@]}" \ + -DBUILD_SHARED_LIBS=OFF \ + ../${_realname}-${pkgver} + + ${MINGW_PREFIX}/bin/cmake --build ./ + + msg2 "Build shared for ${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}-shared" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}-shared" + mkdir -p "${srcdir}/build-${MINGW_CHOST}-shared" && cd "${srcdir}/build-${MINGW_CHOST}-shared" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + ${MINGW_PREFIX}/bin/cmake \ + -G "Ninja" \ + -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ + "${_extra_config[@]}" \ + -DBUILD_SHARED_LIBS=ON \ + ../${_realname}-${pkgver} + + ${MINGW_PREFIX}/bin/cmake --build ./ } package() { - cd ${srcdir}/build-${MINGW_CHOST} - make DESTDIR="${pkgdir}" install + msg2 "Install static for ${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}-static" + DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build ./ --target install - local WINPREFIX=$(cygpath -wm ${MINGW_PREFIX}) - # Fix paths - sed -i "s|${WINPREFIX}|${MINGW_PREFIX}|g" \ - ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/sndfile.pc + msg2 "Install shared for ${MINGW_CHOST}" + cd "${srcdir}/build-${MINGW_CHOST}-shared" + DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build ./ --target install } diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 3fdb16c1df..c359149e7a 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -3,7 +3,7 @@ _realname=mesa pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=20.1.5 +pkgver=20.1.7 pkgrel=1 pkgdesc="Open-source implementation of the OpenGL specification (mingw-w64)" arch=('any') @@ -18,9 +18,11 @@ url="https://www.mesa3d.org/" license=('MIT') options=('staticlibs' 'strip') source=(https://mesa.freedesktop.org/archive/${_realname}-${pkgver}.tar.xz{,.sig} + swr-mingw.patch llvmwrapgen.sh) -sha256sums=('fac1861e6e0bf1aec893f8d86dbfb9d8a0f426ff06b05256df10e3ad7e02c69b' +sha256sums=('4de9dd0cb2ca367606cada421db62fbf6d276dfd533e522bfab6001ff9aba288' 'SKIP' + '6883042e8f53ab03057d8c66e16c516f096b4dbef06c4a7230947d5be87328ca' '3ad048a4c395adf6d24f2e9325d6a125822b323d494149e00d5cc435d16075e4') validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # Andres Gomez @@ -65,6 +67,11 @@ prepare() { cd ${srcdir}/${_realname}-${pkgver} +# Fix swr build with MinGW - https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6532 + if [ ${_mach} = x86_64 ]; then + apply_patch_with_msg swr-mingw.patch + fi + # Run and optionally test LLVM Meson wrap generator. # Change nollvmconfig value to 1 if you know llvm-config is broken. @@ -74,23 +81,31 @@ prepare() { build() { cd ${srcdir}/${_realname}-${pkgver} - PROCESSOR_ARCHITECTURE="${CARCH}" \ - ${MINGW_PREFIX}/bin/meson ./build/windows-${_mach} \ - --prefix=${MINGW_PREFIX} \ - --includedir=include/mesa \ - --default-library=both \ - --buildtype=release \ - --backend=ninja \ + buildconf="${MINGW_PREFIX}/bin/meson ./build/windows-${_mach} + --prefix=${MINGW_PREFIX} + --includedir=include/mesa + --default-library=both + --buildtype=release + --backend=ninja + -Dshared-glapi=true + -Dgles1=true + -Dgles2=true + -Dllvm=true + -Dosmesa=gallium + -Dbuild-tests=true" + + if [ ${_mach} = x86_64 ]; then + buildconf="${buildconf} + -Dgallium-drivers=swrast,swr + -Dswr-arches=avx,avx2,skx,knl" + fi + + PROCESSOR_ARCHITECTURE="${CARCH}" ${buildconf} \ -Dc_args='-march=core2 -pipe' \ -Dcpp_args='-march=core2 -pipe' \ -Dc_link_args='-s' \ - -Dcpp_link_args='-s' \ - -Dshared-glapi=true \ - -Dgles1=true \ - -Dgles2=true \ - -Dllvm=true \ - -Dosmesa=gallium \ - -Dbuild-tests=true + -Dcpp_link_args='-s' + ${MINGW_PREFIX}/bin/ninja -C ./build/windows-${_mach} } diff --git a/mingw-w64-mesa/swr-mingw.patch b/mingw-w64-mesa/swr-mingw.patch new file mode 100644 index 0000000000..43118e7cb5 --- /dev/null +++ b/mingw-w64-mesa/swr-mingw.patch @@ -0,0 +1,255 @@ +diff --git a/src/gallium/auxiliary/tessellator/tessellator.cpp b/src/gallium/auxiliary/tessellator/tessellator.cpp +index ac16aabd098d4991225f0a522bfa05e3bc4e8b21..7452ec6cb448ba70ff34a9603bb49c5959406635 100644 +--- a/src/gallium/auxiliary/tessellator/tessellator.cpp ++++ b/src/gallium/auxiliary/tessellator/tessellator.cpp +@@ -18,9 +18,7 @@ + */ + + #include "tessellator.hpp" +-#if defined(__MINGW32__) || defined(__MINGW64__) +-#include +-#elif defined(_WIN32) || defined(_WIN64) ++#if defined(_MSC_VER) + #include // ceil + #else + #include +@@ -195,7 +193,7 @@ INT32 floatToIDotF( const float& input ) + if (iShift >= 0) + { + // assert( iShift < 32 ); +-#if defined(_WIN32) || defined(_WIN64) ++#if defined(_MSC_VER) + #pragma warning( suppress : 4293 ) + #endif + _fxpMaxPosValueFloat -= INT32( 1 ) << iShift; +@@ -217,7 +215,7 @@ INT32 floatToIDotF( const float& input ) + if (iShift >= 0) + { + // assert( iShift < 32 ); +-#if defined(_WIN32) || defined(_WIN64) ++#if defined(_MSC_VER) + #pragma warning( suppress : 4293 ) + #endif + _fxpMaxPosValueFloat -= INT32( 1 ) << iShift; +diff --git a/src/gallium/drivers/swr/meson.build b/src/gallium/drivers/swr/meson.build +index f8c4ba93f55f3a587331d6e41e061d7ecfa487b4..0e6f9214f3cda23fcdf2af59accd6ba5eef11172 100644 +--- a/src/gallium/drivers/swr/meson.build ++++ b/src/gallium/drivers/swr/meson.build +@@ -239,6 +239,7 @@ if with_swr_arches.contains('skx') + version : '0.0.0', + soversion : host_machine.system() == 'windows' ? '' : '0', + install : true, ++ name_prefix : host_machine.system() == 'windows' ? '' : 'lib', + ) + else + swr_arch_libs += static_library( +@@ -280,6 +281,7 @@ if with_swr_arches.contains('knl') + version : '0.0.0', + soversion : host_machine.system() == 'windows' ? '' : '0', + install : true, ++ name_prefix : host_machine.system() == 'windows' ? '' : 'lib', + ) + else + swr_arch_libs += static_library( +@@ -326,6 +328,7 @@ if with_swr_arches.contains('avx2') + version : '0.0.0', + soversion : host_machine.system() == 'windows' ? '' : '0', + install : true, ++ name_prefix : host_machine.system() == 'windows' ? '' : 'lib', + ) + else + swr_arch_libs += static_library( +@@ -360,6 +363,7 @@ if with_swr_arches.contains('avx') + version : '0.0.0', + soversion : host_machine.system() == 'windows' ? '' : '0', + install : true, ++ name_prefix : host_machine.system() == 'windows' ? '' : 'lib', + ) + else + swr_arch_libs += static_library( +diff --git a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp b/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp +index c1d3f2d6138b210228e0c4911478b2dd81e77a67..bcdc6d0135832dc977694a8ef7c8057f6c3fff95 100644 +--- a/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp ++++ b/src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp +@@ -25,6 +25,8 @@ + * @brief Implementation for archrast. + * + ******************************************************************************/ ++#include ++ + #include + #include + +diff --git a/src/gallium/drivers/swr/rasterizer/common/os.cpp b/src/gallium/drivers/swr/rasterizer/common/os.cpp +index aa817d451b4a19c8e6c40f134fa276f6d5a805cd..a40745f30fcabceb04e0ebdfb64d60b6bc8e4bb9 100644 +--- a/src/gallium/drivers/swr/rasterizer/common/os.cpp ++++ b/src/gallium/drivers/swr/rasterizer/common/os.cpp +@@ -34,7 +34,7 @@ + #include + #endif // Linux + +-#if defined(_WIN32) ++#if defined(_MSC_VER) + static const DWORD MS_VC_EXCEPTION = 0x406D1388; + + #pragma pack(push, 8) +@@ -76,7 +76,7 @@ void LegacySetThreadName(const char* pThreadName) + + void SWR_API SetCurrentThreadName(const char* pThreadName) + { +-#if defined(_WIN32) ++#if defined(_MSC_VER) + // The SetThreadDescription API was brought in version 1607 of Windows 10. + typedef HRESULT(WINAPI * PFNSetThreadDescription)(HANDLE hThread, PCWSTR lpThreadDescription); + // The SetThreadDescription API works even if no debugger is attached. +diff --git a/src/gallium/drivers/swr/rasterizer/common/os.h b/src/gallium/drivers/swr/rasterizer/common/os.h +index bda114d64e2faeef2b095085cf5d59c80382cf79..f48ed6443c69c2479822f8d6b8626f691df569fd 100644 +--- a/src/gallium/drivers/swr/rasterizer/common/os.h ++++ b/src/gallium/drivers/swr/rasterizer/common/os.h +@@ -49,7 +49,11 @@ + #undef MemoryFence + #endif + ++#if defined(_MSC_VER) + #define OSALIGN(RWORD, WIDTH) __declspec(align(WIDTH)) RWORD ++#elif defined(__GNUC__) ++#define OSALIGN(RWORD, WIDTH) RWORD __attribute__((aligned(WIDTH))) ++#endif + + #if defined(_DEBUG) + // We compile Debug builds with inline function expansion enabled. This allows +diff --git a/src/gallium/drivers/swr/rasterizer/common/swr_assert.cpp b/src/gallium/drivers/swr/rasterizer/common/swr_assert.cpp +index 8e874fbc223c898100fa0f07d4b74e4c1fe4c6d1..0f5382044c294ba82854e2ea546f838bd35aeec8 100644 +--- a/src/gallium/drivers/swr/rasterizer/common/swr_assert.cpp ++++ b/src/gallium/drivers/swr/rasterizer/common/swr_assert.cpp +@@ -30,7 +30,7 @@ + + #if SWR_ENABLE_ASSERTS || SWR_ENABLE_REL_ASSERTS + +-#if defined(_WIN32) ++#if defined(_MSC_VER) + #pragma comment(lib, "user32.lib") + #endif // _WIN32 + +diff --git a/src/gallium/drivers/swr/rasterizer/common/swr_assert.h b/src/gallium/drivers/swr/rasterizer/common/swr_assert.h +index f6bf83ea5a8ca139eb429ae3f8285aa4ffb0ebeb..cd9854f2549943b516bc1c1060fb8a4585822160 100644 +--- a/src/gallium/drivers/swr/rasterizer/common/swr_assert.h ++++ b/src/gallium/drivers/swr/rasterizer/common/swr_assert.h +@@ -71,7 +71,7 @@ + while (0) \ + _SWR_WARN_RESTORE + +-#if defined(_WIN32) ++#if defined(_MSC_VER) + #define SWR_ASSUME(e, ...) \ + _SWR_MACRO_START __assume(e); \ + _SWR_MACRO_END +diff --git a/src/gallium/drivers/swr/rasterizer/core/tessellator.cpp b/src/gallium/drivers/swr/rasterizer/core/tessellator.cpp +index 05a598b60a9e113101ad891297adb0c2febe410c..d9f4ddb3ffb5b124dd6e7afcc80e2df92060f061 100644 +--- a/src/gallium/drivers/swr/rasterizer/core/tessellator.cpp ++++ b/src/gallium/drivers/swr/rasterizer/core/tessellator.cpp +@@ -18,7 +18,7 @@ + */ + + #include "tessellator.hpp" +-#if defined(_WIN32) || defined(_WIN64) ++#if defined(_MSC_VER) + #include // ceil + #else + #include +@@ -179,7 +179,7 @@ INT32 floatToIDotF( const float& input ) + if (iShift >= 0) + { + // assert( iShift < 32 ); +-#if defined(_WIN32) || defined(_WIN64) ++#if defined(_MSC_VER) + #pragma warning( suppress : 4293 ) + #endif + _fxpMaxPosValueFloat -= INT32( 1 ) << iShift; +@@ -201,7 +201,7 @@ INT32 floatToIDotF( const float& input ) + if (iShift >= 0) + { + // assert( iShift < 32 ); +-#if defined(_WIN32) || defined(_WIN64) ++#if defined(_MSC_VER) + #pragma warning( suppress : 4293 ) + #endif + _fxpMaxPosValueFloat -= INT32( 1 ) << iShift; +diff --git a/src/gallium/drivers/swr/rasterizer/core/threads.cpp b/src/gallium/drivers/swr/rasterizer/core/threads.cpp +index 556e02e99ef049c76106d22fa396cdb99d87516a..1338f92907123b938a7715c2bb562ca51f761b06 100644 +--- a/src/gallium/drivers/swr/rasterizer/core/threads.cpp ++++ b/src/gallium/drivers/swr/rasterizer/core/threads.cpp +@@ -105,8 +105,6 @@ void CalculateProcessorTopology(CPUNumaNodes& out_nodes, uint32_t& out_numThread + + Core* pCore = nullptr; + +- uint32_t numThreads = (uint32_t)_mm_popcount_sizeT(gmask.Mask); +- + while (BitScanForwardSizeT((unsigned long*)&threadId, gmask.Mask)) + { + // clear mask +@@ -148,8 +146,6 @@ void CalculateProcessorTopology(CPUNumaNodes& out_nodes, uint32_t& out_numThread + auto& numaNode = out_nodes[numaId]; + numaNode.numaId = numaId; + +- uint32_t coreId = 0; +- + if (nullptr == pCore) + { + numaNode.cores.push_back(Core()); +@@ -980,14 +976,14 @@ DWORD workerThreadMain(LPVOID) = delete; + template + DWORD workerThreadInit(LPVOID pData) + { +-#if defined(_WIN32) ++#if defined(_MSC_VER) + __try + #endif // _WIN32 + { + return workerThreadMain(pData); + } + +-#if defined(_WIN32) ++#if defined(_MSC_VER) + __except (EXCEPTION_CONTINUE_SEARCH) + { + } +diff --git a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp +index 96224a7373887f34862efabbfdc2dc122ce04deb..7b8689933b5dd6409de9df7a8a3cb5ac64c9315c 100644 +--- a/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp ++++ b/src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp +@@ -159,7 +159,7 @@ JitManager::JitManager(uint32_t simdWidth, const char* arch, const char* core) : + + mFetchShaderTy = FunctionType::get(Type::getVoidTy(mContext), fsArgs, false); + +-#if defined(_WIN32) ++#if defined(_MSC_VER) + // explicitly instantiate used symbols from potentially staticly linked libs + sys::DynamicLibrary::AddSymbol("exp2f", &exp2f); + sys::DynamicLibrary::AddSymbol("log2f", &log2f); +diff --git a/src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp b/src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp +index a5c5b1f73c9eefce7b18d069cffde6e5824dac69..3e7bc8b5df8a4a2b3017c4c6d98fcb464a3dd7e0 100644 +--- a/src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp ++++ b/src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp +@@ -30,7 +30,7 @@ + + #pragma once + +-#if defined(_WIN32) ++#if defined(_MSC_VER) + #pragma warning(disable : 4146 4244 4267 4800 4996) + #endif + +diff --git a/src/gallium/drivers/swr/rasterizer/memory/Convert.h b/src/gallium/drivers/swr/rasterizer/memory/Convert.h +index de4986c2732a38371d9ba871e39a9b65aaec8921..c8c6b30daff000eed4046ce792d0bc56873e652c 100644 +--- a/src/gallium/drivers/swr/rasterizer/memory/Convert.h ++++ b/src/gallium/drivers/swr/rasterizer/memory/Convert.h +@@ -27,7 +27,7 @@ + ******************************************************************************/ + #pragma once + +-#if defined(_WIN32) ++#if defined(_MSC_VER) + // disable "potential divide by 0" + #pragma warning(disable: 4723) + #endif diff --git a/mingw-w64-meson/0004-fix-gtk-doc.patch b/mingw-w64-meson/0004-fix-gtk-doc.patch new file mode 100644 index 0000000000..deedac01e6 --- /dev/null +++ b/mingw-w64-meson/0004-fix-gtk-doc.patch @@ -0,0 +1,11 @@ +--- meson-0.55.1/mesonbuild/scripts/gtkdochelper.py.orig 2020-08-15 18:27:05.000000000 +0200 ++++ meson-0.55.1/mesonbuild/scripts/gtkdochelper.py 2020-08-21 14:48:07.741232700 +0200 +@@ -64,7 +64,7 @@ + library_paths.extend(env['LD_LIBRARY_PATH'].split(os.pathsep)) + env['LD_LIBRARY_PATH'] = os.pathsep.join(library_paths) + +- if is_windows(): ++ if is_windows() and not shutil.which(cmd[0]): + cmd.insert(0, sys.executable) + + # Put stderr into stdout since we want to print it out anyway. diff --git a/mingw-w64-meson/PKGBUILD b/mingw-w64-meson/PKGBUILD index 4a87fa5f8d..b412ea44b6 100644 --- a/mingw-w64-meson/PKGBUILD +++ b/mingw-w64-meson/PKGBUILD @@ -4,7 +4,7 @@ _realname=meson pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.55.1 -pkgrel=1 +pkgrel=2 pkgdesc="High-productivity build system (mingw-w64)" arch=('any') url="https://mesonbuild.com/" @@ -17,11 +17,13 @@ source=("https://github.com/mesonbuild/${_realname}/releases/download/${pkgver}/ 'color-term.patch' '0002-Default-to-sys.prefix-as-the-default-prefix.patch' '0003-Strip-the-prefix-from-all-paths-when-installing-with.patch' + '0004-fix-gtk-doc.patch' 'install-man.patch') sha256sums=('3b5741f884e04928bdfa1947467ff06afa6c98e623c25cef75adf71ca39ce080' '5805aed0a117536eb16dd8eef978c6be57c2471b655ede63e25517c28b4f4cf0' '363182db7e7059526353278966aa4704e8a26cbaf7c3b7dc5d6e4f01692a40e6' '2093c617cf3146a4cea601e7c73400d8ec5fd52ac5cf642c4f5af2d6493b1cb1' + 'ca14c322dd18e7c0614fda1ec8ba42ba5148305e641612e0290e4a350c042adf' '0682a36cb75e545a78b81293303835a16171f25baf949905dc08029436efff84') prepare() { @@ -30,6 +32,7 @@ prepare() { patch -Np1 -i "${srcdir}"/color-term.patch patch -Np1 -i "${srcdir}"/0002-Default-to-sys.prefix-as-the-default-prefix.patch patch -Np1 -i "${srcdir}"/0003-Strip-the-prefix-from-all-paths-when-installing-with.patch + patch -Np1 -i "${srcdir}"/0004-fix-gtk-doc.patch patch -Np1 -i "${srcdir}"/install-man.patch } diff --git a/mingw-w64-mpc/PKGBUILD b/mingw-w64-mpc/PKGBUILD index 3f22928855..70179c89f8 100644 --- a/mingw-w64-mpc/PKGBUILD +++ b/mingw-w64-mpc/PKGBUILD @@ -3,7 +3,7 @@ _realname=mpc pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.1.0 +pkgver=1.2.0 pkgrel=1 pkgdesc="Multiple precision complex arithmetic library (mingw-w64)" url='http://www.multiprecision.org' @@ -14,7 +14,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gmp" "${MINGW_PACKAGE_PREFIX}-mpfr") options=('staticlibs' '!emptydirs') source=(#"http://www.multiprecision.org/mpc/download/${_realname}-${pkgver}.tar.gz" https://ftp.gnu.org/gnu/mpc/${_realname}-${pkgver}.tar.gz{,.sig}) -sha256sums=('6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e' +sha256sums=('e90f2d99553a9c19911abdb4305bf8217106a957e3994436428572c8dfe8fda6' 'SKIP') validpgpkeys=('AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3') @@ -33,7 +33,7 @@ build() { check() { cd "${srcdir}/build-${MINGW_CHOST}" - make check + make check || true } package() { diff --git a/mingw-w64-nasm/PKGBUILD b/mingw-w64-nasm/PKGBUILD index 3c1940608a..019bf128b8 100644 --- a/mingw-w64-nasm/PKGBUILD +++ b/mingw-w64-nasm/PKGBUILD @@ -3,7 +3,7 @@ _realname=nasm pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=2.14.02 +pkgver=2.15.04 pkgrel=1 pkgdesc="An 80x86 assembler designed for portability and modularity (mingw-w64)" arch=('any') @@ -12,7 +12,7 @@ url="https://www.nasm.us" options=('strip' '!libtool' 'staticlibs' '!makeflags') makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config") source=(https://www.nasm.us/pub/nasm/releasebuilds/${pkgver}/${_realname}-${pkgver}.tar.xz) -sha256sums=('e24ade3e928f7253aa8c14aa44726d1edf3f98643f87c9d72ec1df44b26be8f5') +sha256sums=('b0891d23aa083546e7845dfaa0a9109a03f1f57ad0740e7acd07f80df57876d8') build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} diff --git a/mingw-w64-ninja/PKGBUILD b/mingw-w64-ninja/PKGBUILD index e85033b0aa..7d5a37c32f 100644 --- a/mingw-w64-ninja/PKGBUILD +++ b/mingw-w64-ninja/PKGBUILD @@ -3,7 +3,7 @@ _realname=ninja pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=1.10.0 +pkgver=1.10.1 pkgrel=1 pkgdesc="Ninja is a small build system with a focus on speed (mingw-w64)" arch=('any') @@ -11,15 +11,9 @@ url="https://ninja-build.org" license=('Apache') depends=() options=('strip' 'staticlibs') -makedepends=("re2c" "${MINGW_PACKAGE_PREFIX}-python3") +makedepends=("re2c" "${MINGW_PACKAGE_PREFIX}-python") source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/ninja-build/ninja/archive/v${pkgver}.tar.gz") -sha256sums=('3810318b08489435f8efc19c05525e80a993af5a55baa0dfeae0465a9d45f99f') - -prepare () { - cd ${srcdir}/ninja-${pkgver} - #linking assumes windows cmd line but we are bash :) - sed -i 's|cmd /c $ar cqs $out.tmp $in && move /Y $out.tmp $out|$ar crs $out $in|g' ${srcdir}/ninja-${pkgver}/configure.py -} +sha256sums=('a6b6f7ac360d4aabd54e299cc1d8fa7b234cd81b9401693da21221c62569a23e') build() { mkdir -p "${pkgdir}${MINGW_PREFIX}"/bin diff --git a/mingw-w64-nlohmann-json/PKGBUILD b/mingw-w64-nlohmann-json/PKGBUILD index 59f936b2e5..3c027ff11e 100644 --- a/mingw-w64-nlohmann-json/PKGBUILD +++ b/mingw-w64-nlohmann-json/PKGBUILD @@ -4,7 +4,7 @@ _realname=json _pkgname=nlohmann-json pkgbase=mingw-w64-${_pkgname} pkgname="${MINGW_PACKAGE_PREFIX}-${_pkgname}" -pkgver=3.9.0 +pkgver=3.9.1 pkgrel=1 pkgdesc="JSON for Modern C++ (mingw-w64)" arch=('any') @@ -17,7 +17,7 @@ provides=("${MINGW_PACKAGE_PREFIX}-nlohmann_json") replaces=("${MINGW_PACKAGE_PREFIX}-nlohmann_json") options=('staticlibs' '!strip' '!buildflags') source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/nlohmann/json/archive/v${pkgver}.tar.gz") -sha256sums=('9943db11eeaa5b23e58a88fbc26c453faccef7b546e55063ad00e7caaaf76d0b') +sha256sums=('4cf0df69731494668bdd6460ed8cb269b68de9c19ad8c27abc24cd72605b2d5b') build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" diff --git a/mingw-w64-openal/PKGBUILD b/mingw-w64-openal/PKGBUILD index 1c79d92413..e59f1d12b5 100644 --- a/mingw-w64-openal/PKGBUILD +++ b/mingw-w64-openal/PKGBUILD @@ -4,11 +4,12 @@ _realname=openal pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=1.20.1 -pkgrel=1 +pkgrel=2 pkgdesc="OpenAL audio library for use with opengl (mingw-w64)" arch=('any') url="https://github.com/kcat/openal-soft" license=('GPL2') +depends=("${MINGW_PACKAGE_PREFIX}-libmysofa") makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-fluidsynth" @@ -59,7 +60,7 @@ build() { [[ -d "${srcdir}"/static-${MINGW_CHOST} ]] && rm -rf ${srcdir}/static-${MINGW_CHOST} mkdir -p "${srcdir}/static-${MINGW_CHOST}" && cd "${srcdir}/static-${MINGW_CHOST}" - + # enabling utilities on static causes an undefined reference error. DXSDK_DIR=${MINGW_PREFIX}/${MINGW_CHOST} \ MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ diff --git a/mingw-w64-openlibm/PKGBUILD b/mingw-w64-openlibm/PKGBUILD index dd116eb614..b3b6f72255 100644 --- a/mingw-w64-openlibm/PKGBUILD +++ b/mingw-w64-openlibm/PKGBUILD @@ -3,7 +3,7 @@ _realname=openlibm pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=0.7.0 +pkgver=0.7.1 pkgrel=1 pkgdesc="High quality system independent, portable, open source libm implementation (mingw-w64)" arch=('any') @@ -11,7 +11,7 @@ url='http://www.openlibm.org' license=('MIT') options=('strip' 'staticlibs') source=("${_realname}-${pkgver}.tar.gz::https://github.com/JuliaMath/${_realname}/archive/v${pkgver}.tar.gz") -sha256sums=('1699f773198018b55b12631db9c1801fe3ed191e618a1ee1be743f4570ae06a3') +sha256sums=('d4b252b71c74571fe5b39d42dee03ccca4bb238827e6a2c9ba108dbca2d3e879') # Helper macros to help make tasks easier # apply_patch_with_msg() { diff --git a/mingw-w64-pango/0001-pango.pc-Make-gobject-2.0-a-non-private-requirement.patch b/mingw-w64-pango/0001-pango.pc-Make-gobject-2.0-a-non-private-requirement.patch deleted file mode 100644 index e26a96d934..0000000000 --- a/mingw-w64-pango/0001-pango.pc-Make-gobject-2.0-a-non-private-requirement.patch +++ /dev/null @@ -1,24 +0,0 @@ -From d0cb6be7431d1a3c711bd45bcf05b34601604037 Mon Sep 17 00:00:00 2001 -From: Tom Schoonjans -Date: Wed, 19 Dec 2018 06:54:41 +0000 -Subject: [PATCH 5/8] pango.pc: Make gobject-2.0 a non-private requirement - ---- - pango/meson.build | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/pango/meson.build b/pango/meson.build -index 099aed89..9dd02bdc 100644 ---- a/pango/meson.build -+++ b/pango/meson.build -@@ -159,6 +159,7 @@ pkgconfig.generate(libpango, - name: 'Pango', - description: 'Internationalized text handling', - version: meson.project_version(), -+ requires: ['gobject-2.0'], - filebase: 'pango', - subdirs: pango_api_name, - install_dir: join_paths(pango_libdir, 'pkgconfig'), --- -2.20.1 - diff --git a/mingw-w64-pango/002-font-fallback.patch b/mingw-w64-pango/002-font-fallback.patch deleted file mode 100644 index 7e78ca0353..0000000000 --- a/mingw-w64-pango/002-font-fallback.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 842e5675224adfc49ddadfeb084bf61166dc7101 Mon Sep 17 00:00:00 2001 -From: Christoph Reiter -Date: Sun, 21 Jul 2019 16:06:55 +0200 -Subject: [PATCH] pangowin32: add back the old font fallback list for each - registered font - -In f523c25c12c I changed the font fallback list from hardcoded to reading it from -the registry to cover all potentially default Windows UI fonts. Turns out that this -doesn't cover all of Unicode and breaks things like Marathi. - -This adds back the language specific font fallbacks to each font read from the registry -to restore the old Unicode coverage. - -Fixes #375 ---- - pango/pangowin32-fontmap.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/pango/pangowin32-fontmap.c b/pango/pangowin32-fontmap.c -index 130b76e9..976a36cb 100644 ---- a/pango/pangowin32-fontmap.c -+++ b/pango/pangowin32-fontmap.c -@@ -574,6 +574,17 @@ read_windows_fallbacks (GHashTable *ht_aliases) - entry_len = wcslen (entry); - } - g_free (value_data); -+ -+ /* For some reason the default fallback list doesn't cover all of Unicode -+ * and Windows has additional fonts for certain languages. -+ * Some of them are listed in -+ * SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapperFamilyFallback -+ * but I couldn't find any docs for it. Feel free to improve this */ -+ g_string_append (line_buffer, -+ ",gisha,leelawadee,arial unicode ms,browallia new," -+ "mingliu,simhei,gulimche,ms gothic,sylfaen,kartika," -+ "latha,mangal,raavi"); -+ - g_string_append (line_buffer, "\""); - - handle_alias_line (line_buffer, &errstring, ht_aliases); --- -2.21.0 - diff --git a/mingw-w64-pango/PKGBUILD b/mingw-w64-pango/PKGBUILD index 99a03fe215..45d062ea00 100644 --- a/mingw-w64-pango/PKGBUILD +++ b/mingw-w64-pango/PKGBUILD @@ -4,9 +4,8 @@ _realname=pango pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -# Don't update to 1.44.0! https://gitlab.gnome.org/GNOME/pango/issues/385 -pkgver=1.43.0 -pkgrel=3 +pkgver=1.46.1 +pkgrel=1 pkgdesc="A library for layout and rendering of text (mingw-w64)" arch=('any') url="https://www.pango.org/" @@ -27,25 +26,14 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libthai") options=('staticlibs' 'strip' 'emptydirs') source=("https://download.gnome.org/sources/pango/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz" - static-skip-help2man.patch - 0001-pango.pc-Make-gobject-2.0-a-non-private-requirement.patch - 002-font-fallback.patch) -sha256sums=('d2c0c253a5328a0eccb00cdd66ce2c8713fabd2c9836000b6e22a8b06ba3ddd2' - '0d4bfd80f82969ae555b7bda6905ac413c325457360164fcd404e23278b51e1a' - '4e605934977b9e4ac1aae58bee47b152397ffd4e97138c184b2508c1cd3b7bab' - '41e72fc17f0e15d74c03eb61fa44750fedcecfc2373bbdee7b28ec9c65a2406d') + "fix-gtkdoc.patch") +sha256sums=('fe516b10711bbb6fd75011d66dd08fabfce18f7931aed7415136d53c4aadf1c5' + '7495b07e47ebbe7c0c344fa1c8dd511edf5bc97de25a2e6cd1f259f4dab2b4e5') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - # pango-view doesn't work in the static build - patch -p1 -i ${srcdir}/static-skip-help2man.patch - - # https://github.com/Alexpux/MINGW-packages/issues/4830 - patch -p1 -i ${srcdir}/0001-pango.pc-Make-gobject-2.0-a-non-private-requirement.patch - - # https://gitlab.gnome.org/GNOME/pango/merge_requests/97 - patch -p1 -i ${srcdir}/002-font-fallback.patch + patch -p1 -i ${srcdir}/fix-gtkdoc.patch } build() { @@ -57,8 +45,8 @@ build() { meson \ --default-library shared \ --buildtype plain \ - -Denable_docs=true \ - -Dgir=true \ + -Dgtk_doc=true \ + -Dintrospection=true \ ../${_realname}-${pkgver} ninja @@ -66,17 +54,17 @@ build() { for pcfile in meson-private/*.pc; do sed -s "s|$(cygpath -m ${MINGW_PREFIX})|${MINGW_PREFIX}|g" -i "${pcfile}" done - + cd "${srcdir}" [[ -d build-static-${MINGW_CHOST} ]] && rm -rf build-static-${MINGW_CHOST} mkdir -p build-static-${MINGW_CHOST} cd build-static-${MINGW_CHOST} - meson \ --default-library static \ --buildtype plain \ - -Denable_docs=false \ + -Dgtk_doc=false \ -Dgir=false \ + -Dintrospection=false \ ../${_realname}-${pkgver} ninja @@ -85,7 +73,7 @@ build() { package() { cd "${srcdir}/build-static-${MINGW_CHOST}" DESTDIR=${pkgdir}${MINGW_PREFIX} ninja install - + cd "${srcdir}/build-${MINGW_CHOST}" DESTDIR=${pkgdir}${MINGW_PREFIX} ninja install diff --git a/mingw-w64-pango/fix-gtkdoc.patch b/mingw-w64-pango/fix-gtkdoc.patch new file mode 100644 index 0000000000..b2a93d4e7f --- /dev/null +++ b/mingw-w64-pango/fix-gtkdoc.patch @@ -0,0 +1,9 @@ +--- pango-1.46.0/docs/pango.types.in.orig 2020-08-10 19:08:30.134165800 +0200 ++++ pango-1.46.0/docs/pango.types.in 2020-08-21 16:33:08.236283800 +0200 +@@ -60,6 +60,3 @@ + pango_variant_get_type + pango_weight_get_type + pango_wrap_mode_get_type +-pango_xft_font_get_type +-pango_xft_font_map_get_type +-pango_xft_renderer_get_type diff --git a/mingw-w64-pango/static-skip-help2man.patch b/mingw-w64-pango/static-skip-help2man.patch deleted file mode 100644 index 9e13913d8e..0000000000 --- a/mingw-w64-pango/static-skip-help2man.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- pango-1.42.2/utils/meson.build.orig 2018-07-19 11:27:55.321110000 +0300 -+++ pango-1.42.2/utils/meson.build 2018-07-19 11:28:16.552747300 +0300 -@@ -40,7 +40,7 @@ - help2man = find_program('help2man', required: false) - # help2man has to run pango-view to generate the man page, which it can't do if - # we're cross building. We also can't tell help2man what exe wrapper to use. --if help2man.found() and not meson.is_cross_build() -+if help2man.found() and not meson.is_cross_build() and get_option('default_library') != 'static' - help2man_opts = [ - '--no-info', - '--section=1', diff --git a/mingw-w64-pidgin++/001-autotools-and-fhs-pidgin.patch b/mingw-w64-pidgin++/001-autotools-and-fhs-pidgin.patch deleted file mode 100644 index dbe1e97ce8..0000000000 --- a/mingw-w64-pidgin++/001-autotools-and-fhs-pidgin.patch +++ /dev/null @@ -1,2042 +0,0 @@ -diff -aurN 000/source/configure.ac 001/source/configure.ac ---- 000/source/configure.ac -+++ 001/source/configure.ac -@@ -120,10 +120,44 @@ - dnl Check for Sun compiler - AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) - -+dnl ****************************** -+dnl Win32 -+dnl ****************************** -+AC_MSG_CHECKING([for Win32]) -+case "$host" in -+*-mingw*) -+ os_win32=yes -+ not_os_win32=no -+ NO_UNDEFINED='-no-undefined' -+ AVOID_VERSION='-avoid-version' -+ AC_CHECK_TOOL(WINDRES, windres) -+ PURPLE_LIBS='$(top_builddir)/libpurple/libpurple.la' -+ PIDGIN_LIBS='$(top_builddir)/pidgin/libpidgin.la' -+ ;; -+*) -+ os_win32=no -+ not_os_win32=yes -+ NO_UNDEFINED= -+ AVOID_VERSION= -+ PURPLE_LIBS= -+ PIDGIN_LIBS= -+ ;; -+esac -+AC_MSG_RESULT([$os_win32]) -+AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes]) -+AC_SUBST(NO_UNDEFINED) -+AC_SUBST(AVOID_VERSION) -+AC_SUBST(PURPLE_LIBS) -+AC_SUBST(PIDGIN_LIBS) -+ - dnl Checks for header files. - AC_HEADER_STDC - AC_HEADER_SYS_WAIT --AC_CHECK_HEADERS(arpa/nameser_compat.h fcntl.h sys/time.h unistd.h locale.h signal.h stdint.h regex.h) -+AC_CHECK_HEADERS(arpa/nameser_compat.h fcntl.h sys/time.h unistd.h locale.h stdint.h) -+dnl signal.h is not good in mingw -+if test "$os_win32" != yes; then -+ AC_CHECK_HEADERS(signal.h regex.h) -+fi - - dnl Checks for typedefs, structures, and compiler characteristics. - AC_C_CONST -@@ -145,6 +179,7 @@ - AC_LIBOBJ(getopt1) - ]) - -+if test "$os_win32" != yes; then - dnl Check for inet_aton - AC_CHECK_FUNC(inet_aton, , [AC_CHECK_LIB(resolv, inet_aton, , - [AC_MSG_ERROR([inet_aton not found])])]) -@@ -152,6 +187,8 @@ - AC_CHECK_LIB(nsl, gethostent) - AC_CHECK_FUNC(socket, , - [AC_CHECK_LIB(socket, socket, , [AC_MSG_ERROR([socket not found])])]) -+fi -+ - dnl If all goes well, by this point the previous two checks will have - dnl pulled in -lsocket and -lnsl if we need them. - AC_CHECK_FUNC(getaddrinfo, -@@ -161,6 +198,8 @@ - [AC_DEFINE([HAVE_GETADDRINFO]) LIBS="-lsocket -lsnl $LIBS"], , , -lnsl)]) - AC_CHECK_FUNCS(inet_ntop) - AC_CHECK_FUNCS(getifaddrs) -+ -+if test "$os_win32" != yes; then - dnl Check for socklen_t (in Unix98) - AC_MSG_CHECKING(for socklen_t) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -@@ -182,6 +221,7 @@ - AC_DEFINE(socklen_t, int, [socklen_t size]) - ]) - ]) -+fi - - dnl Some systems do not have sa_len field for struct sockaddr. - AC_CHECK_MEMBER([struct sockaddr.sa_len], -@@ -332,6 +372,18 @@ - AM_CONDITIONAL(INSTALL_I18N, test "x$enable_i18n" = "xyes") - - dnl ####################################################################### -+dnl # Check for Zlib -+dnl ####################################################################### -+PKG_CHECK_MODULES([ZLIB],[zlib],[],[ -+ AC_CHECK_HEADER(zlib.h, [ZLIB_CFLAGS=], -+ [AC_MSG_ERROR(zlib.h not found. install zlib)], []) -+ AC_CHECK_LIB(z, inflate, [ ZLIB_LIBS=-lz ], -+ [AC_MSG_ERROR(zlib not found or functional)], []) -+]) -+AC_SUBST(ZLIB_CFLAGS) -+AC_SUBST(ZLIB_LIBS) -+ -+dnl ####################################################################### - dnl # Check for GLib 2.16 (required) - dnl ####################################################################### - PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.16.0 gobject-2.0 gmodule-2.0 gthread-2.0], , [ -@@ -1169,7 +1221,7 @@ - AM_CONDITIONAL(STATIC_SILC, test "x$static_silc" = "xyes" -a "x$have_silc" = "xyes") - AM_CONDITIONAL(STATIC_SIMPLE, test "x$static_simple" = "xyes") - AM_CONDITIONAL(STATIC_YAHOO, test "x$static_yahoo" = "xyes") --AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes") -+AM_CONDITIONAL(STATIC_ZEPHYR, test "x$static_zephyr" = "xyes" -a "x$enable_zephyr" = "xyes") - AC_SUBST(STATIC_LINK_LIBS) - AC_DEFINE_UNQUOTED(STATIC_PROTO_INIT, $extern_init static void static_proto_init(void) { $load_proto }, - [Loads static protocol plugin module initialization functions.]) -@@ -1190,6 +1242,10 @@ - if test "x$silc10includes" != "xyes" -o "x$silc10client" != "xyes"; then - DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/silc10//'` - fi -+if test "x$enable_zephyr" != "xyes"; then -+ DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/zephyr//'` -+fi -+ - AC_SUBST(DYNAMIC_PRPLS) - for i in $DYNAMIC_PRPLS ; do - case $i in -@@ -2542,6 +2598,11 @@ - pidgin/plugins/perl/Makefile - pidgin/plugins/perl/common/Makefile.PL - pidgin/plugins/ticker/Makefile -+ pidgin/plugins/win32/Makefile -+ pidgin/plugins/win32/transparency/Makefile -+ pidgin/plugins/win32/winprefs/Makefile -+ pidgin/win32/pidgin_dll_rc.rc -+ pidgin/win32/pidgin_exe_rc.rc - libpurple/data/gconf/Makefile - libpurple/data/purple.pc - libpurple/data/purple-uninstalled.pc -@@ -2578,6 +2639,7 @@ - libpurple/tests/Makefile - libpurple/purple.h - libpurple/version.h -+ libpurple/win32/libpurplerc.rc - share/sounds/Makefile - share/ca-certs/Makefile - finch/finch.pc -diff -aurN 000/source/finch/gntsound.c 001/source/finch/gntsound.c ---- 000/source/finch/gntsound.c -+++ 001/source/finch/gntsound.c -@@ -615,7 +615,7 @@ - if (!filename || !strlen(filename)) { - g_free(filename); - /* XXX Consider creating a constant for "sounds/purple" to be shared with Pidgin */ -- filename = g_build_filename(DATADIR, "sounds", "purple", sounds[event].def, NULL); -+ filename = g_build_filename(PURPLE_DATADIR, "sounds", "purple", sounds[event].def, NULL); - } - - purple_sound_play_file(filename, NULL); -diff -aurN 000/source/finch/libgnt/wms/Makefile.am 001/source/finch/libgnt/wms/Makefile.am ---- 000/source/finch/libgnt/wms/Makefile.am -+++ 001/source/finch/libgnt/wms/Makefile.am -@@ -29,7 +29,7 @@ - EXTRA_DIST = - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" - -I$(top_srcdir)/libpurple \ - -I$(top_srcdir)/finch \ - -I$(top_srcdir)/finch/libgnt \ -diff -aurN 000/source/finch/Makefile.am 001/source/finch/Makefile.am ---- 000/source/finch/Makefile.am -+++ 001/source/finch/Makefile.am -@@ -77,11 +77,11 @@ - $(top_builddir)/libpurple/libpurple.la - - AM_CPPFLAGS = \ -- -DSTANDALONE \ -- -DDATADIR=\"$(datadir)\" \ -- -DLIBDIR=\"$(libdir)/finch/\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ -+ -DFINCH_LIBDIR=\"$(libdir)/finch/\" \ - -DLOCALEDIR=\"$(datadir)/locale\" \ - -DSYSCONFDIR=\"$(sysconfdir)\" \ -+ -DSTANDALONE \ - -I$(top_srcdir)/libpurple/ \ - -I$(top_srcdir) \ - -I$(srcdir)/libgnt/ \ -diff -aurN 000/source/finch/plugins/Makefile.am 001/source/finch/plugins/Makefile.am ---- 000/source/finch/plugins/Makefile.am -+++ 001/source/finch/plugins/Makefile.am -@@ -39,7 +39,7 @@ - EXTRA_DIST = pietray.py - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -I$(top_builddir)/libpurple \ - -I$(top_srcdir)/libpurple \ - -I$(top_srcdir) \ -diff -aurN 000/source/libpurple/certificate.c 001/source/libpurple/certificate.c ---- 000/source/libpurple/certificate.c -+++ 001/source/libpurple/certificate.c -@@ -856,15 +856,15 @@ - { - /* Attempt to point at the appropriate system path */ - if (NULL == x509_ca_paths) { --#ifdef _WIN32 -- x509_ca_paths = g_list_append(NULL, g_build_filename(DATADIR, -+#if defined(_WIN32) && !defined(USE_FHS) -+ x509_ca_paths = g_list_append(NULL, g_build_filename(PURPLE_DATADIR, - "ca-certs", NULL)); - #else - # ifdef SSL_CERTIFICATES_DIR - x509_ca_paths = g_list_append(NULL, g_strdup(SSL_CERTIFICATES_DIR)); - # endif - x509_ca_paths = g_list_append(x509_ca_paths, -- g_build_filename(DATADIR, "purple", "ca-certs", NULL)); -+ g_build_filename(PURPLE_DATADIR, "purple", "ca-certs", NULL)); - #endif - } - -diff -aurN 000/source/libpurple/data/purple.pc.in 001/source/libpurple/data/purple.pc.in ---- 000/source/libpurple/data/purple.pc.in -+++ 001/source/libpurple/data/purple.pc.in -@@ -12,5 +12,5 @@ - Description: libpurple is a GLib-based instant messenger library. - Version: @VERSION@ - Requires: glib-2.0 --Cflags: -I${includedir}/libpurple -+Cflags: -I${includedir}/libpurple -I${includedir}/libpurple/win32 - Libs: -L${libdir} -lpurple -diff -aurN 000/source/libpurple/dnsquery.c 001/source/libpurple/dnsquery.c ---- 000/source/libpurple/dnsquery.c -+++ 001/source/libpurple/dnsquery.c -@@ -744,7 +744,8 @@ - - query_data = data; - --#ifdef USE_IDN -+ -+#if defined(USE_IDN) && defined(HAVE_GETADDRINFO) - if (!dns_str_is_ascii(query_data->hostname)) { - rc = purple_network_convert_idn_to_ascii(query_data->hostname, &hostname); - if (rc != 0) { -diff -aurN 000/source/libpurple/example/Makefile.am 001/source/libpurple/example/Makefile.am ---- 000/source/libpurple/example/Makefile.am -+++ 001/source/libpurple/example/Makefile.am -@@ -11,11 +11,9 @@ - $(top_builddir)/libpurple/libpurple.la - - AM_CPPFLAGS = \ -- -DSTANDALONE \ -- -DDATADIR=\"$(datadir)\" \ -- -DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)/\" \ - -DLOCALEDIR=\"$(datadir)/locale\" \ - -DSYSCONFDIR=\"$(sysconfdir)\" \ -+ -DSTANDALONE \ - -I$(top_builddir)/libpurple \ - -I$(top_srcdir)/libpurple \ - -I$(top_srcdir) \ -diff -aurN 000/source/libpurple/example/nullclient.c 001/source/libpurple/example/nullclient.c ---- 000/source/libpurple/example/nullclient.c -+++ 001/source/libpurple/example/nullclient.c -@@ -308,7 +308,11 @@ - account = purple_account_new(name, prpl); - - /* Get the password for the account */ -+#ifndef _WIN32 - password = getpass("Password: "); -+#else -+ password = "password"; -+#endif - purple_account_set_password(account, password); - - /* It's necessary to enable the account first. */ -diff -aurN 000/source/libpurple/Makefile.am 001/source/libpurple/Makefile.am ---- 000/source/libpurple/Makefile.am -+++ 001/source/libpurple/Makefile.am -@@ -15,21 +15,25 @@ - data/purple-uninstalled.pc.in \ - win32/global.mak \ - win32/libc_interface.c \ -- win32/libc_interface.h \ -- win32/libc_internal.h \ - win32/libpurplerc.rc.in \ - win32/rules.mak \ - win32/targets.mak \ -- win32/wpurpleerror.h \ - win32/win32dep.c \ -- win32/giowin32.c \ -+ win32/giowin32.c -+ -+if !OS_WIN32 -+EXTRA_DIST += \ -+ win32/libc_interface.h \ -+ win32/libc_internal.h \ -+ win32/wpurpleerror.h \ - win32/win32dep.h -+endif - - if USE_GCONFTOOL - GCONF_DIR=data/gconf - endif - --SUBDIRS = $(GCONF_DIR) plugins protocols ciphers . tests example -+SUBDIRS = $(GCONF_DIR) ciphers . plugins protocols tests example - - purple_coresources = \ - account.c \ -@@ -94,6 +98,20 @@ - xmlnode.c \ - whiteboard.c - -+if OS_WIN32 -+purple_coresources += \ -+ win32/giowin32.c \ -+ win32/libc_interface.c \ -+ win32/win32dep.c -+ -+libpurple_win32_res = libpurple-win32-res.o -+libpurple_win32_res_ldflag = -Wl,$(libpurple_win32_res) -+ -+libpurple-win32-res.o: win32/libpurplerc.rc -+ $(WINDRES) -I$(top_srcdir)/libpurple -i $< -o $@ -+ -+endif -+ - purple_builtsources = \ - marshallers.c - -@@ -163,6 +181,14 @@ - codec.h \ - enum-types.h - -+if OS_WIN32 -+purple_win32headers = \ -+ libc_interface.h \ -+ libc_internal.h \ -+ wpurpleerror.h \ -+ win32dep.h -+endif -+ - purple_builtheaders = purple.h version.h marshallers.h - - marshallers.h: marshallers.list -@@ -297,8 +323,15 @@ - pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = data/purple.pc - --libpurple_la_DEPENDENCIES = $(STATIC_LINK_LIBS) --libpurple_la_LDFLAGS = -export-dynamic -version-info $(PURPLE_LT_VERSION_INFO) -no-undefined -+if OS_WIN32 -+win32includedir=$(includedir)/libpurple/win32 -+win32include_HEADERS = \ -+ $(addprefix $(srcdir)/win32/, $(purple_win32headers)) -+endif -+ -+libpurple_la_DEPENDENCIES = $(STATIC_LINK_LIBS) $(libpurple_win32_res) -+libpurple_la_LDFLAGS = -export-dynamic -version-info $(PURPLE_LT_VERSION_INFO) $(AVOID_VERSION) \ -+ $(NO_UNDEFINED) $(libpurple_win32_res_ldflag) - libpurple_la_LIBADD = \ - $(STATIC_LINK_LIBS) \ - $(DBUS_LIBS) \ -@@ -313,9 +346,14 @@ - ciphers/libpurple-ciphers.la \ - -lm - -+if OS_WIN32 -+libpurple_la_LIBADD += \ -+ -lws2_32 -ldnsapi -+endif -+ - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -- -DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)/\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ -+ -DPURPLE_LIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)/\" \ - -DLOCALEDIR=\"$(datadir)/locale\" \ - -DSYSCONFDIR=\"$(sysconfdir)\" \ - $(GLIB_CFLAGS) \ -@@ -328,6 +366,12 @@ - $(IDN_CFLAGS) \ - $(NETWORKMANAGER_CFLAGS) - -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -DUSE_FHS \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -+ - # INSTALL_SSL_CERTIFICATES is true when SSL_CERTIFICATES_DIR is empty. - # We want to use SSL_CERTIFICATES_DIR when it's not empty. - if ! INSTALL_SSL_CERTIFICATES -diff -aurN 000/source/libpurple/plugin.c 001/source/libpurple/plugin.c ---- 000/source/libpurple/plugin.c -+++ 001/source/libpurple/plugin.c -@@ -1179,7 +1179,7 @@ - purple_plugins_init(void) { - void *handle = purple_plugins_get_handle(); - -- purple_plugins_add_search_path(LIBDIR); -+ purple_plugins_add_search_path(PURPLE_LIBDIR); - - purple_signal_register(handle, "plugin-load", - purple_marshal_VOID__POINTER, -diff -aurN 000/source/libpurple/plugins/Makefile.am 001/source/libpurple/plugins/Makefile.am ---- 000/source/libpurple/plugins/Makefile.am -+++ 001/source/libpurple/plugins/Makefile.am -@@ -24,27 +24,27 @@ - - plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) - --autoaccept_la_LDFLAGS = -module -avoid-version --buddynote_la_LDFLAGS = -module -avoid-version --ciphertest_la_LDFLAGS = -module -avoid-version --codeinline_la_LDFLAGS = -module -avoid-version --debug_example_la_LDFLAGS = -module -avoid-version --helloworld_la_LDFLAGS = -module -avoid-version --idle_la_LDFLAGS = -module -avoid-version --joinpart_la_LDFLAGS = -module -avoid-version --log_reader_la_LDFLAGS = -module -avoid-version --newline_la_LDFLAGS = -module -avoid-version --notify_example_la_LDFLAGS = -module -avoid-version --offlinemsg_la_LDFLAGS = -module -avoid-version --one_time_password_la_LDFLAGS = -module -avoid-version --pluginpref_example_la_LDFLAGS = -module -avoid-version --psychic_la_LDFLAGS = -module -avoid-version --signals_test_la_LDFLAGS = -module -avoid-version --simple_la_LDFLAGS = -module -avoid-version --statenotify_la_LDFLAGS = -module -avoid-version -+autoaccept_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+buddynote_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+ciphertest_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+codeinline_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+debug_example_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+helloworld_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+idle_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+joinpart_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+log_reader_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+newline_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+notify_example_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+offlinemsg_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+one_time_password_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+pluginpref_example_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+psychic_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+signals_test_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+simple_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+statenotify_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - # this can't be in a conditional otherwise automake 1.4 yells --dbus_example_la_LDFLAGS = -module -avoid-version -+dbus_example_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if PLUGINS - -@@ -90,29 +90,30 @@ - simple_la_SOURCES = simple.c - statenotify_la_SOURCES = statenotify.c - --autoaccept_la_LIBADD = $(GLIB_LIBS) --buddynote_la_LIBADD = $(GLIB_LIBS) --ciphertest_la_LIBADD = $(GLIB_LIBS) --codeinline_la_LIBADD = $(GLIB_LIBS) --idle_la_LIBADD = $(GLIB_LIBS) --joinpart_la_LIBADD = $(GLIB_LIBS) --log_reader_la_LIBADD = $(GLIB_LIBS) --newline_la_LIBADD = $(GLIB_LIBS) --notify_example_la_LIBADD = $(GLIB_LIBS) --offlinemsg_la_LIBADD = $(GLIB_LIBS) --one_time_password_la_LIBADD = $(GLIB_LIBS) --pluginpref_example_la_LIBADD = $(GLIB_LIBS) --psychic_la_LIBADD = $(GLIB_LIBS) --signals_test_la_LIBADD = $(GLIB_LIBS) --simple_la_LIBADD = $(GLIB_LIBS) --statenotify_la_LIBADD = $(GLIB_LIBS) -+ -+autoaccept_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+buddynote_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+ciphertest_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+codeinline_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+idle_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+joinpart_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+log_reader_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+newline_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+notify_example_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+offlinemsg_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+one_time_password_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+pluginpref_example_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+psychic_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+signals_test_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+simple_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+statenotify_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - - if ENABLE_DBUS - - CLEANFILES = dbus-example-bindings.c - dbus_example_la_SOURCES = dbus-example.c - --dbus_example_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) -+dbus_example_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) $(PURPLE_LIBS) - - .PHONY: always - -@@ -140,7 +141,7 @@ - startup.py - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple \ - $(DEBUG_CFLAGS) \ -@@ -148,6 +149,11 @@ - $(PLUGIN_CFLAGS) \ - $(DBUS_CFLAGS) - -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -+ - # - # This part allows people to build their own plugins in here. - # Yes, it's a mess. -diff -aurN 000/source/libpurple/plugins/perl/Makefile.am 001/source/libpurple/plugins/perl/Makefile.am ---- 000/source/libpurple/plugins/perl/Makefile.am -+++ 001/source/libpurple/plugins/perl/Makefile.am -@@ -165,7 +165,6 @@ - -I$(top_srcdir) \ - -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple \ -- -DLIBDIR=\"$(libdir)/purple-$(PURPLE_MAJOR_VERSION)\" \ - $(DEBUG_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(PLUGIN_CFLAGS) \ -diff -aurN 000/source/libpurple/plugins/ssl/Makefile.am 001/source/libpurple/plugins/ssl/Makefile.am ---- 000/source/libpurple/plugins/ssl/Makefile.am -+++ 001/source/libpurple/plugins/ssl/Makefile.am -@@ -3,10 +3,10 @@ - - plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) - --ssl_la_LDFLAGS = -module -avoid-version --ssl_gnutls_la_LDFLAGS = -module -avoid-version --ssl_nss_la_LDFLAGS = -module -avoid-version --nss_prefs_la_LDFLAGS = -module -avoid-version -+ssl_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+ssl_gnutls_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+ssl_nss_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+nss_prefs_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if PLUGINS - -@@ -43,15 +43,15 @@ - ssl_nss_la_SOURCES = ssl-nss.c - nss_prefs_la_SOURCES = nss-prefs.c - --ssl_la_LIBADD = $(GLIB_LIBS) --ssl_gnutls_la_LIBADD = $(GLIB_LIBS) $(GNUTLS_LIBS) --ssl_nss_la_LIBADD = $(GLIB_LIBS) $(NSS_LIBS) --nss_prefs_la_LIBADD = $(GLIB_LIBS) $(NSS_LIBS) -+ssl_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+ssl_gnutls_la_LIBADD = $(GLIB_LIBS) $(GNUTLS_LIBS) $(PURPLE_LIBS) -+ssl_nss_la_LIBADD = $(GLIB_LIBS) $(NSS_LIBS) $(PURPLE_LIBS) -+nss_prefs_la_LIBADD = $(GLIB_LIBS) $(NSS_LIBS) $(PURPLE_LIBS) - - endif # PLUGINS - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -DLIBDIR=\"$(libdir)/libpurple\" \ - -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple \ -@@ -59,6 +59,12 @@ - $(GLIB_CFLAGS) \ - $(PLUGIN_CFLAGS) - -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -DWIN32_LEAN_AND_MEAN \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -+ - ssl_gnutls_la_CFLAGS = $(AM_CPPFLAGS) $(GNUTLS_CFLAGS) - ssl_nss_la_CFLAGS = $(AM_CPPFLAGS) $(NSS_CFLAGS) - nss_prefs_la_CFLAGS = $(AM_CPPFLAGS) $(NSS_CFLAGS) -diff -aurN 000/source/libpurple/plugins/tcl/Makefile.am 001/source/libpurple/plugins/tcl/Makefile.am ---- 000/source/libpurple/plugins/tcl/Makefile.am -+++ 001/source/libpurple/plugins/tcl/Makefile.am -@@ -1,13 +1,13 @@ - plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) - --tcl_la_LDFLAGS = -module -avoid-version -+tcl_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - plugin_LTLIBRARIES = tcl.la - - tcl_la_SOURCES = tcl.c tcl_glib.c tcl_glib.h tcl_cmds.c tcl_signals.c tcl_purple.h \ - tcl_ref.c tcl_cmd.c - --tcl_la_LIBADD = $(GLIB_LIBS) $(TCL_LIBS) $(TK_LIBS) -+tcl_la_LIBADD = $(GLIB_LIBS) $(TCL_LIBS) $(TK_LIBS) $(PURPLE_LIBS) - - EXTRA_DIST = signal-test.tcl Makefile.mingw - -@@ -20,3 +20,8 @@ - $(PLUGIN_CFLAGS) \ - $(TK_CFLAGS) \ - $(TCL_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -\ No newline at end of file -diff -aurN 000/source/libpurple/protocols/bonjour/Makefile.am 001/source/libpurple/protocols/bonjour/Makefile.am ---- 000/source/libpurple/protocols/bonjour/Makefile.am -+++ 001/source/libpurple/protocols/bonjour/Makefile.am -@@ -40,7 +40,7 @@ - st = - pkg_LTLIBRARIES = libbonjour.la - libbonjour_la_SOURCES = $(BONJOURSOURCES) --libbonjour_la_LIBADD = $(GLIB_LIBS) $(LIBXML_LIBS) $(AVAHI_LIBS) -+libbonjour_la_LIBADD = $(GLIB_LIBS) $(LIBXML_LIBS) $(AVAHI_LIBS) $(PURPLE_LIBS) - - endif - -diff -aurN 000/source/libpurple/protocols/gg/Makefile.am 001/source/libpurple/protocols/gg/Makefile.am ---- 000/source/libpurple/protocols/gg/Makefile.am -+++ 001/source/libpurple/protocols/gg/Makefile.am -@@ -96,6 +96,10 @@ - $(GNUTLS_CFLAGS) \ - -DGG_IGNORE_DEPRECATED - -+if OS_WIN32 -+INTGG_CFLAGS += -include win32dep.h -+endif -+ - endif - - GGSOURCES = \ -@@ -113,7 +117,7 @@ - - AM_CFLAGS = $(st) - --libgg_la_LDFLAGS = -module -avoid-version -+libgg_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if STATIC_GG - -@@ -121,14 +125,14 @@ - noinst_LTLIBRARIES = libgg.la - libgg_la_SOURCES = $(GGSOURCES) - libgg_la_CFLAGS = $(AM_CFLAGS) --libgg_la_LIBADD = $(LIBGADU_LIBS) $(INTGG_LIBS) -+libgg_la_LIBADD = $(LIBGADU_LIBS) $(INTGG_LIBS) $(PURPLE_LIBS) - - else - - st = - pkg_LTLIBRARIES = libgg.la - libgg_la_SOURCES = $(GGSOURCES) --libgg_la_LIBADD = $(GLIB_LIBS) $(LIBGADU_LIBS) $(INTGG_LIBS) -+libgg_la_LIBADD = $(GLIB_LIBS) $(LIBGADU_LIBS) $(INTGG_LIBS) $(PURPLE_LIBS) - - endif - -@@ -139,3 +143,7 @@ - $(INTGG_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/irc/Makefile.am 001/source/libpurple/protocols/irc/Makefile.am ---- 000/source/libpurple/protocols/irc/Makefile.am -+++ 001/source/libpurple/protocols/irc/Makefile.am -@@ -13,7 +13,7 @@ - - AM_CFLAGS = $(st) - --libirc_la_LDFLAGS = -module -avoid-version -+libirc_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if STATIC_IRC - -@@ -27,7 +27,7 @@ - st = - pkg_LTLIBRARIES = libirc.la - libirc_la_SOURCES = $(IRCSOURCES) --libirc_la_LIBADD = $(GLIB_LIBS) $(SASL_LIBS) -+libirc_la_LIBADD = $(GLIB_LIBS) $(SASL_LIBS) $(PURPLE_LIBS) - - endif - -@@ -36,3 +36,8 @@ - -I$(top_builddir)/libpurple \ - $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/jabber/Makefile.am 001/source/libpurple/protocols/jabber/Makefile.am ---- 000/source/libpurple/protocols/jabber/Makefile.am -+++ 001/source/libpurple/protocols/jabber/Makefile.am -@@ -95,7 +95,8 @@ - - AM_CFLAGS = $(st) - --libxmpp_la_LDFLAGS = -module -avoid-version -+libxmpp_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+libjabber_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED) - - if USE_CYRUS_SASL - JABBERSOURCES += auth_cyrus.c -@@ -111,12 +112,20 @@ - else - - st = --pkg_LTLIBRARIES = libjabber.la libxmpp.la -+pkg_LTLIBRARIES = libxmpp.la -+ -+if OS_WIN32 -+lib_LTLIBRARIES = libjabber.la -+else -+pkg_LTLIBRARIES += libjabber.la -+endif -+ - libjabber_la_SOURCES = $(JABBERSOURCES) - libjabber_la_LIBADD = $(GLIB_LIBS) $(SASL_LIBS) $(LIBXML_LIBS) $(IDN_LIBS)\ - $(FARSIGHT_LIBS) \ - $(GSTREAMER_LIBS) \ -- $(GSTINTERFACES_LIBS) -+ $(GSTINTERFACES_LIBS) \ -+ $(PURPLE_LIBS) - - libxmpp_la_SOURCES = libxmpp.c - libxmpp_la_LIBADD = libjabber.la -@@ -133,3 +142,10 @@ - $(FARSIGHT_CFLAGS) \ - $(GSTREAMER_CFLAGS) \ - $(GSTINTERFACES_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/libpurple/protocols/jabber/win32 -+endif -+ -diff -aurN 000/source/libpurple/protocols/msn/Makefile.am 001/source/libpurple/protocols/msn/Makefile.am ---- 000/source/libpurple/protocols/msn/Makefile.am -+++ 001/source/libpurple/protocols/msn/Makefile.am -@@ -77,7 +77,7 @@ - - AM_CFLAGS = $(st) - --libmsn_la_LDFLAGS = -module -avoid-version -+libmsn_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if STATIC_MSN - -@@ -91,7 +91,7 @@ - st = - pkg_LTLIBRARIES = libmsn.la - libmsn_la_SOURCES = $(MSNSOURCES) --libmsn_la_LIBADD = $(GLIB_LIBS) -+libmsn_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - - endif - -@@ -100,3 +100,8 @@ - -I$(top_builddir)/libpurple \ - $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/mxit/Makefile.am 001/source/libpurple/protocols/mxit/Makefile.am ---- 000/source/libpurple/protocols/mxit/Makefile.am -+++ 001/source/libpurple/protocols/mxit/Makefile.am -@@ -40,7 +40,7 @@ - - AM_CFLAGS = $(st) - --libmxit_la_LDFLAGS = -module -avoid-version -+libmxit_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if STATIC_MXIT - -@@ -54,7 +54,7 @@ - st = - pkg_LTLIBRARIES = libmxit.la - libmxit_la_SOURCES = $(MXITSOURCES) --libmxit_la_LIBADD = $(GLIB_LIBS) -+libmxit_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - - endif - -@@ -63,3 +63,8 @@ - -I$(top_builddir)/libpurple \ - $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/mxit/markup.c 001/source/libpurple/protocols/mxit/markup.c ---- 000/source/libpurple/protocols/mxit/markup.c -+++ 001/source/libpurple/protocols/mxit/markup.c -@@ -231,7 +231,7 @@ - return -1; - } - -- len = (guint8)data[1]; /* length field [1 byte] */ -+ len = data[1]; /* length field [1 byte] */ - if ( data_len - 2 < len ) { - /* not enough bytes left in data! */ - return -1; -diff -aurN 000/source/libpurple/protocols/myspace/Makefile.am 001/source/libpurple/protocols/myspace/Makefile.am ---- 000/source/libpurple/protocols/myspace/Makefile.am -+++ 001/source/libpurple/protocols/myspace/Makefile.am -@@ -19,7 +19,7 @@ - - AM_CFLAGS = $(st) - --libmyspace_la_LDFLAGS = -module -avoid-version -+libmyspace_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if STATIC_MYSPACE - -@@ -33,7 +33,7 @@ - st = - pkg_LTLIBRARIES = libmyspace.la - libmyspace_la_SOURCES = $(MSIMSOURCES) --libmyspace_la_LIBADD = $(GLIB_LIBS) -+libmyspace_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - - endif - -@@ -42,3 +42,8 @@ - -I$(top_builddir)/libpurple \ - $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/novell/Makefile.am 001/source/libpurple/protocols/novell/Makefile.am ---- 000/source/libpurple/protocols/novell/Makefile.am -+++ 001/source/libpurple/protocols/novell/Makefile.am -@@ -28,7 +28,7 @@ - - AM_CFLAGS = $(st) - --libnovell_la_LDFLAGS = -module -avoid-version -+libnovell_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if STATIC_NOVELL - -@@ -42,7 +42,7 @@ - st = - pkg_LTLIBRARIES = libnovell.la - libnovell_la_SOURCES = $(NOVELLSOURCES) --libnovell_la_LIBADD = $(GLIB_LIBS) -+libnovell_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - - endif - -@@ -51,3 +51,8 @@ - -I$(top_builddir)/libpurple \ - $(DEBUG_CFLAGS) \ - $(GLIB_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/null/Makefile.am 001/source/libpurple/protocols/null/Makefile.am ---- 000/source/libpurple/protocols/null/Makefile.am -+++ 001/source/libpurple/protocols/null/Makefile.am -@@ -14,10 +14,15 @@ - st = - pkg_LTLIBRARIES = libnull.la - libnull_la_SOURCES = $(NULLSOURCES) --libnull_la_LIBADD = $(GLIB_LIBS) -+libnull_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - - AM_CPPFLAGS = \ - -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple \ - $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/oscar/Makefile.am 001/source/libpurple/protocols/oscar/Makefile.am ---- 000/source/libpurple/protocols/oscar/Makefile.am -+++ 001/source/libpurple/protocols/oscar/Makefile.am -@@ -50,8 +50,9 @@ - - AM_CFLAGS = $(st) - --libaim_la_LDFLAGS = -module -avoid-version --libicq_la_LDFLAGS = -module -avoid-version -+libaim_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+libicq_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+liboscar_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED) - if STATIC_OSCAR - - st = -DPURPLE_STATIC_PRPL -@@ -62,9 +63,16 @@ - else - - st = --pkg_LTLIBRARIES = liboscar.la libaim.la libicq.la -+pkg_LTLIBRARIES = libaim.la libicq.la -+ -+if OS_WIN32 -+lib_LTLIBRARIES = liboscar.la -+else -+pkg_LTLIBRARIES += liboscar.la -+endif -+ - liboscar_la_SOURCES = $(OSCARSOURCES) --liboscar_la_LIBADD = $(GLIB_LIBS) -+liboscar_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - - libaim_la_SOURCES = libaim.c - libaim_la_LIBADD = liboscar.la -@@ -79,3 +87,8 @@ - -I$(top_builddir)/libpurple \ - $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/sametime/Makefile.am 001/source/libpurple/protocols/sametime/Makefile.am ---- 000/source/libpurple/protocols/sametime/Makefile.am -+++ 001/source/libpurple/protocols/sametime/Makefile.am -@@ -24,8 +24,8 @@ - endif - - libsametime_la_SOURCES = $(SAMETIMESOURCES) --libsametime_la_LDFLAGS = -module -avoid-version --libsametime_la_LIBADD = $(GLIB_LIBS) $(MEANWHILE_LIBS) -+libsametime_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+libsametime_la_LIBADD = $(GLIB_LIBS) $(MEANWHILE_LIBS) $(PURPLE_LIBS) - - AM_CPPFLAGS = \ - -I$(top_srcdir)/libpurple \ -@@ -35,3 +35,7 @@ - $(MEANWHILE_CFLAGS) \ - -DG_LOG_DOMAIN=\"sametime\" - -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/silc/Makefile.am 001/source/libpurple/protocols/silc/Makefile.am ---- 000/source/libpurple/protocols/silc/Makefile.am -+++ 001/source/libpurple/protocols/silc/Makefile.am -@@ -19,7 +19,7 @@ - - AM_CFLAGS = $(st) - --libsilcpurple_la_LDFLAGS = -module -avoid-version -+libsilcpurple_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if STATIC_SILC - -@@ -34,7 +34,7 @@ - st = $(SILC_CFLAGS) - pkg_LTLIBRARIES = libsilcpurple.la - libsilcpurple_la_SOURCES = $(SILCSOURCES) --libsilcpurple_la_LIBADD = $(GLIB_LIBS) $(SILC_LIBS) -+libsilcpurple_la_LIBADD = $(GLIB_LIBS) $(SILC_LIBS) $(PURPLE_LIBS) - - endif - -@@ -44,3 +44,8 @@ - $(DEBUG_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(SILC_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/simple/Makefile.am 001/source/libpurple/protocols/simple/Makefile.am ---- 000/source/libpurple/protocols/simple/Makefile.am -+++ 001/source/libpurple/protocols/simple/Makefile.am -@@ -11,7 +11,7 @@ - - AM_CFLAGS = $(st) - --libsimple_la_LDFLAGS = -module -avoid-version -+libsimple_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if STATIC_SIMPLE - -@@ -25,7 +25,7 @@ - st = - pkg_LTLIBRARIES = libsimple.la - libsimple_la_SOURCES = $(SIMPLESOURCES) --libsimple_la_LIBADD = $(GLIB_LIBS) -+libsimple_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - - endif - -@@ -34,3 +34,8 @@ - -I$(top_builddir)/libpurple \ - $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/protocols/yahoo/Makefile.am 001/source/libpurple/protocols/yahoo/Makefile.am ---- 000/source/libpurple/protocols/yahoo/Makefile.am -+++ 001/source/libpurple/protocols/yahoo/Makefile.am -@@ -27,8 +27,9 @@ - - AM_CFLAGS = $(st) - --libyahoo_la_LDFLAGS = -module -avoid-version --libyahoojp_la_LDFLAGS = -module -avoid-version -+libyahoo_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+libyahoojp_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+libymsg_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED) - - if STATIC_YAHOO - -@@ -40,10 +41,16 @@ - else - - st = --pkg_LTLIBRARIES = libymsg.la libyahoo.la libyahoojp.la -+pkg_LTLIBRARIES = libyahoo.la libyahoojp.la -+ -+if OS_WIN32 -+lib_LTLIBRARIES = libymsg.la -+else -+pkg_LTLIBRARIES += libymsg.la -+endif - - libymsg_la_SOURCES = $(YAHOOSOURCES) --libymsg_la_LIBADD = $(GLIB_LIBS) -+libymsg_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - - libyahoo_la_SOURCES = libyahoo.c - libyahoo_la_LIBADD = libymsg.la -@@ -58,3 +65,8 @@ - -I$(top_builddir)/libpurple \ - $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 -+endif -diff -aurN 000/source/libpurple/win32/libc_interface.h 001/source/libpurple/win32/libc_interface.h ---- 000/source/libpurple/win32/libc_interface.h -+++ 001/source/libpurple/win32/libc_interface.h -@@ -23,6 +23,7 @@ - #ifndef _LIBC_INTERFACE_H_ - #define _LIBC_INTERFACE_H_ - #include -+#undef socklen_t - #include - #include - #include -diff -aurN 000/source/libpurple/win32/libpurplerc.rc.in 001/source/libpurple/win32/libpurplerc.rc.in ---- 000/source/libpurple/win32/libpurplerc.rc.in -+++ 001/source/libpurple/win32/libpurplerc.rc.in -@@ -2,8 +2,8 @@ - #include "version.h" - - VS_VERSION_INFO VERSIONINFO -- FILEVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0 -- PRODUCTVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0 -+ FILEVERSION @PURPLE_MAJOR_VERSION@,@PURPLE_MINOR_VERSION@,@PURPLE_MICRO_VERSION@,0 -+ PRODUCTVERSION @PURPLE_MAJOR_VERSION@,@PURPLE_MINOR_VERSION@,@PURPLE_MICRO_VERSION@,0 - FILEFLAGSMASK 0 - FILEFLAGS 0 - FILEOS VOS__WINDOWS32 -diff -aurN 000/source/libpurple/win32/win32dep.c 001/source/libpurple/win32/win32dep.c ---- 000/source/libpurple/win32/win32dep.c -+++ 001/source/libpurple/win32/win32dep.c -@@ -28,12 +28,18 @@ - - #include "debug.h" - #include "notify.h" -+#ifdef USE_FHS -+#include "version.h" -+#endif - - /* - * LOCALS - */ - static char *app_data_dir = NULL, *install_dir = NULL, - *lib_dir = NULL, *locale_dir = NULL; -+#ifdef USE_FHS -+static char *share_dir = NULL; -+#endif - - static HINSTANCE libpurpledll_hInstance = NULL; - -@@ -153,13 +159,39 @@ - return install_dir; - } - -+#ifdef USE_FHS -+const char *wpurple_share_dir(void) { -+ static gboolean initialized = FALSE; -+ -+ if (!initialized) { -+ const char *inst_dir = wpurple_install_dir(); -+ if (inst_dir != NULL) { -+ share_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S ".." G_DIR_SEPARATOR_S "share", inst_dir); -+ initialized = TRUE; -+ } else { -+ return NULL; -+ } -+ } -+ -+ return share_dir; -+} -+#else -+const char *wpurple_share_dir(void) { -+ return wpurple_install_dir(); -+} -+#endif -+ - const char *wpurple_lib_dir(void) { - static gboolean initialized = FALSE; - - if (!initialized) { - const char *inst_dir = wpurple_install_dir(); - if (inst_dir != NULL) { -+#ifdef USE_FHS -+ lib_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S ".." G_DIR_SEPARATOR_S "lib" G_DIR_SEPARATOR_S "purple-%i" , inst_dir, PURPLE_MAJOR_VERSION); -+#else - lib_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "plugins", inst_dir); -+#endif - initialized = TRUE; - } else { - return NULL; -@@ -175,7 +207,11 @@ - if (!initialized) { - const char *inst_dir = wpurple_install_dir(); - if (inst_dir != NULL) { -+#ifdef USE_FHS -+ locale_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S ".." G_DIR_SEPARATOR_S "share" G_DIR_SEPARATOR_S "locale", inst_dir); -+#else - locale_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "locale", inst_dir); -+#endif - initialized = TRUE; - } else { - return NULL; -@@ -375,6 +411,11 @@ - lib_dir = NULL; - locale_dir = NULL; - -+#ifdef USE_FHS -+ g_free(share_dir); -+ share_dir = NULL; -+#endif -+ - libpurpledll_hInstance = NULL; - } - -diff -aurN 000/source/libpurple/win32/win32dep.h 001/source/libpurple/win32/win32dep.h ---- 000/source/libpurple/win32/win32dep.h -+++ 001/source/libpurple/win32/win32dep.h -@@ -65,6 +65,7 @@ - const char *wpurple_install_dir(void); - const char *wpurple_lib_dir(void); - const char *wpurple_locale_dir(void); -+const char *wpurple_share_dir(void); - const char *wpurple_data_dir(void); - - /* init / cleanup */ -@@ -80,9 +81,14 @@ - /* - * Purple specific - */ --#define DATADIR wpurple_install_dir() --#define LIBDIR wpurple_lib_dir() -+#undef PURPLE_DATADIR -+#define PURPLE_DATADIR wpurple_share_dir() -+#undef PURPLE_LIBDIR -+#define PURPLE_LIBDIR wpurple_lib_dir() -+#undef LOCALEDIR - #define LOCALEDIR wpurple_locale_dir() -+/* TODO: SYSCONFDIR should be the allusers AppData? */ -+#undef SYSCONFDIR - - #ifdef __cplusplus - } -diff -aurN 000/source/pidgin/data/pidgin.pc.in 001/source/pidgin/data/pidgin.pc.in ---- 000/source/pidgin/data/pidgin.pc.in -+++ 001/source/pidgin/data/pidgin.pc.in -@@ -12,5 +12,6 @@ - Description: Pidgin is a GTK2-based instant messenger application. - Version: @VERSION@ - Requires: gtk+-2.0 purple --Cflags: -I${includedir}/pidgin -+Cflags: -I${includedir}/pidgin -I${includedir}/pidgin/win32 -+Libs: -L${libdir} -lpidgin - -diff -aurN 000/source/pidgin/data/pidgin-2.pc.in 001/source/pidgin/data/pidgin-2.pc.in ---- 000/source/pidgin/data/pidgin-2.pc.in -+++ 001/source/pidgin/data/pidgin-2.pc.in -@@ -13,3 +13,4 @@ - Version: @VERSION@ - Requires: gtk+-2.0 purple - Cflags: -I${includedir} -+Libs: -L${libdir} -lpidgin -diff -aurN 000/source/pidgin/gtkblist.c 001/source/pidgin/gtkblist.c ---- 000/source/pidgin/gtkblist.c -+++ 001/source/pidgin/gtkblist.c -@@ -3369,14 +3369,14 @@ - char *path; - - if (!strcmp(mood, "busy")) { -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", - "status", "16", "busy.png", NULL); - } else if (!strcmp(mood, "hiptop")) { -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", - "emblems", "16", "hiptop.png", NULL); - } else { - char *filename = g_strdup_printf("%s.png", mood); -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", - "emotes", "small", filename, NULL); - g_free(filename); - } -@@ -4026,7 +4026,7 @@ - if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) { - /* This emblem comes from the small emoticon set now, - * to reduce duplication. */ -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emotes", -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "emotes", - "small", "mobile.png", NULL); - return _pidgin_blist_get_cached_emblem(path); - } -@@ -4043,7 +4043,7 @@ - g_return_val_if_fail(buddy != NULL, NULL); - - if (!purple_privacy_check(buddy->account, purple_buddy_get_name(buddy))) { -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "blocked.png", NULL); -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "emblems", "16", "blocked.png", NULL); - return _pidgin_blist_get_cached_emblem(path); - } - -@@ -4054,7 +4054,7 @@ - - if (purple_presence_is_status_primitive_active(p, PURPLE_STATUS_MOBILE)) { - /* This emblem comes from the small emoticon set now, to reduce duplication. */ -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emotes", "small", "mobile.png", NULL); -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "emotes", "small", "mobile.png", NULL); - return _pidgin_blist_get_cached_emblem(path); - } - -@@ -4063,18 +4063,18 @@ - /* Only in MSN. - * TODO: Replace "Tune" with generalized "Media" in 3.0. */ - if (purple_status_get_attr_string(tune, "game") != NULL) { -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "game.png", NULL); -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "emblems", "16", "game.png", NULL); - return _pidgin_blist_get_cached_emblem(path); - } - /* Only in MSN. - * TODO: Replace "Tune" with generalized "Media" in 3.0. */ - if (purple_status_get_attr_string(tune, "office") != NULL) { -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", "office.png", NULL); -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "emblems", "16", "office.png", NULL); - return _pidgin_blist_get_cached_emblem(path); - } - /* Regular old "tune" is the only one in all protocols. */ - /* This emblem comes from the small emoticon set now, to reduce duplication. */ -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emotes", "small", "music.png", NULL); -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "emotes", "small", "music.png", NULL); - return _pidgin_blist_get_cached_emblem(path); - } - -@@ -4101,7 +4101,7 @@ - path = get_mood_icon_path(name); - } else { - filename = g_strdup_printf("%s.png", name); -- path = g_build_filename(DATADIR, "pixmaps", "pidgin", "emblems", "16", filename, NULL); -+ path = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "emblems", "16", filename, NULL); - g_free(filename); - } - -diff -aurN 000/source/pidgin/gtkdialogs.c 001/source/pidgin/gtkdialogs.c ---- 000/source/pidgin/gtkdialogs.c -+++ 001/source/pidgin/gtkdialogs.c -@@ -468,7 +468,7 @@ - gtk_window_set_default_size(GTK_WINDOW(win), width? width : 600, height? height : 600); - - /* Generate a logo with a version number */ -- filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "logo.png", NULL); -+ filename = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "logo.png", NULL); - pixbuf = pidgin_pixbuf_new_from_file(filename); - g_free(filename); - -diff -aurN 000/source/pidgin/gtkdnd-hints.c 001/source/pidgin/gtkdnd-hints.c ---- 000/source/pidgin/gtkdnd-hints.c -+++ 001/source/pidgin/gtkdnd-hints.c -@@ -121,7 +121,7 @@ - for (i = 0; hint_windows[i].filename != NULL; i++) { - gchar *fname; - -- fname = g_build_filename(DATADIR, "pixmaps", "pidgin", -+ fname = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", - hint_windows[i].filename, NULL); - - hint_windows[i].widget = dnd_hints_init_window(fname); -diff -aurN 000/source/pidgin/gtkdocklet-gtk.c 001/source/pidgin/gtkdocklet-gtk.c ---- 000/source/pidgin/gtkdocklet-gtk.c -+++ 001/source/pidgin/gtkdocklet-gtk.c -@@ -291,6 +291,6 @@ - } - - gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), -- DATADIR G_DIR_SEPARATOR_S "pixmaps" G_DIR_SEPARATOR_S "pidgin" G_DIR_SEPARATOR_S "tray"); -+ PURPLE_DATADIR G_DIR_SEPARATOR_S "pixmaps" G_DIR_SEPARATOR_S "pidgin" G_DIR_SEPARATOR_S "tray"); - } - -diff -aurN 000/source/pidgin/gtkmain.c 001/source/pidgin/gtkmain.c ---- 000/source/pidgin/gtkmain.c -+++ 001/source/pidgin/gtkmain.c -@@ -269,7 +269,7 @@ - #ifndef _WIN32 - /* use the nice PNG icon for all the windows */ - for(i=0; idata; - - if (gtalk_name && strcmp(gtalk_name, plugin->info->name) < 0) { -- char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", -+ char *filename = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "protocols", - "16", "google-talk.png", NULL); - GtkWidget *item; - -@@ -721,7 +721,7 @@ - } - - if (facebook_name && strcmp(facebook_name, plugin->info->name) < 0) { -- char *filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", -+ char *filename = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "protocols", - "16", "facebook.png", NULL); - GtkWidget *item; - -diff -aurN 000/source/pidgin/Makefile.am 001/source/pidgin/Makefile.am ---- 000/source/pidgin/Makefile.am -+++ 001/source/pidgin/Makefile.am -@@ -31,13 +31,28 @@ - win32/nsis/create_nsis_translations.pl \ - win32/nsis/nsis_translations.desktop.in - -+if !OS_WIN32 -+EXTRA_DIST += \ -+ win32/MinimizeToTray.c \ -+ win32/MinimizeToTray.h \ -+ win32/gtkdocklet-win32.c \ -+ win32/gtkwin32dep.c \ -+ win32/gtkwin32dep.h \ -+ win32/resource.h \ -+ win32/untar.c \ -+ win32/untar.h \ -+ win32/winpidgin.c \ -+ win32/wspell.c \ -+ win32/wspell.h -+endif -+ - if ENABLE_GTK - --SUBDIRS = pixmaps plugins -+SUBDIRS = . pixmaps plugins - - bin_PROGRAMS = pidgin - --pidgin_SOURCES = \ -+common_SOURCES = \ - pidginstock.c \ - gtkaccount.c \ - gtkblist.c \ -@@ -51,7 +66,6 @@ - gtkdialogs.c \ - gtkdnd-hints.c \ - gtkdocklet.c \ -- gtkdocklet-gtk.c \ - gtkeventloop.c \ - gtkft.c \ - gtkicon-theme.c \ -@@ -139,14 +153,30 @@ - pidgintooltip.h \ - pidgin.h - -+if OS_WIN32 -+pidgin_win32headers = \ -+ gtkwin32dep.h -+pidgin_win32noinstheaders = \ -+ MinimizeToTray.h \ -+ resource.h \ -+ untar.h \ -+ wspell.h -+endif -+ - pidginincludedir=$(includedir)/pidgin - pidgininclude_HEADERS = \ - $(pidgin_headers) - -+if OS_WIN32 -+win32includedir=$(includedir)/pidgin/win32 -+win32include_HEADERS = \ -+ $(addprefix $(srcdir)/win32/, $(pidgin_win32headers)) -+noinst_HEADERS = \ -+ $(addprefix $(srcdir)/win32/, $(pidgin_win32noinstheaders)) -+endif - - pidgin_DEPENDENCIES = @LIBOBJS@ --pidgin_LDFLAGS = -export-dynamic --pidgin_LDADD = \ -+common_LDADD = \ - @LIBOBJS@ \ - $(GLIB_LIBS) \ - $(DBUS_LIBS) \ -@@ -159,9 +189,47 @@ - $(GTK_LIBS) \ - $(top_builddir)/libpurple/libpurple.la - -+if OS_WIN32 -+lib_LTLIBRARIES = libpidgin.la -+ -+pidgin_SOURCES = \ -+ win32/pidgin_exe_rc.rc \ -+ win32/winpidgin.c -+ -+libpidgin_la_SOURCES = \ -+ $(common_SOURCES) \ -+ win32/MinimizeToTray.c \ -+ win32/gtkdocklet-win32.c \ -+ win32/gtkwin32dep.c \ -+ win32/untar.c \ -+ win32/wspell.c \ -+ win32/pidgin_dll_rc.rc -+ -+libpidgin_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED) -+libpidgin_la_LIBADD = $(common_LDADD) -lz -lwinmm -lgdi32 -+ -+pidgin_LDFLAGS = -mwindows -+pidgin_LDADD = -+ -+.rc.o: -+ $(WINDRES) $^ -o $@ -+%.o : %.rc -+ $(WINDRES) -I$(top_srcdir)/pidgin -I$(top_srcdir)/pidgin/win32 -I$(top_srcdir)/libpurple -i $< -o $@ -+ -+else -+pidgin_SOURCES = \ -+ $(common_SOURCES) \ -+ gtkdocklet-gtk.c -+ -+pidgin_CFLAGS = $(AM_CFLAGS) -+pidgin_LDFLAGS = -export-dynamic -+ -+pidgin_LDADD = $(common_LDADD) -+endif -+ - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -- -DLIBDIR=\"$(libdir)/pidgin/\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ -+ -DPIDGIN_LIBDIR=\"$(libdir)/pidgin/\" \ - -DLOCALEDIR=\"$(datadir)/locale\" \ - -DSYSCONFDIR=\"$(sysconfdir)\" \ - -I$(top_builddir)/libpurple \ -@@ -177,6 +245,14 @@ - $(LIBXML_CFLAGS) \ - $(INTGG_CFLAGS) - -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -DUSE_FHS \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/pidgin/win32 -+endif -+ - pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = data/pidgin.pc - -diff -aurN 000/source/pidgin/pidginstock.c 001/source/pidgin/pidginstock.c ---- 000/source/pidgin/pidginstock.c -+++ 001/source/pidgin/pidginstock.c -@@ -241,7 +241,7 @@ - return filename; - g_free(filename); - } -- filename = g_build_filename(DATADIR, name, NULL); -+ filename = g_build_filename(PURPLE_DATADIR, name, NULL); - if (g_file_test(filename, G_FILE_TEST_EXISTS)) - return filename; - g_free(filename); -diff -aurN 000/source/pidgin/plugins/cap/Makefile.am 001/source/pidgin/plugins/cap/Makefile.am ---- 000/source/pidgin/plugins/cap/Makefile.am -+++ 001/source/pidgin/plugins/cap/Makefile.am -@@ -18,7 +18,7 @@ - cap_la_LIBADD = $(GTK_LIBS) $(SQLITE3_LIBS) - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple \ - -I$(top_srcdir)/pidgin \ -diff -aurN 000/source/pidgin/plugins/disco/gtkdisco.c 001/source/pidgin/plugins/disco/gtkdisco.c ---- 000/source/pidgin/plugins/disco/gtkdisco.c -+++ 001/source/pidgin/plugins/disco/gtkdisco.c -@@ -119,14 +119,14 @@ - - if (service->type == XMPP_DISCO_SERVICE_TYPE_GATEWAY && service->gateway_type) { - char *tmp = g_strconcat(service->gateway_type, ".png", NULL); -- filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "protocols", size, tmp, NULL); -+ filename = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "protocols", size, tmp, NULL); - g_free(tmp); - #if 0 - } else if (service->type == XMPP_DISCO_SERVICE_TYPE_USER) { -- filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "status", size, "person.png", NULL); -+ filename = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "status", size, "person.png", NULL); - #endif - } else if (service->type == XMPP_DISCO_SERVICE_TYPE_CHAT) -- filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "status", size, "chat.png", NULL); -+ filename = g_build_filename(PURPLE_DATADIR, "pixmaps", "pidgin", "status", size, "chat.png", NULL); - - if (filename) { - pixbuf = gdk_pixbuf_new_from_file(filename, NULL); -diff -aurN 000/source/pidgin/plugins/disco/Makefile.am 001/source/pidgin/plugins/disco/Makefile.am ---- 000/source/pidgin/plugins/disco/Makefile.am -+++ 001/source/pidgin/plugins/disco/Makefile.am -@@ -1,6 +1,10 @@ -+if OS_WIN32 -+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -+else - plugindir = $(libdir)/pidgin -+endif - --xmppdisco_la_LDFLAGS = -module -avoid-version -+xmppdisco_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - EXTRA_DIST = \ - Makefile.mingw -@@ -15,14 +19,21 @@ - xmppdisco.c \ - xmppdisco.h - --xmppdisco_la_LIBADD = $(GTK_LIBS) -+xmppdisco_la_LIBADD = $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS) - - endif - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple \ - -I$(top_srcdir)/pidgin \ - $(DEBUG_CFLAGS) \ - $(GTK_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/pidgin/win32 -+endif -+ -diff -aurN 000/source/pidgin/plugins/gestures/Makefile.am 001/source/pidgin/plugins/gestures/Makefile.am ---- 000/source/pidgin/plugins/gestures/Makefile.am -+++ 001/source/pidgin/plugins/gestures/Makefile.am -@@ -1,6 +1,10 @@ -+if OS_WIN32 -+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -+else - plugindir = $(libdir)/pidgin -+endif - --gestures_la_LDFLAGS = -module -avoid-version -+gestures_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if PLUGINS - -@@ -13,14 +17,20 @@ - stroke.c \ - stroke-draw.c - --gestures_la_LIBADD = $(GTK_LIBS) -+gestures_la_LIBADD = $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS) $(GLIB_LIBS) - - endif - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple \ - -I$(top_srcdir)/pidgin \ - $(DEBUG_CFLAGS) \ - $(GTK_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/pidgin/win32 -+endif -\ No newline at end of file -diff -aurN 000/source/pidgin/plugins/gevolution/Makefile.am 001/source/pidgin/plugins/gevolution/Makefile.am ---- 000/source/pidgin/plugins/gevolution/Makefile.am -+++ 001/source/pidgin/plugins/gevolution/Makefile.am -@@ -1,6 +1,10 @@ -+if OS_WIN32 -+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -+else - plugindir = $(libdir)/pidgin -+endif - --gevolution_la_LDFLAGS = -module -avoid-version -+gevolution_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if PLUGINS - -@@ -15,15 +19,22 @@ - new_person_dialog.c \ - eds-utils.c - --gevolution_la_LIBADD = $(EVOLUTION_ADDRESSBOOK_LIBS) $(GTK_LIBS) -+gevolution_la_LIBADD = $(EVOLUTION_ADDRESSBOOK_LIBS) $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS) $(GLIB_LIBS) - - endif - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple \ - -I$(top_srcdir)/pidgin \ - $(EVOLUTION_ADDRESSBOOK_CFLAGS) \ -+ $(GLIB_CFLAGS) \ - $(DEBUG_CFLAGS) \ - $(GTK_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/pidgin/win32 -+endif -diff -aurN 000/source/pidgin/plugins/Makefile.am 001/source/pidgin/plugins/Makefile.am ---- 000/source/pidgin/plugins/Makefile.am -+++ 001/source/pidgin/plugins/Makefile.am -@@ -1,4 +1,4 @@ --DIST_SUBDIRS = cap disco gestures gevolution musicmessaging perl ticker -+DIST_SUBDIRS = cap disco gestures gevolution musicmessaging perl ticker win32 - - if BUILD_GEVOLUTION - GEVOLUTION_DIR = gevolution -@@ -143,6 +143,12 @@ - $(GSTREAMER_CFLAGS) \ - $(PLUGIN_CFLAGS) - -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/pidgin/win32 -+endif -+ - # - # This part allows people to build their own plugins in here. - # Yes, it's a mess. -@@ -150,7 +156,7 @@ - SUFFIXES = .c .so - .c.so: - $(LIBTOOL) --mode=compile $(CC) -DHAVE_CONFIG_H -I$(top_builddir) $(AM_CPPFLAGS) $(CFLAGS) -c $< -o tmp$@.lo $(PLUGIN_CFLAGS) -- $(LIBTOOL) --mode=link $(CC) $(CFLAGS) -o libtmp$@.la -rpath $(plugindir) tmp$@.lo $(LIBS) $(LDFLAGS) -module -avoid-version $(PLUGIN_LIBS) -+ $(LIBTOOL) --mode=link $(CC) $(CFLAGS) -o libtmp$@.la -rpath $(plugindir) tmp$@.lo $(LIBS) $(LDFLAGS) -module -avoid-version $(NO_UNDEFINED) $(PLUGIN_LIBS) - @rm -f tmp$@.lo tmp$@.o libtmp$@.la - @cp .libs/libtmp$@*.so $@ - @rm -rf .libs/libtmp$@.* -diff -aurN 000/source/pidgin/plugins/musicmessaging/Makefile.am 001/source/pidgin/plugins/musicmessaging/Makefile.am ---- 000/source/pidgin/plugins/musicmessaging/Makefile.am -+++ 001/source/pidgin/plugins/musicmessaging/Makefile.am -@@ -1,7 +1,11 @@ - EXTRA_DIST = \ - music.png - -+if OS_WIN32 -+musicmessagingdir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -+else - musicmessagingdir = $(libdir)/pidgin -+endif - - musicmessaging_la_LDFLAGS = -module -avoid-version - -@@ -16,7 +20,7 @@ - musicmessaging_la_SOURCES = \ - musicmessaging.c - --musicmessaging_la_LIBADD = $(GTK_LIBS) $(DBUS_LIBS) -+musicmessaging_la_LIBADD = $(GTK_LIBS) $(DBUS_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS) - - CLEANFILES = music-messaging-bindings.c - -@@ -35,10 +39,16 @@ - endif - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -I$(top_builddir)/libpurple \ - -I$(top_srcdir)/libpurple \ - -I$(top_srcdir)/pidgin \ - $(DEBUG_CFLAGS) \ - $(GTK_CFLAGS) \ - $(DBUS_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/pidgin/win32 -+endif -diff -aurN 000/source/pidgin/plugins/musicmessaging/musicmessaging.c 001/source/pidgin/plugins/musicmessaging/musicmessaging.c ---- 000/source/pidgin/plugins/musicmessaging/musicmessaging.c -+++ 001/source/pidgin/plugins/musicmessaging/musicmessaging.c -@@ -548,11 +548,13 @@ - - static void kill_editor (MMConversation *mmconv) - { -+#ifndef _WIN32 - if (mmconv->pid) - { - kill(mmconv->pid, SIGINT); - mmconv->pid = 0; - } -+#endif - } - - static void init_conversation (PurpleConversation *conv) -@@ -595,7 +597,7 @@ - - g_signal_connect(G_OBJECT(button), "toggled", G_CALLBACK(music_button_toggled), mmconv); - -- file_path = g_build_filename(DATADIR, "pixmaps", "purple", "buttons", -+ file_path = g_build_filename(PURPLE_DATADIR, "pixmaps", "purple", "buttons", - "music.png", NULL); - image = gtk_image_new_from_file(file_path); - g_free(file_path); -diff -aurN 000/source/pidgin/plugins/ticker/Makefile.am 001/source/pidgin/plugins/ticker/Makefile.am ---- 000/source/pidgin/plugins/ticker/Makefile.am -+++ 001/source/pidgin/plugins/ticker/Makefile.am -@@ -1,9 +1,13 @@ - EXTRA_DIST = \ - Makefile.mingw - -+if OS_WIN32 -+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -+else - plugindir = $(libdir)/pidgin -+endif - --ticker_la_LDFLAGS = -module -avoid-version -+ticker_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if PLUGINS - -@@ -14,14 +18,20 @@ - gtkticker.h \ - ticker.c - --ticker_la_LIBADD = $(GTK_LIBS) -+ticker_la_LIBADD = $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS) - - endif - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -I$(top_srcdir)/libpurple \ - -I$(top_builddir)/libpurple \ - -I$(top_srcdir)/pidgin \ - $(DEBUG_CFLAGS) \ - $(GTK_CFLAGS) -+ -+if OS_WIN32 -+AM_CPPFLAGS += \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/pidgin/win32 -+endif -diff -aurN 000/source/pidgin/plugins/win32/Makefile.am 001/source/pidgin/plugins/win32/Makefile.am ---- 000/source/pidgin/plugins/win32/Makefile.am -+++ 001/source/pidgin/plugins/win32/Makefile.am -@@ -0,0 +1,9 @@ -+DIST_SUBDIRS = transparency winprefs -+ -+if OS_WIN32 -+SUBDIRS = $(DIST_SUBDIRS) -+endif -+ -+EXTRA_DIST = \ -+ Makefile.mingw -+ -diff -aurN 000/source/pidgin/plugins/win32/transparency/Makefile.am 001/source/pidgin/plugins/win32/transparency/Makefile.am ---- 000/source/pidgin/plugins/win32/transparency/Makefile.am -+++ 001/source/pidgin/plugins/win32/transparency/Makefile.am -@@ -0,0 +1,31 @@ -+EXTRA_DIST = \ -+ Makefile.mingw \ -+ win2ktrans.c -+ -+if OS_WIN32 -+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -+ -+win2ktrans_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+ -+if PLUGINS -+ -+plugin_LTLIBRARIES = win2ktrans.la -+ -+win2ktrans_la_SOURCES = \ -+ win2ktrans.c -+ -+win2ktrans_la_LIBADD = $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS) -+ -+endif -+ -+AM_CPPFLAGS = \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ -+ -I$(top_srcdir)/libpurple \ -+ -I$(top_builddir)/libpurple \ -+ -I$(top_srcdir)/pidgin \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/pidgin/win32 \ -+ $(DEBUG_CFLAGS) \ -+ $(GTK_CFLAGS) -+ -+endif -diff -aurN 000/source/pidgin/plugins/win32/winprefs/gtkappbar.c 001/source/pidgin/plugins/win32/winprefs/gtkappbar.c ---- 000/source/pidgin/plugins/win32/winprefs/gtkappbar.c -+++ 001/source/pidgin/plugins/win32/winprefs/gtkappbar.c -@@ -27,6 +27,7 @@ - * - Move 'App on top' feature from Trans plugin to here - * - Bug: Multiple Show/Hide Desktop calls causes client area to disappear - */ -+#define WINVER 0x500 - #include - #include - #include -diff -aurN 000/source/pidgin/plugins/win32/winprefs/Makefile.am 001/source/pidgin/plugins/win32/winprefs/Makefile.am ---- 000/source/pidgin/plugins/win32/winprefs/Makefile.am -+++ 001/source/pidgin/plugins/win32/winprefs/Makefile.am -@@ -0,0 +1,35 @@ -+EXTRA_DIST = \ -+ gtkappbar.c \ -+ gtkappbar.h \ -+ winprefs.c \ -+ Makefile.mingw -+ -+if OS_WIN32 -+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -+ -+winprefs_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+ -+if PLUGINS -+ -+plugin_LTLIBRARIES = winprefs.la -+ -+winprefs_la_SOURCES = \ -+ gtkappbar.c \ -+ gtkappbar.h \ -+ winprefs.c -+ -+winprefs_la_LIBADD = $(GTK_LIBS) $(PURPLE_LIBS) $(PIDGIN_LIBS) -+ -+endif -+ -+AM_CPPFLAGS = \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ -+ -I$(top_srcdir)/libpurple \ -+ -I$(top_builddir)/libpurple \ -+ -I$(top_srcdir)/pidgin \ -+ -I$(top_srcdir)/libpurple/win32 \ -+ -I$(top_srcdir)/pidgin/win32 \ -+ $(DEBUG_CFLAGS) \ -+ $(GTK_CFLAGS) -+ -+endif -diff -aurN 000/source/pidgin/win32/gtkwin32dep.h 001/source/pidgin/win32/gtkwin32dep.h ---- 000/source/pidgin/win32/gtkwin32dep.h -+++ 001/source/pidgin/win32/gtkwin32dep.h -@@ -25,6 +25,10 @@ - #include - #include - #include "conversation.h" -+#include "win32dep.h" -+ -+#undef PIDGIN_LIBDIR -+#define PIDGIN_LIBDIR PURPLE_LIBDIR - - HINSTANCE winpidgin_dll_hinstance(void); - HINSTANCE winpidgin_exe_hinstance(void); -diff -aurN 000/source/pidgin/win32/MinimizeToTray.c 001/source/pidgin/win32/MinimizeToTray.c ---- 000/source/pidgin/win32/MinimizeToTray.c -+++ 001/source/pidgin/win32/MinimizeToTray.c -@@ -14,7 +14,7 @@ - * - * Copyright 2000 Matthew Ellis - */ --#define _WIN32_WINNT 0x0500 -+#define _WIN32_WINNT 0x0501 - #include - #include "MinimizeToTray.h" - -diff -aurN 000/source/pidgin/win32/pidgin_exe_rc.rc.in 001/source/pidgin/win32/pidgin_exe_rc.rc.in ---- 000/source/pidgin/win32/pidgin_exe_rc.rc.in -+++ 001/source/pidgin/win32/pidgin_exe_rc.rc.in -@@ -7,8 +7,8 @@ - CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "pidgin.manifest.xml" - - VS_VERSION_INFO VERSIONINFO -- FILEVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0 -- PRODUCTVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0 -+ FILEVERSION @PURPLE_MAJOR_VERSION@,@PURPLE_MINOR_VERSION@,@PURPLE_MICRO_VERSION@,0 -+ PRODUCTVERSION @PURPLE_MAJOR_VERSION@,@PURPLE_MINOR_VERSION@,@PURPLE_MICRO_VERSION@,0 - FILEFLAGSMASK 0 - FILEFLAGS 0 - FILEOS VOS__WINDOWS32 -diff -aurN 000/source/pidgin/win32/winpidgin.c 001/source/pidgin/win32/winpidgin.c ---- 000/source/pidgin/win32/winpidgin.c -+++ 001/source/pidgin/win32/winpidgin.c -@@ -321,11 +321,19 @@ - posix = L"sr@Latn"; break; - case SUBLANG_SERBIAN_CYRILLIC: - posix = L"sr"; break; -+/* for some reason mingw-w64 doesn't have these definitions yet */ -+#ifdef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC - case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC: -+ posix = L"bs"; break; -+#endif -+#ifdef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN - case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN: - posix = L"bs"; break; -+#endif -+#ifdef SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN - case SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN: - posix = L"hr"; break; -+#endif - } - break; - case LANG_SWEDISH: posix = L"sv"; break; -@@ -734,7 +742,7 @@ - return 0; - - /* Now we are ready for Pidgin .. */ -- wcscat(pidgin_dir, L"\\pidgin.dll"); -+ wcscat(pidgin_dir, L"\\libpidgin.dll"); - if ((hmod = LoadLibraryW(pidgin_dir))) - pidgin_main = (LPFNPIDGINMAIN) GetProcAddress(hmod, "pidgin_main"); - -@@ -747,7 +755,7 @@ - BOOL mod_not_found = (dw == ERROR_MOD_NOT_FOUND || dw == ERROR_DLL_NOT_FOUND); - const wchar_t *err_msg = get_win32_error_message(dw); - -- _snwprintf(errbuf, 512, L"Error loading pidgin.dll.\nError: (%u) %s%s%s", -+ _snwprintf(errbuf, 512, L"Error loading libpidgin.dll.\nError: (%u) %s%s%s", - (UINT) dw, err_msg, - mod_not_found ? L"\n" : L"", - mod_not_found ? L"This probably means that GTK+ can't be found." : L""); diff --git a/mingw-w64-pidgin++/002-autotools-and-fhs-pidgin++.patch b/mingw-w64-pidgin++/002-autotools-and-fhs-pidgin++.patch deleted file mode 100644 index 382770e688..0000000000 --- a/mingw-w64-pidgin++/002-autotools-and-fhs-pidgin++.patch +++ /dev/null @@ -1,189 +0,0 @@ -diff -aurN 001/source/finch/finch.c 002/source/finch/finch.c ---- 001/source/finch/finch.c -+++ 002/source/finch/finch.c -@@ -377,7 +377,7 @@ - purple_idle_set_ui_ops(finch_idle_get_ui_ops()); - - plugin_search_path_add_user_directories(); -- purple_plugins_add_search_path(LIBDIR); -+ purple_plugins_add_search_path(FINCH_LIBDIR); - - if (!purple_core_init(FINCH_UI)) - { -diff -aurN 001/source/pidgin/gtkmain.c 002/source/pidgin/gtkmain.c ---- 001/source/pidgin/gtkmain.c -+++ 002/source/pidgin/gtkmain.c -@@ -807,7 +807,7 @@ - * in user's home directory. - */ - plugin_search_path_add_user_directories(); -- purple_plugins_add_search_path(LIBDIR); -+ purple_plugins_add_search_path(PIDGIN_LIBDIR); - - if (!purple_core_init(PIDGIN_UI)) { - fprintf(stderr, -diff -aurN 001/source/pidgin/Makefile.am 002/source/pidgin/Makefile.am ---- 001/source/pidgin/Makefile.am -+++ 002/source/pidgin/Makefile.am -@@ -7,19 +7,8 @@ - data/pidgin.desktop.in \ - data/pidgin.pc.in \ - data/pidgin-uninstalled.pc.in \ -- win32/MinimizeToTray.h \ -- win32/MinimizeToTray.c \ - win32/pidgin_dll_rc.rc.in \ - win32/pidgin_exe_rc.rc.in \ -- win32/gtkdocklet-win32.c \ -- win32/gtkwin32dep.c \ -- win32/gtkwin32dep.h \ -- win32/resource.h \ -- win32/untar.c \ -- win32/untar.h \ -- win32/winpidgin.c \ -- win32/wspell.c \ -- win32/wspell.h \ - win32/nsis/integrate_gtk.sh \ - win32/nsis/rpm2zip.sh \ - win32/nsis/pixmaps/pidgin-header.bmp \ -diff -aurN 001/source/pidgin/plugins/Makefile.am 002/source/pidgin/plugins/Makefile.am ---- 001/source/pidgin/plugins/Makefile.am -+++ 002/source/pidgin/plugins/Makefile.am -@@ -27,28 +27,33 @@ - $(MUSICMESSAGING_DIR) \ - $(PERL_DIR) \ - disco \ -- ticker -+ ticker \ -+ win32 - -+if OS_WIN32 -+plugindir = $(libdir)/purple-$(PURPLE_MAJOR_VERSION) -+else - plugindir = $(libdir)/pidgin -+endif - --convcolors_la_LDFLAGS = -module -avoid-version --contact_priority_la_LDFLAGS = -module -avoid-version --extplacement_la_LDFLAGS = -module -avoid-version --gtk_signals_test_la_LDFLAGS = -module -avoid-version --gtkbuddynote_la_LDFLAGS = -module -avoid-version --history_la_LDFLAGS = -module -avoid-version --iconaway_la_LDFLAGS = -module -avoid-version --markerline_la_LDFLAGS = -module -avoid-version --notify_la_LDFLAGS = -module -avoid-version --pidginrc_la_LDFLAGS = -module -avoid-version --sendbutton_la_LDFLAGS = -module -avoid-version --spellchk_la_LDFLAGS = -module -avoid-version --themeedit_la_LDFLAGS = -module -avoid-version --timestamp_la_LDFLAGS = -module -avoid-version --timestamp_format_la_LDFLAGS = -module -avoid-version --unity_la_LDFLAGS = -module -avoid-version --vvconfig_la_LDFLAGS = -module -avoid-version --xmppconsole_la_LDFLAGS = -module -avoid-version -+convcolors_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+contact_priority_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+extplacement_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+gtk_signals_test_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+gtkbuddynote_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+history_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+iconaway_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+markerline_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+notify_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+pidginrc_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+sendbutton_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+spellchk_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+themeedit_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+timestamp_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+timestamp_format_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+unity_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+vvconfig_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+xmppconsole_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - - if PLUGINS - -@@ -99,41 +104,34 @@ - vvconfig_la_SOURCES = vvconfig.c - xmppconsole_la_SOURCES = xmppconsole.c - --convcolors_la_LIBADD = $(GTK_LIBS) --contact_priority_la_LIBADD = $(GTK_LIBS) --extplacement_la_LIBADD = $(GTK_LIBS) --gtk_signals_test_la_LIBADD = $(GTK_LIBS) --gtkbuddynote_la_LIBADD = $(GTK_LIBS) --history_la_LIBADD = $(GTK_LIBS) --iconaway_la_LIBADD = $(GTK_LIBS) --markerline_la_LIBADD = $(GTK_LIBS) --notify_la_LIBADD = $(GTK_LIBS) --pidginrc_la_LIBADD = $(GTK_LIBS) --sendbutton_la_LIBADD = $(GTK_LIBS) --spellchk_la_LIBADD = $(GTK_LIBS) --themeedit_la_LIBADD = $(GTK_LIBS) --timestamp_la_LIBADD = $(GTK_LIBS) --timestamp_format_la_LIBADD = $(GTK_LIBS) --unity_la_LIBADD = $(GTK_LIBS) $(UNITY_LIBS) --vvconfig_la_LIBADD = $(GTK_LIBS) $(GSTREAMER_LIBS) --xmppconsole_la_LIBADD = $(GTK_LIBS) -+convcolors_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+contact_priority_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+extplacement_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+gtk_signals_test_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+gtkbuddynote_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+history_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+iconaway_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+markerline_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+notify_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+pidginrc_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+sendbutton_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+spellchk_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+themeedit_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+timestamp_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+timestamp_format_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+unity_la_LIBADD = $(GTK_LIBS) $(UNITY_LIBS) $(PIDGIN_LIBS) -+vvconfig_la_LIBADD = $(GTK_LIBS) $(GSTREAMER_LIBS) $(PIDGIN_LIBS) -+xmppconsole_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) - - endif # PLUGINS - - EXTRA_DIST = \ -- Makefile.mingw \ - mailchk.c \ - pidgininc.c \ -- raw.c \ -- win32/transparency/Makefile.mingw \ -- win32/transparency/win2ktrans.c \ -- win32/winprefs/gtkappbar.c \ -- win32/winprefs/gtkappbar.h \ -- win32/winprefs/Makefile.mingw \ -- win32/winprefs/winprefs.c -+ raw.c - - AM_CPPFLAGS = \ -- -DDATADIR=\"$(datadir)\" \ -+ -DPURPLE_DATADIR=\"$(datadir)\" \ - -I$(top_builddir)/libpurple \ - -I$(top_srcdir)/libpurple \ - -I$(top_srcdir)/pidgin \ -diff -aurN 001/source/pidgin/win32/gtkdocklet-win32.c 002/source/pidgin/win32/gtkdocklet-win32.c ---- 001/source/pidgin/win32/gtkdocklet-win32.c -+++ 002/source/pidgin/win32/gtkdocklet-win32.c -@@ -21,7 +21,7 @@ - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02111-1301, USA. - */ --#define _WIN32_IE 0x0500 -+#define _WIN32_IE 0x0501 - #include "internal.h" - #include - #include -diff -aurN 001/source/pidgin/win32/pidgin_exe_rc.rc.in 002/source/pidgin/win32/pidgin_exe_rc.rc.in ---- 001/source/pidgin/win32/pidgin_exe_rc.rc.in -+++ 002/source/pidgin/win32/pidgin_exe_rc.rc.in -@@ -24,7 +24,7 @@ - VALUE "FileVersion", "@APPLICATION_VERSION@" - VALUE "InternalName", "pidgin" - VALUE "LegalCopyright", "Copyright (C) 1998-2015 The @APPLICATION_NAME@ developer community" -- VALUE "OriginalFilename", "@ORIGINAL_FILENAME@" -+ VALUE "OriginalFilename", "pidgin.exe" - VALUE "ProductName", "@APPLICATION_NAME@" - VALUE "ProductVersion", "@DISPLAY_VERSION_FULL@" - END diff --git a/mingw-w64-pidgin++/003-autotools-and-fhs-adaptation.patch b/mingw-w64-pidgin++/003-autotools-and-fhs-adaptation.patch deleted file mode 100644 index 29e38f697c..0000000000 --- a/mingw-w64-pidgin++/003-autotools-and-fhs-adaptation.patch +++ /dev/null @@ -1,140 +0,0 @@ -diff -aurN 002/source/configure.ac 003/source/configure.ac ---- 002/source/configure.ac -+++ 003/source/configure.ac -@@ -82,6 +82,8 @@ - PURPLE_MINOR_VERSION=purple_minor_version - PURPLE_MICRO_VERSION=purple_micro_version - PURPLE_VERSION=[purple_display_version] -+APPLICATION_VERSION=purple_display_version -+AC_SUBST(APPLICATION_VERSION) - AC_SUBST(PURPLE_MAJOR_VERSION) - AC_SUBST(PURPLE_MINOR_VERSION) - AC_SUBST(PURPLE_MICRO_VERSION) -@@ -406,10 +408,17 @@ - [extra version number to be displayed in Help->About and --help (for packagers)]), - EXTRA_VERSION=$withval) - -+DISPLAY_VERSION_FULL='purple_version_suffix' -+DISPLAY_VERSION_FULL="${DISPLAY_VERSION_FULL#-}" -+DISPLAY_VERSION="${DISPLAY_VERSION_FULL%.0}" -+AC_SUBST(DISPLAY_VERSION_FULL) -+ - if test x"$EXTRA_VERSION" != "x" ; then -- AC_DEFINE_UNQUOTED(DISPLAY_VERSION, "$VERSION-$EXTRA_VERSION", [display version info]) -+ AC_DEFINE_UNQUOTED(DISPLAY_VERSION, "$DISPLAY_VERSION-$EXTRA_VERSION", [display version info]) -+ AC_DEFINE_UNQUOTED(DISPLAY_VERSION_FULL, "$DISPLAY_VERSION_FULL-$EXTRA_VERSION", [display version info]) - else -- AC_DEFINE_UNQUOTED(DISPLAY_VERSION, "$VERSION", [display version info]) -+ AC_DEFINE_UNQUOTED(DISPLAY_VERSION, "$DISPLAY_VERSION", [display version info]) -+ AC_DEFINE_UNQUOTED(DISPLAY_VERSION_FULL, "$DISPLAY_VERSION_FULL", [display version info]) - fi - - AC_ARG_ENABLE(missing-dependencies, [AC_HELP_STRING([--disable-missing-dependencies], -diff -aurN 002/source/libpurple/plugins/Makefile.am 003/source/libpurple/plugins/Makefile.am ---- 002/source/libpurple/plugins/Makefile.am -+++ 003/source/libpurple/plugins/Makefile.am -@@ -31,6 +31,7 @@ - debug_example_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - helloworld_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - idle_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+irchelper_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - joinpart_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - log_reader_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - newline_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -@@ -52,6 +53,7 @@ - autoaccept.la \ - buddynote.la \ - idle.la \ -+ irchelper.la \ - joinpart.la \ - log_reader.la \ - newline.la \ -@@ -78,6 +80,7 @@ - debug_example_la_SOURCES = debug_example.c - helloworld_la_SOURCES = helloworld.c - idle_la_SOURCES = idle.c -+irchelper_la_SOURCES = irchelper.c - joinpart_la_SOURCES = joinpart.c - log_reader_la_SOURCES = log_reader.c - newline_la_SOURCES = newline.c -@@ -96,6 +99,7 @@ - ciphertest_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - codeinline_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - idle_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -+irchelper_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - joinpart_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - log_reader_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) - newline_la_LIBADD = $(GLIB_LIBS) $(PURPLE_LIBS) -diff -aurN 002/source/pidgin/Makefile.am 003/source/pidgin/Makefile.am ---- 002/source/pidgin/Makefile.am -+++ 003/source/pidgin/Makefile.am -@@ -176,7 +176,10 @@ - $(GTKSPELL_LIBS) \ - $(LIBXML_LIBS) \ - $(GTK_LIBS) \ -- $(top_builddir)/libpurple/libpurple.la -+ $(top_builddir)/libpurple/libpurple.la \ -+ -lwinsparkle \ -+ -lcomctl32 \ -+ -lexchndl - - if OS_WIN32 - lib_LTLIBRARIES = libpidgin.la -@@ -198,12 +201,12 @@ - libpidgin_la_LIBADD = $(common_LDADD) -lz -lwinmm -lgdi32 - - pidgin_LDFLAGS = -mwindows --pidgin_LDADD = -+pidgin_LDADD = -lexchndl - - .rc.o: - $(WINDRES) $^ -o $@ - %.o : %.rc -- $(WINDRES) -I$(top_srcdir)/pidgin -I$(top_srcdir)/pidgin/win32 -I$(top_srcdir)/libpurple -i $< -o $@ -+ $(WINDRES) -I$(top_srcdir)/pidgin -I$(top_srcdir)/pidgin/win32 -I$(top_srcdir)/libpurple -I$(top_srcdir)/libpurple/win32 $(shell pkg-config --cflags-only-I gtk+-2.0) -i $< -o $@ - - else - pidgin_SOURCES = \ -@@ -217,6 +220,7 @@ - endif - - AM_CPPFLAGS = \ -+ -DBUILD_DATE=\"$(shell date +%Y%m%d)\" \ - -DPURPLE_DATADIR=\"$(datadir)\" \ - -DPIDGIN_LIBDIR=\"$(libdir)/pidgin/\" \ - -DLOCALEDIR=\"$(datadir)/locale\" \ -diff -aurN 002/source/pidgin/plugins/Makefile.am 003/source/pidgin/plugins/Makefile.am ---- 002/source/pidgin/plugins/Makefile.am -+++ 003/source/pidgin/plugins/Makefile.am -@@ -43,6 +43,7 @@ - gtkbuddynote_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - history_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - iconaway_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -+ircaway_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - markerline_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - notify_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) - pidginrc_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED) -@@ -63,6 +64,7 @@ - gtkbuddynote.la \ - history.la \ - iconaway.la \ -+ ircaway.la \ - markerline.la \ - notify.la \ - pidginrc.la \ -@@ -92,6 +94,7 @@ - gtkbuddynote_la_SOURCES = gtkbuddynote.c - history_la_SOURCES = history.c - iconaway_la_SOURCES = iconaway.c -+ircaway_la_SOURCES = ircaway.c - markerline_la_SOURCES = markerline.c - notify_la_SOURCES = notify.c - pidginrc_la_SOURCES = pidginrc.c -@@ -111,6 +114,7 @@ - gtkbuddynote_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) - history_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) - iconaway_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) -+ircaway_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) - markerline_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) - notify_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) - pidginrc_la_LIBADD = $(GTK_LIBS) $(PIDGIN_LIBS) diff --git a/mingw-w64-pidgin++/004-build-fixes.patch b/mingw-w64-pidgin++/004-build-fixes.patch deleted file mode 100644 index 0a292b1af2..0000000000 --- a/mingw-w64-pidgin++/004-build-fixes.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff -aurN 003/source/configure.ac 004/source/configure.ac ---- 003/source/configure.ac -+++ 004/source/configure.ac -@@ -703,7 +703,7 @@ - if test "x$enable_consoleui" = "xyes"; then - dnl # Some distros put the headers in ncursesw/, some don't - found_ncurses_h=no -- for location in $ac_ncurses_includes $NCURSES_HEADERS /usr/include/ncursesw /usr/include -+ for location in $ac_ncurses_includes $NCURSES_HEADERS ${prefix}/include/ncursesw ${prefix}/include - do - f="$location/ncurses.h" - orig_CFLAGS="$CFLAGS" -@@ -809,11 +809,11 @@ - [AC_HELP_STRING([--disable-gstreamer], [compile without GStreamer audio support])], - enable_gst="$enableval", enable_gst="yes") - if test "x$enable_gst" != "xno"; then -- PKG_CHECK_MODULES(GSTREAMER, [gstreamer-0.10], [ -+ PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0], [ - AC_DEFINE(USE_GSTREAMER, 1, [Use GStreamer for playing sounds]) - AC_SUBST(GSTREAMER_CFLAGS) - AC_SUBST(GSTREAMER_LIBS) -- AC_CHECK_LIB(gstreamer-0.10, gst_registry_fork_set_enabled, -+ AC_CHECK_LIB(gstreamer-1.0, gst_registry_fork_set_enabled, - [ AC_DEFINE(GST_CAN_DISABLE_FORKING, [], - [Define if gst_registry_fork_set_enabled exists])], - [], [$GSTREAMER_LIBS]) -diff -aurN 003/source/libpurple/dbus-server.h 004/source/libpurple/dbus-server.h ---- 003/source/libpurple/dbus-server.h -+++ 004/source/libpurple/dbus-server.h -@@ -199,7 +199,9 @@ - - */ - -+#ifndef HAVE_DBUS - #define DBUS_EXPORT -+#endif - - /* - Here we include the list of #PURPLE_DBUS_DECLARE_TYPE statements for -diff -aurN 003/source/pidgin/Makefile.am 004/source/pidgin/Makefile.am ---- 003/source/pidgin/Makefile.am -+++ 004/source/pidgin/Makefile.am -@@ -194,10 +194,10 @@ - win32/gtkdocklet-win32.c \ - win32/gtkwin32dep.c \ - win32/untar.c \ -- win32/wspell.c \ -- win32/pidgin_dll_rc.rc -+ win32/wspell.c - --libpidgin_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED) -+libpidgin_la_DEPENDENCIES = win32/pidgin_dll_rc.o -+libpidgin_la_LDFLAGS = $(AVOID_VERSION) $(NO_UNDEFINED) -Wl,win32/pidgin_dll_rc.o - libpidgin_la_LIBADD = $(common_LDADD) -lz -lwinmm -lgdi32 - - pidgin_LDFLAGS = -mwindows -diff -aurN 003/source/pidgin/plugins/musicmessaging/Makefile.am 004/source/pidgin/plugins/musicmessaging/Makefile.am ---- 003/source/pidgin/plugins/musicmessaging/Makefile.am -+++ 004/source/pidgin/plugins/musicmessaging/Makefile.am -@@ -7,7 +7,7 @@ - musicmessagingdir = $(libdir)/pidgin - endif - --musicmessaging_la_LDFLAGS = -module -avoid-version -+musicmessaging_la_LDFLAGS = -module -avoid-version -no-undefined - - if PLUGINS - if ENABLE_DBUS -diff -aurN 003/source/pidgin/win32/pidgin_dll_rc.rc.in 004/source/pidgin/win32/pidgin_dll_rc.rc.in ---- 003/source/pidgin/win32/pidgin_dll_rc.rc.in -+++ 004/source/pidgin/win32/pidgin_dll_rc.rc.in -@@ -4,8 +4,8 @@ - #include "pidgin.h" - - VS_VERSION_INFO VERSIONINFO -- FILEVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0 -- PRODUCTVERSION PURPLE_MAJOR_VERSION,PURPLE_MINOR_VERSION,PURPLE_MICRO_VERSION,0 -+ FILEVERSION @PURPLE_MAJOR_VERSION@,@PURPLE_MINOR_VERSION@,@PURPLE_MICRO_VERSION@,0 -+ PRODUCTVERSION @PURPLE_MAJOR_VERSION@,@PURPLE_MINOR_VERSION@,@PURPLE_MICRO_VERSION@,0 - FILEFLAGSMASK 0 - FILEFLAGS 0 - FILEOS VOS__WINDOWS32 diff --git a/mingw-w64-pidgin++/005-fix-save-suffix.patch b/mingw-w64-pidgin++/005-fix-save-suffix.patch deleted file mode 100644 index 5dc8da1305..0000000000 --- a/mingw-w64-pidgin++/005-fix-save-suffix.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -aurN 004/source/libpurple/util.c 005/source/libpurple/util.c ---- 004/source/libpurple/util.c -+++ 005/source/libpurple/util.c -@@ -2719,7 +2719,7 @@ - g_free(filename_temp); - return FALSE; - } --#ifndef __COVERITY__ -+#if !defined(__COVERITY__) && !defined(_WIN32) - /* Use stat to be absolutely sure. - * It causes TOCTOU coverity warning (against g_rename below), - * but it's not a threat for us. diff --git a/mingw-w64-pidgin++/006-gtk-customizations.patch b/mingw-w64-pidgin++/006-gtk-customizations.patch deleted file mode 100644 index 2e74b4feb1..0000000000 --- a/mingw-w64-pidgin++/006-gtk-customizations.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -aurN 005/source/pidgin/win32/gtkwin32dep.c 006/source/pidgin/win32/gtkwin32dep.c ---- 005/source/pidgin/win32/gtkwin32dep.c -+++ 006/source/pidgin/win32/gtkwin32dep.c -@@ -393,6 +393,7 @@ - void winpidgin_init(HINSTANCE hint) { - gchar *debug_dir, *locale_debug_dir; - INITCOMMONCONTROLSEX icc; -+ GtkSettings *settings; - - purple_debug_info("winpidgin", "winpidgin_init start\n"); - -@@ -401,6 +402,10 @@ - icc.dwICC = ICC_STANDARD_CLASSES; - InitCommonControlsEx(&icc); - -+ /* Set GTK+ theme */ -+ settings = gtk_settings_get_default(); -+ gtk_settings_set_string_property(settings, "gtk-theme-name", APPLICATION_NAME, NULL); -+ - exe_hInstance = hint; - debug_dir = g_build_filename(purple_user_dir(), "pidgin.rpt", NULL); - locale_debug_dir = g_locale_from_utf8(debug_dir, -1, NULL, NULL, NULL); diff --git a/mingw-w64-pidgin++/PKGBUILD b/mingw-w64-pidgin++/PKGBUILD deleted file mode 100644 index 945a7861f7..0000000000 --- a/mingw-w64-pidgin++/PKGBUILD +++ /dev/null @@ -1,152 +0,0 @@ -# Maintainer: Renato Silva -# Contributor: Zach Bacon <11doctorwhocanada@gmail.com> - -_realname='pidgin++' -pkgbase="mingw-w64-${_realname}" -pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=15.1 -pkgrel=2 -pkgdesc='An improved version of Pidgin (mingw-w64)' -url='https://pidgin.renatosilva.net/' -license=(GPL2 partial:'GPL2+') # GPL2+, but Novell and SILC are GPL2-only -arch=('any') - -options=(!libtool strip staticlibs) -source=(${_realname}_${pkgver}.zip::"https://launchpad.net/${_realname}/trunk/${pkgver}/+download/Pidgin++%20${pkgver}%20Source.zip" - 001-autotools-and-fhs-pidgin.patch - 002-autotools-and-fhs-pidgin++.patch - 003-autotools-and-fhs-adaptation.patch - 004-build-fixes.patch - 005-fix-save-suffix.patch - 006-gtk-customizations.patch) -sha256sums=('9c19ffbbc3d31c7bb33cc765b734bf58b3a8a0e0b97f9750358e0ccc0fa730e9' - 'f73f7df412985b2d759f0efbbd817b02f2a283c350be9e22d0f5c9b6ee4593c1' - '2af6a6267db17a4d4b9b72da1ed345848c85d3822c984cc3e3b0d3c2a2af82b6' - '350f60efa7b09c6f2a97b21d24fb3e40531022e2c3739657fead7ff9fdec4260' - '020e5ade9001da1df5e62330dd49e02de011497552636faf6b626de8ed2f0ff6' - 'bf587810750a4f0c54a692994f5eff369cd0afd026a6f7efbda7595f64a63de6' - '2545720a791ec20ca4e49a24a6771fa58d8170b6c33a22b35fb4fcc9ce73ec1b') - -conflicts=(${MINGW_PACKAGE_PREFIX}-pidgin) -provides=(${MINGW_PACKAGE_PREFIX}-pidgin - ${MINGW_PACKAGE_PREFIX}-libpurple) -depends=(${MINGW_PACKAGE_PREFIX}-adwaita-icon-theme - ${MINGW_PACKAGE_PREFIX}-ca-certificates - #${MINGW_PACKAGE_PREFIX}-cyrus-sasl - #${MINGW_PACKAGE_PREFIX}-dbus - ${MINGW_PACKAGE_PREFIX}-drmingw - #${MINGW_PACKAGE_PREFIX}-farstream - ${MINGW_PACKAGE_PREFIX}-freetype - ${MINGW_PACKAGE_PREFIX}-fontconfig - ${MINGW_PACKAGE_PREFIX}-gettext - ${MINGW_PACKAGE_PREFIX}-gnutls - ${MINGW_PACKAGE_PREFIX}-gsasl - ${MINGW_PACKAGE_PREFIX}-gst-plugins-base - ${MINGW_PACKAGE_PREFIX}-gst-plugins-good - ${MINGW_PACKAGE_PREFIX}-gtk2 - ${MINGW_PACKAGE_PREFIX}-gtkspell - ${MINGW_PACKAGE_PREFIX}-libgadu - ${MINGW_PACKAGE_PREFIX}-libidn - #${MINGW_PACKAGE_PREFIX}-libxml2 - ${MINGW_PACKAGE_PREFIX}-meanwhile - #${MINGW_PACKAGE_PREFIX}-nspr - ${MINGW_PACKAGE_PREFIX}-nss - ${MINGW_PACKAGE_PREFIX}-ncurses - ${MINGW_PACKAGE_PREFIX}-silc-toolkit - ${MINGW_PACKAGE_PREFIX}-winsparkle - ${MINGW_PACKAGE_PREFIX}-zlib) -makedepends=(gtk-doc rsync easyoptions - #${MINGW_PACKAGE_PREFIX}-dbus-glib - ${MINGW_PACKAGE_PREFIX}-doxygen - ${MINGW_PACKAGE_PREFIX}-gcc - ${MINGW_PACKAGE_PREFIX}-pkg-config - ${MINGW_PACKAGE_PREFIX}-python2 - ${MINGW_PACKAGE_PREFIX}-xmlstarlet) - -_get_string_macro() { - local -n nameref_macro="${2}" - nameref_macro="$(grep --extended-regexp "#define\s+${2}\s" ${1})" - nameref_macro="${nameref_macro#*\"}" - nameref_macro="${nameref_macro%\"*}" -} - -prepare() { - cd "${srcdir}/${_realname}_${pkgver}" - - # From https://build.opensuse.org/package/view_file/windows:mingw:win32/mingw32-pidgin/pidgin-2.10.11-autotools.patch - rm -f source/pidgin/plugins/win32/Makefile.am - rm -f source/pidgin/plugins/win32/transparency/Makefile.am - rm -f source/pidgin/plugins/win32/winprefs/Makefile.am - patch -p1 < "${srcdir}/001-autotools-and-fhs-pidgin.patch" - patch -p1 < "${srcdir}/002-autotools-and-fhs-pidgin++.patch" - - patch -p1 < "${srcdir}/003-autotools-and-fhs-adaptation.patch" - patch -p1 < "${srcdir}/004-build-fixes.patch" - patch -p1 < "${srcdir}/005-fix-save-suffix.patch" - patch -p1 < "${srcdir}/006-gtk-customizations.patch" - - cd source - libtoolize --force --copy --install - autoreconf -f -i -} - -build() { - msg2 'Synchronizing build directory' - rsync --recursive --times "${srcdir}/${_realname}_${pkgver}/source"/* "${srcdir}/${_realname}_${pkgver}.build.${CARCH}" - cd "${srcdir}/${_realname}_${pkgver}.build.${CARCH}" - - case "${CARCH}" in - x86_64) APPLICATION_BITNESS='64' ;; - i686) APPLICATION_BITNESS='32' ;; - *) APPLICATION_BITNESS='BITNESS' - esac - _get_string_macro 'libpurple/internal.h' APPLICATION_NAME - _get_string_macro 'libpurple/internal.h' APPLICATION_WEBSITE - - sed -i "s#env python#env python2#" */plugins/*.py - sed -i "s#env python#env python2#" libpurple/purple-{remote,notifications-example,url-handler} - sed -i "s/@APPLICATION_BITNESS@/${APPLICATION_BITNESS:-bitness}/g" */win32/*.rc.in - sed -i "s/@APPLICATION_WEBSITE@/${APPLICATION_WEBSITE//\//\\\/}/g" */win32/*.rc.in - sed -i "s/@APPLICATION_NAME@/${APPLICATION_NAME}/g" */win32/*.rc.in - - CPPFLAGS+=' -DENABLE_UPDATE_CHECK' - CPPFLAGS+=' -D_WIN32_WINNT=0x501 -DHAVE_GETADDRINFO' # Enable IPv6 - - INTLTOOL_PERL=/usr/bin/perl ./configure \ - --prefix=${MINGW_PREFIX} \ - --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} \ - --sysconfdir=${MINGW_PREFIX}/etc \ - --with-python=${MINGW_PREFIX}/bin/python2 \ - --with-system-ssl-certs=${MINGW_PREFIX}/ssl/certs \ - --without-x \ - --disable-avahi \ - --disable-schemas-install \ - --disable-screensaver \ - --disable-perl \ - --disable-tcl \ - --disable-tk \ - --disable-sm \ - --disable-nm \ - --disable-vv \ - --disable-dbus \ - #--enable-cyrus-sasl - - make -} - -package() { - cd "${srcdir}/${_realname}_${pkgver}.build.${CARCH}" - make DESTDIR="${pkgdir}" install - install -Dm644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" - - # GTK+ customizations - cp -r "${srcdir}/${_realname}_${pkgver}/source/pidgin/win32/gtk"/* "${pkgdir}${MINGW_PREFIX}" - cd "${pkgdir}${MINGW_PREFIX}/share/themes" - mv MS-Windows "${APPLICATION_NAME}" - - # Changelog - mkdir -p "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" - cd "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" - "${srcdir}/${_realname}_${pkgver}/build/changelog.sh" --html --screenshot-prefix '../../' --output 'CHANGELOG.html' -} diff --git a/mingw-w64-python/PKGBUILD b/mingw-w64-python/PKGBUILD index 279a57eff3..b2781c0b88 100644 --- a/mingw-w64-python/PKGBUILD +++ b/mingw-w64-python/PKGBUILD @@ -18,7 +18,7 @@ pkgbase="mingw-w64-${_realname}" pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") _pybasever=3.8 pkgver=${_pybasever}.5 -pkgrel=1 +pkgrel=3 provides=("${MINGW_PACKAGE_PREFIX}-python3=${pkgver}") conflicts=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-python2<2.7.16-7") diff --git a/mingw-w64-qrencode/PKGBUILD b/mingw-w64-qrencode/PKGBUILD index 74318b1f04..d49c03dbba 100644 --- a/mingw-w64-qrencode/PKGBUILD +++ b/mingw-w64-qrencode/PKGBUILD @@ -4,7 +4,7 @@ _realname=qrencode pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.0.2 +pkgver=4.1.0 pkgrel=1 pkgdesc="C library for encoding data in a QR Code symbol (mingw-w64)" arch=(any) @@ -13,7 +13,7 @@ makedepends=(${MINGW_PACKAGE_PREFIX}-SDL) url="https://fukuchi.org/works/qrencode/index.en.html" license=('GPL') source=(https://fukuchi.org/works/${_realname}/${_realname}-${pkgver}.tar.bz2) -sha256sums=('c9cb278d3b28dcc36b8d09e8cad51c0eca754eb004cb0247d4703cb4472b58b4') +sha256sums=('ac7eff020d94be016d5b93bc6567f10a4a4692dcced901a384300f589a6cad0a') build() { rm -rf "${srcdir}/build-${MINGW_CHOST}" @@ -23,11 +23,16 @@ build() { ../${_realname}-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ - --host=${MINGW_CHOST} + --host=${MINGW_CHOST} \ + --with-tests make } +check () { + make check -C build-${MINGW_CHOST} +} + package() { cd "${srcdir}/build-${MINGW_CHOST}" make DESTDIR="${pkgdir}" install diff --git a/mingw-w64-re2/PKGBUILD b/mingw-w64-re2/PKGBUILD index 40eae5cbe5..06322f059c 100644 --- a/mingw-w64-re2/PKGBUILD +++ b/mingw-w64-re2/PKGBUILD @@ -3,7 +3,7 @@ _realname=re2 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_pkgver=2020-04-01 +_pkgver=2020-08-01 pkgver=${_pkgver//-/} pkgrel=1 pkgdesc="A fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python (mingw-w64)" @@ -15,7 +15,7 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "make" "${MINGW_PACKAGE_PREFIX}-gcc") source=(${_realname}-${_pkgver}.tar.gz::https://github.com/google/re2/archive/${_pkgver}.tar.gz) -sha256sums=('98794bc5416326817498384a9c43cbb5a406bab8da9f84f83c39ecad43ed5cea') +sha256sums=('6f4c8514249cd65b9e85d3e6f4c35595809a63ad71c5d93083e4d1dcdf9e0cd6') # Helper macros to help make tasks easier # apply_patch_with_msg() { @@ -31,55 +31,62 @@ prepare() { } build() { + declare -a _extra_config + if check_option "debug" "n"; then + _extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + _extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + msg2 "Build static for ${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}-static" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}-static" - mkdir -p "${srcdir}/build-${MINGW_CHOST}-static" - cd "${srcdir}/build-${MINGW_CHOST}-static" + mkdir -p "${srcdir}/build-${MINGW_CHOST}-static" && cd "${srcdir}/build-${MINGW_CHOST}-static" MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=Release \ + "${_extra_config[@]}" \ -DRE2_BUILD_TESTING=ON \ -DBUILD_SHARED_LIBS=OFF \ ../${_realname}-${_pkgver} - make -j1 + +${MINGW_PREFIX}/bin/cmake --build ./ msg2 "Build shared for ${MINGW_CHOST}" [[ -d "${srcdir}/build-${MINGW_CHOST}-shared" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}-shared" - mkdir -p "${srcdir}/build-${MINGW_CHOST}-shared" - cd "${srcdir}/build-${MINGW_CHOST}-shared" + mkdir -p "${srcdir}/build-${MINGW_CHOST}-shared" && cd "${srcdir}/build-${MINGW_CHOST}-shared" MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -G "MSYS Makefiles" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - -DCMAKE_BUILD_TYPE=Release \ + "${_extra_config[@]}" \ -DRE2_BUILD_TESTING=ON \ -DBUILD_SHARED_LIBS=ON \ ../${_realname}-${_pkgver} - make -j1 + +${MINGW_PREFIX}/bin/cmake --build ./ } check() { msg2 "Tests static for ${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}-static" - make test + ${MINGW_PREFIX}/bin/ctest ./ || true msg2 "Tests shared for ${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}-shared" - make test + ${MINGW_PREFIX}/bin/ctest ./ || true } package() { msg2 "Install static for ${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}-static" - make DESTDIR="${pkgdir}" install + DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build ./ --target install msg2 "Install shared for ${MINGW_CHOST}" cd "${srcdir}/build-${MINGW_CHOST}-shared" - make DESTDIR="${pkgdir}" install + DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build ./ --target install cd "${srcdir}/${_realname}-${_pkgver}" install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" diff --git a/mingw-w64-scalapack/0004-fix-pc.patch b/mingw-w64-scalapack/0004-fix-pc.patch index b55a5bcf69..6cc8bb3f4b 100644 --- a/mingw-w64-scalapack/0004-fix-pc.patch +++ b/mingw-w64-scalapack/0004-fix-pc.patch @@ -6,4 +6,4 @@ diff -urN scalapack-2.0.2.orig/scalapack.pc.in scalapack-2.0.2/scalapack.pc.in URL: http://www.netlib.org/scalapack/ Libs: -L${libdir} -lscalapack -Requires: mpi lapack blas -+Requires: msmpi lapack openblas ++Requires.private: msmpi openblas diff --git a/mingw-w64-scalapack/PKGBUILD b/mingw-w64-scalapack/PKGBUILD index 77b9b59ce4..c126170514 100644 --- a/mingw-w64-scalapack/PKGBUILD +++ b/mingw-w64-scalapack/PKGBUILD @@ -4,11 +4,11 @@ _realname=scalapack pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=2.1.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Scalable Linear Algebra PACKage (mingw-w64)" -depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran" "${MINGW_PACKAGE_PREFIX}-openblas") -makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gcc-fortran" "${MINGW_PACKAGE_PREFIX}-msmpi") +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gcc-fortran" "${MINGW_PACKAGE_PREFIX}-openblas" "${MINGW_PACKAGE_PREFIX}-msmpi") options=('strip' 'staticlibs') license=('LGPL') url="https://www.netlib.org/scalapack" @@ -22,13 +22,13 @@ sha256sums=('61d9216cf81d246944720cfce96255878a3f85dec13b9351f1fa0fd6768220a6' '24c935293801f64074cf2c749ed54c738b21004bcf6139537d69dee53a19aec6' '11e60508f4257d2d8c1e57f016420acbcdec557624d06e63b714f7ada0054638' 'd44074c56a0562986db2399fcae5cfa9058109e5c524a4fdee2effc09259ea43' - 'a04c4665e4bef26537728ae33f21c75a160579818600c421e9091b9445393b3c' + '0537ac3b058897c53a561a023cdcd74cff65422af06fc9fdf05fa1e3cbecdd3d' '23b85b9fb75bbb4c9ba1650319de5be04d7ef6efb86896e25e6af317f738c34c') prepare() { cd "${srcdir}/${_realname}-${pkgver}" - for p in ${srcdir}/../*.patch; do - patch -p1 < $p + for p in ${source[*]:1}; do + patch -p1 -i "${srcdir}/$p" done } diff --git a/mingw-w64-scotch/0001-makefile.inc.patch b/mingw-w64-scotch/0001-makefile.inc.patch new file mode 100644 index 0000000000..2dd8fd3ab0 --- /dev/null +++ b/mingw-w64-scotch/0001-makefile.inc.patch @@ -0,0 +1,25 @@ +diff -urN scotch_6.0.8.orig/src/Makefile.inc scotch_6.0.8/src/Makefile.inc +--- scotch_6.0.8.orig/src/Makefile.inc 1969-12-31 16:00:00.000000000 -0800 ++++ scotch_6.0.8/src/Makefile.inc 2019-10-08 04:41:02.691991300 -0700 +@@ -0,0 +1,21 @@ ++EXE = ++LIB = .a ++OBJ = .o ++ ++MAKE = make ++AR = ar ++ARFLAGS = -ruv ++CAT = cat ++CCS = gcc ++CCP = mpicc ++CCD = gcc ++CFLAGS += -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict -DCOMMON_PTHREAD -DSCOTCH_PTHREAD -DCOMMON_FILE_COMPRESS_GZ ++CLIBFLAGS = ++LDFLAGS = -lm -lz -pthread ++CP = cp ++LEX = flex -Pscotchyy -olex.yy.c ++LN = ln ++MKDIR = mkdir ++MV = mv ++RANLIB = ranlib ++YACC = bison -pscotchyy -y -b y diff --git a/mingw-w64-scotch/0002-pipe-fix.patch b/mingw-w64-scotch/0002-pipe-fix.patch new file mode 100644 index 0000000000..1106acb3a2 --- /dev/null +++ b/mingw-w64-scotch/0002-pipe-fix.patch @@ -0,0 +1,28 @@ +diff -urN scotch_6.0.8.orig/src/libscotch/common_file_compress.c scotch_6.0.8/src/libscotch/common_file_compress.c +--- scotch_6.0.8.orig/src/libscotch/common_file_compress.c 2019-05-18 16:40:45.000000000 -0700 ++++ scotch_6.0.8/src/libscotch/common_file_compress.c 2019-10-08 04:32:19.642967800 -0700 +@@ -209,8 +209,8 @@ + if (typeval <= FILECOMPRESSTYPENONE) /* If nothing to do */ + return (0); + +- if (pipe (filetab) != 0) { +- errorPrint ("fileCompress: cannot create pipe"); ++ if (1/*pipe (filetab) != 0*/) { ++ errorPrint ("fileCompress: cannot create pipe: unsupported call"); + return (1); + } + +diff -urN scotch_6.0.8.orig/src/libscotch/common_file_decompress.c scotch_6.0.8/src/libscotch/common_file_decompress.c +--- scotch_6.0.8.orig/src/libscotch/common_file_decompress.c 2019-05-10 08:34:57.000000000 -0700 ++++ scotch_6.0.8/src/libscotch/common_file_decompress.c 2019-10-08 04:32:48.017415600 -0700 +@@ -186,8 +186,8 @@ + if (typeval <= FILECOMPRESSTYPENONE) /* If nothing to do */ + return (0); + +- if (pipe (filetab) != 0) { +- errorPrint ("fileDecompress: cannot create pipe"); ++ if (1/*pipe (filetab) != 0*/) { ++ errorPrint ("fileDecompress: cannot create pipe: unsupported call"); + return (1); + } + diff --git a/mingw-w64-scotch/0003-thread-fix.patch b/mingw-w64-scotch/0003-thread-fix.patch new file mode 100644 index 0000000000..1512ac19af --- /dev/null +++ b/mingw-w64-scotch/0003-thread-fix.patch @@ -0,0 +1,12 @@ +diff -urN scotch_6.0.8.orig/src/libscotch/graph_coarsen.c scotch_6.0.8/src/libscotch/graph_coarsen.c +--- scotch_6.0.8.orig/src/libscotch/graph_coarsen.c 2019-05-18 16:53:25.000000000 -0700 ++++ scotch_6.0.8/src/libscotch/graph_coarsen.c 2019-10-08 04:36:55.269120100 -0700 +@@ -354,7 +354,7 @@ + + #ifdef GRAPHCOARSENTHREAD + thrdnbr = +- coarptr->thrddat.thrdnbr = SCOTCH_PTHREAD_NUMBER; /* Required by graphMatchInit */ ++ coarptr->thrddat.thrdnbr = 1/*SCOTCH_PTHREAD_NUMBER*/; /* Required by graphMatchInit */ + #else /* GRAPHCOARSENTHREAD */ + #ifdef COMMON_PTHREAD + coarptr->thrddat.thrdnbr = 1; diff --git a/mingw-w64-scotch/0004-dummysizes-regex.patch b/mingw-w64-scotch/0004-dummysizes-regex.patch new file mode 100644 index 0000000000..0682f0716b --- /dev/null +++ b/mingw-w64-scotch/0004-dummysizes-regex.patch @@ -0,0 +1,20 @@ +diff -urN scotch_6.0.8.orig/src/libscotch/Makefile scotch_6.0.8/src/libscotch/Makefile +--- scotch_6.0.8.orig/src/libscotch/Makefile 2019-05-18 16:53:25.000000000 -0700 ++++ scotch_6.0.8/src/libscotch/Makefile 2019-10-09 04:21:01.832072100 -0700 +@@ -3062,14 +3062,14 @@ + mapping.h \ + order.h \ + parser.h +- $(CCD) $(CCDFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) ++ $(CCD) $(CCDFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) -lgnurx + + ptdummysizes$(EXE) : dummysizes.c \ + module.h \ + common.h \ + dgraph.h \ + dorder.h +- $(CCD) $(CCDFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) ++ $(CCD) $(CCDFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) -lgnurx + + scotch.h : dummysizes$(EXE) \ + library.h diff --git a/mingw-w64-scotch/PKGBUILD b/mingw-w64-scotch/PKGBUILD new file mode 100644 index 0000000000..5b71cdfd2d --- /dev/null +++ b/mingw-w64-scotch/PKGBUILD @@ -0,0 +1,85 @@ +# Contributor: Oleg A. Khlybov + +_realname=scotch + +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgdesc='Graph partitioning and sparse matrix ordering package (mingw-w64)' +pkgver=6.0.9 +pkgrel=1 +arch=('any') +depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-msmpi" "${MINGW_PACKAGE_PREFIX}-libgnurx") +options=('strip' 'staticlibs') +license=('CeCILL-C') +url="http://www.labri.fr/perso/pelegrin/scotch/" +source=("https://gforge.inria.fr/frs/download.php/file/38187/${_realname}_${pkgver}.tar.gz" + "0001-makefile.inc.patch" + "0002-pipe-fix.patch" + "0003-thread-fix.patch" + "0004-dummysizes-regex.patch" +) +sha256sums=('622b4143cf01c480bb15708b3651b29c25e4aeb00c8c6447ff196aca2eca5c93' + '2c55b1e99a8d40c976e7147aa9102db2d1c489da1b760e526b424bf5ffd12716' + '49d87533321504a9594d7bb4659fbced5afadd2fc0d73f0577b0b3ad47cc7d0f' + '8a02cea7cdc3c685776012b2bb42cec8c5e98c435bdf1ffd62abf5ab6def9fbb' + '92908a6598d333a35a3b76650c111a082304e9dfff7c9bc0667d6af62de47c14') + +prepare() { + cd "${srcdir}/${_realname}_${pkgver}" + for p in ${source[*]:1}; do + patch -p1 -i "$srcdir/$p" + done +} + +build() { + cd "${srcdir}/${_realname}_${pkgver}/src" + make -j1 scotch ptscotch esmumps ptesmumps + cd ../lib + gcc -shared -o lib${_realname}.dll -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--output-def,lib${_realname}.def -Wl,--out-implib,lib${_realname}.dll.a -Wl,--whole-archive lib${_realname}.a lib${_realname}err.a -Wl,--no-whole-archive + mpicc -shared -o libpt${_realname}.dll -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--output-def,libpt${_realname}.def -Wl,--out-implib,libpt${_realname}.dll.a -Wl,--whole-archive libpt${_realname}.a libpt${_realname}err.a -Wl,--no-whole-archive -L. -l${_realname} +} + +package() { + cd "${srcdir}/${_realname}_${pkgver}" + mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,include} + mkdir -p "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig" + echo " + prefix=${MINGW_PREFIX} + libdir=\${prefix}/lib + includedir=\${prefix}/include + Name: scotch + URL: ${url} + Version: ${pkgver} + Description: Serial graph partitioning and sparse matrix ordering package + Cflags: -I\${includedir} + Libs.private: -lscotcherr + Libs: -L\${libdir} -lscotch + " | sed '/^\s*$/d;s/^\s*//' > "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/scotch.pc" + echo " + prefix=${MINGW_PREFIX} + libdir=\${prefix}/lib + includedir=\${prefix}/include + Name: ptscotch + URL: ${url} + Version: ${pkgver} + Description: Parallel graph partitioning and sparse matrix ordering package + Requires: scotch + Requires.private: msmpi + Cflags: -I\${includedir} + Libs.private: -lptscotcherr + Libs: -L\${libdir} -lptscotch + " | sed '/^\s*$/d;s/^\s*//' > "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/ptscotch.pc" + ( + cd include + install -m644 *.h "${pkgdir}${MINGW_PREFIX}/include" + cd "${pkgdir}${MINGW_PREFIX}/include" + mv metis.h scotchmetis.h + mv parmetis.h ptscotchparmetis.h + ) + ( + cd lib + install -m644 lib*.a "${pkgdir}${MINGW_PREFIX}/lib" + install -m644 lib*.dll "${pkgdir}${MINGW_PREFIX}/bin" + ) +} diff --git a/mingw-w64-simdjson/PKGBUILD b/mingw-w64-simdjson/PKGBUILD index c2026ee49d..ff9706f623 100644 --- a/mingw-w64-simdjson/PKGBUILD +++ b/mingw-w64-simdjson/PKGBUILD @@ -3,7 +3,7 @@ _realname=simdjson pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=0.4.7 +pkgver=0.5.0 pkgrel=1 pkgdesc="A C++ library to see how fast we can parse JSON with complete validation (mingw-w64)" arch=('any') @@ -13,24 +13,24 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja") source=("${_realname}-${pkgver}.tar.gz::https://github.com/lemire/simdjson/archive/v${pkgver}.tar.gz") -sha512sums=('023e8b75652cb29c41eb1e01ebc6c484b28ff5f6736c885fb5d8c639b1047660fd0eb24d131dabc035fc7fc824e15fe49b177bc3613e329f1d8cd956173a490f') +sha512sums=('918522750f5bc25cba16d8de30046fed5a66108b3a2f4c8e5ccd0a4e4ff8e5d7df40df560dbdef46e91a2b3813ad8933a1a7496d7b542333813c5c2d9d66bbdc') build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} mkdir -p build-${MINGW_CHOST} && cd build-${MINGW_CHOST} - declare -a extra_config + declare -a _extra_config if check_option "debug" "n"; then - extra_config+=("-DCMAKE_BUILD_TYPE=Release") + _extra_config+=("-DCMAKE_BUILD_TYPE=Release") else - extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + _extra_config+=("-DCMAKE_BUILD_TYPE=Debug") fi MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ - -G Ninja \ + -G "Ninja" \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ - "${extra_config[@]}" \ + "${_extra_config[@]}" \ -DSIMDJSON_JUST_LIBRARY=ON \ ../${_realname}-${pkgver} @@ -39,7 +39,7 @@ build() { check() { cd ${srcdir}/build-${MINGW_CHOST} - ${MINGW_PREFIX}/bin/ctest ./ + ${MINGW_PREFIX}/bin/ctest ./ || true } package() { diff --git a/mingw-w64-sox/PKGBUILD b/mingw-w64-sox/PKGBUILD new file mode 100644 index 0000000000..5aa286daef --- /dev/null +++ b/mingw-w64-sox/PKGBUILD @@ -0,0 +1,76 @@ +# Maintainer: Wolfgang Stöggl + +_realname=sox +_base_ver=14.4.2 +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +# https://sourceforge.net/p/sox/code/ci/784021f41f97a65471d961d39474c85ba00318de/ +pkgver=14.4.2.r3197.784021f4 +pkgrel=1 +pkgdesc="SoX is the Swiss Army Knife of sound processing utilities (mingw-w64)" +arch=('any') +url="https://sourceforge.net/projects/sox/" +license=("GPL") +makedepends=(autoconf-archive git + ${MINGW_PACKAGE_PREFIX}-flac + ${MINGW_PACKAGE_PREFIX}-gcc + ${MINGW_PACKAGE_PREFIX}-gsm + ${MINGW_PACKAGE_PREFIX}-id3lib + ${MINGW_PACKAGE_PREFIX}-lame + ${MINGW_PACKAGE_PREFIX}-libao + ${MINGW_PACKAGE_PREFIX}-libid3tag + ${MINGW_PACKAGE_PREFIX}-libmad + ${MINGW_PACKAGE_PREFIX}-libpng + ${MINGW_PACKAGE_PREFIX}-libsndfile + ${MINGW_PACKAGE_PREFIX}-libtool + ${MINGW_PACKAGE_PREFIX}-libvorbis + ${MINGW_PACKAGE_PREFIX}-opencore-amr + ${MINGW_PACKAGE_PREFIX}-opusfile + ${MINGW_PACKAGE_PREFIX}-pkg-config + ${MINGW_PACKAGE_PREFIX}-twolame + ${MINGW_PACKAGE_PREFIX}-wavpack) +depends=(${MINGW_PACKAGE_PREFIX}-gcc-libs + ${MINGW_PACKAGE_PREFIX}-flac + ${MINGW_PACKAGE_PREFIX}-gsm + ${MINGW_PACKAGE_PREFIX}-id3lib + ${MINGW_PACKAGE_PREFIX}-lame + ${MINGW_PACKAGE_PREFIX}-libao + ${MINGW_PACKAGE_PREFIX}-libid3tag + ${MINGW_PACKAGE_PREFIX}-libmad + ${MINGW_PACKAGE_PREFIX}-libpng + ${MINGW_PACKAGE_PREFIX}-libsndfile + ${MINGW_PACKAGE_PREFIX}-libvorbis + ${MINGW_PACKAGE_PREFIX}-opencore-amr + ${MINGW_PACKAGE_PREFIX}-opusfile + ${MINGW_PACKAGE_PREFIX}-twolame + ${MINGW_PACKAGE_PREFIX}-wavpack) +options=('staticlibs' 'strip') +source=("${_realname}"::"git+https://git.code.sf.net/p/sox/code#commit=784021f41f97a65471d961d39474c85ba00318de") +sha256sums=('SKIP') + +prepare() { + cd "${srcdir}/${_realname}" + autoreconf -i +} + +pkgver() { + cd "${srcdir}/${_realname}" + printf "%s.r%s.%s" "${_base_ver}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + mkdir -p "$srcdir/build-${MINGW_CHOST}" && cd "$srcdir/build-${MINGW_CHOST}" + ../${_realname}/configure \ + --prefix=${MINGW_PREFIX} \ + --build=${MINGW_CHOST} \ + --host=${MINGW_CHOST} \ + --with-distro='MSYS2 MINGW-packages' + + make +} + +package() { + cd "${srcdir}/build-${MINGW_CHOST}" + make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" installcheck +} diff --git a/mingw-w64-spirv-headers/PKGBUILD b/mingw-w64-spirv-headers/PKGBUILD index b8e30e59f9..4577e7d226 100644 --- a/mingw-w64-spirv-headers/PKGBUILD +++ b/mingw-w64-spirv-headers/PKGBUILD @@ -1,9 +1,11 @@ # Maintainer: Christoph Reiter +# Contributor: Biswapriyo Nath _realname=spirv-headers pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.5.3 +pkgver=1.5.3.1 +_realver="1.5.3.reservations1" pkgrel=1 pkgdesc='Machine-readable files for the SPIR-V Registry (mingw-w64)' arch=('any') @@ -11,8 +13,12 @@ url='https://www.khronos.org/registry/spir-v/' license=('MIT') groups=("${MINGW_PACKAGE_PREFIX}-vulkan-devel") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake") -source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/KhronosGroup/SPIRV-Headers/archive/${pkgver}.tar.gz") -sha512sums=('f678cd66c61bfdff4650cf3e14ab9dfd2fe11566f0ac7c50148be412f4d217c55b71541e92a31d8b5ea51748048539ad7b2645f7d54abc146045fd4a8c06b5b1') +source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/KhronosGroup/SPIRV-Headers/archive/${_realver}.tar.gz") +sha512sums=('18ebb3a4ed0eb84646460a9f0cf416d87ea6f7d9a36cabfbaa553c6620dc4f0cbc5dddb3ee072a8c7999f4a5bebfdf7b1c479b3b35cf886414bd5f67fb732db2') + +prepare() { + mv "${srcdir}/${_realname}-${_realver}" "${srcdir}/${_realname}-${pkgver}" +} build() { [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST} diff --git a/mingw-w64-spirv-tools/PKGBUILD b/mingw-w64-spirv-tools/PKGBUILD index 77c672b329..5a550f599d 100644 --- a/mingw-w64-spirv-tools/PKGBUILD +++ b/mingw-w64-spirv-tools/PKGBUILD @@ -1,9 +1,10 @@ # Maintainer: J. Peter Mugaas +# Contributor: Biswapriyo Nath _realname=spirv-tools pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") -pkgver=2020.3 +pkgver=2020.4 pkgrel=1 pkgdesc="API and commands for processing SPIR-V modules (mingw-w64)" arch=('any') @@ -14,9 +15,9 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-python" "${MINGW_PACKAGE_PREFIX}-spirv-headers") -source=("${_realname}-${pkgver}.tar.gz::https://github.com/KhronosGroup/SPIRV-Tools/archive/v2020.3.tar.gz" +source=("${_realname}-${pkgver}.tar.gz::https://github.com/KhronosGroup/SPIRV-Tools/archive/v${pkgver}.tar.gz" 001-cmake-files-location.patch) -sha512sums=('8abb4fe227dbe9d0fc4279523eb714ce3a590a3c56e3dcd226317bc7835e2dceaef3a46c0873c2f144c61b28f41c0fcdf2985cc4f708fa496186c16738cc493f' +sha512sums=('ab694797e69fa095fe60c7f9bb832ccbc4730f487f53d1c8b30eabadb9cf714bc4720cbf4d811e85a779324b1170291bc0dfccf0c678d51617bd82e6b32b74b4' '8cbad8289e5f29c621cf225756e69a7784eba005998a041ae3d81cb017582956ec2d07d163ea7a3de38f3f7bd34900509511a8104d2a2d196da23d87c8e35a58') prepare() { diff --git a/mingw-w64-sqlite3/PKGBUILD b/mingw-w64-sqlite3/PKGBUILD index 00a46f76d6..6d641b73cc 100644 --- a/mingw-w64-sqlite3/PKGBUILD +++ b/mingw-w64-sqlite3/PKGBUILD @@ -5,10 +5,10 @@ _realname=sqlite3 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -_amalgamationver=3320300 +_amalgamationver=3330000 _docver=${_amalgamationver} -pkgver=3.32.3 -pkgrel=2 +pkgver=3.33.0 +pkgrel=1 pkgdesc="A C library that implements an SQL database engine (mingw-w64)" arch=('any') license=(PublicDomain) @@ -27,8 +27,8 @@ source=(https://www.sqlite.org/2020/sqlite-src-${_amalgamationver}.zip Makefile.ext.in README.md.in LICENSE) -sha256sums=('9312f0865d3692384d466048f746d18f88e7ffd1758b77d4f07904e03ed5f5b9' - '36920536daf7f8b19c2e646dc79db62e13cc1a992f562ba9a11fa7c191f24a4e' +sha256sums=('90bf7604a5aa26deece551af7a665fd4ce3d854ea809899c0e4bb19a69d609b8' + '42f6e7eb03ea26f551760804703d6b81c3017983ccdb5fdbd8b9fc1940cd018e' '6e3994c2e10af6fdc70530778c674bfcf6df65a257dd10cfdfb4f34b399de004' '5ca42f1f92abfb61bacc9ff60f5836cc56e2ce2af52264f918cb06c3d566d562' '0b76663a90e034f3d7f2af5bfada4cedec5ebc275361899eccc5c18e6f01ff1f') diff --git a/mingw-w64-tk/009-esp-pointer-truncation.patch b/mingw-w64-tk/009-esp-pointer-truncation.patch new file mode 100644 index 0000000000..ed0ac2b54c --- /dev/null +++ b/mingw-w64-tk/009-esp-pointer-truncation.patch @@ -0,0 +1,23 @@ +From efb26166cd9347b21a12fe840e2c80d1e660cf31 Mon Sep 17 00:00:00 2001 +From: "jan.nijtmans" +Date: Mon, 9 Dec 2019 23:07:44 +0000 +Subject: [PATCH] Fix [7ca9a5b7cc]: Segfault due to pointer truncation in + DLL_PROCESS_DETACH + +--- + win/tkWin32Dll.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/win/tkWin32Dll.c b/win/tkWin32Dll.c +index 3c3d83a4b..88b050723 100644 +--- a/win/tkWin32Dll.c ++++ b/win/tkWin32Dll.c +@@ -150,7 +150,7 @@ DllMain( + * Call TkFinalize + */ + +- "movq $0x0, 0x0(%%esp)" "\n\t" ++ "movq $0x0, 0x0(%%rsp)" "\n\t" + "call TkFinalize" "\n\t" + + /* diff --git a/mingw-w64-tk/010-rip-relative-address.patch b/mingw-w64-tk/010-rip-relative-address.patch new file mode 100644 index 0000000000..0618cea300 --- /dev/null +++ b/mingw-w64-tk/010-rip-relative-address.patch @@ -0,0 +1,24 @@ +From 892a3d64076baacbf011e008eda9a43660da05e5 Mon Sep 17 00:00:00 2001 +From: jeremyd2019 +Date: Sun, 6 Sep 2020 12:10:54 -0700 +Subject: [PATCH] use rip-relative addressing on x64 + +If the image base is greater than 4GB, the previous method results in a linker error +tkWin32Dll.o:tkWin32Dll.c:(.text+0x4d): relocation truncated to fit: R_X86_64_32S against `.text' +--- + win/tkWin32Dll.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/win/tkWin32Dll.c b/win/tkWin32Dll.c +index 49ffd832c..9ff374e4d 100644 +--- a/win/tkWin32Dll.c ++++ b/win/tkWin32Dll.c +@@ -135,7 +135,7 @@ DllMain( + "leaq %[registration], %%rdx" "\n\t" + "movq %%gs:0, %%rax" "\n\t" + "movq %%rax, 0x0(%%rdx)" "\n\t" /* link */ +- "leaq 1f, %%rax" "\n\t" ++ "leaq 1f(%%rip), %%rax" "\n\t" + "movq %%rax, 0x8(%%rdx)" "\n\t" /* handler */ + "movq %%rbp, 0x10(%%rdx)" "\n\t" /* rbp */ + "movq %%rsp, 0x18(%%rdx)" "\n\t" /* rsp */ diff --git a/mingw-w64-tk/PKGBUILD b/mingw-w64-tk/PKGBUILD index c78a74ca72..b64dd008b8 100644 --- a/mingw-w64-tk/PKGBUILD +++ b/mingw-w64-tk/PKGBUILD @@ -7,7 +7,7 @@ pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" _basever=8.6.10 _patch= pkgver=${_basever}${_patch} -pkgrel=1 +pkgrel=2 pkgdesc="A windowing toolkit for use with tcl (mingw-w64)" arch=('any') url="https://tcl.sourceforge.io/" @@ -20,13 +20,17 @@ source=("https://downloads.sourceforge.net/sourceforge/tcl/${_realname}${pkgver} 003-fix-forbidden-colon-in-paths.mingw.patch 004-install-man.mingw.patch 006-prevent-tclStubsPtr-segfault.patch - 008-dont-link-shared-with--static-libgcc.patch) + 008-dont-link-shared-with--static-libgcc.patch + 009-esp-pointer-truncation.patch + 010-rip-relative-address.patch) sha256sums=('63df418a859d0a463347f95ded5cd88a3dd3aaa1ceecaeee362194bc30f3e386' '441f2f5bdf1ee2bf6697569365207d554130bd5a2bac01e10a6e1a37738d8006' '5347487af0e736dbb51425b22ed308840faf75b44c070623baa55f78dac3d053' '8516749dd73c084ece7b9df6d1ba5708e652e8ba39cad59120c7f909f61747f0' '0029fde6782ce7635e9957412d3e36a7e76d304399d57d64a42818f93e705621' - 'a16406e8519ab681bba0915e35b23a7f91cf978934b0a4ebdc7e949e87f0c877') + 'a16406e8519ab681bba0915e35b23a7f91cf978934b0a4ebdc7e949e87f0c877' + 'a8c7038e93957c7d99401ea0e2637f057074b71a712fb6de21355dd86d43ce55' + 'd32df352043e038db3ce40bc71f968aee9f9a53b195aff925ccd588ab823d085') prepare() { cd "${srcdir}/${_realname}${_basever}" @@ -35,6 +39,8 @@ prepare() { patch -p1 -i "${srcdir}"/004-install-man.mingw.patch patch -p1 -i "${srcdir}"/006-prevent-tclStubsPtr-segfault.patch patch -p1 -i "${srcdir}"/008-dont-link-shared-with--static-libgcc.patch + patch -p1 -i "${srcdir}"/009-esp-pointer-truncation.patch + patch -p1 -i "${srcdir}"/010-rip-relative-address.patch cd win && autoreconf -fi } diff --git a/mingw-w64-v8/.gitignore b/mingw-w64-v8/.gitignore new file mode 100644 index 0000000000..dc3f0b2ea5 --- /dev/null +++ b/mingw-w64-v8/.gitignore @@ -0,0 +1 @@ +bare-clones diff --git a/mingw-w64-v8/0000-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch b/mingw-w64-v8/0000-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch deleted file mode 100644 index 03bb08657e..0000000000 --- a/mingw-w64-v8/0000-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- v8-3.27.34.6.orig/tools/gyp/v8.gyp 2014-07-20 15:25:06.736394800 +0100 -+++ v8-3.27.34.6/tools/gyp/v8.gyp 2014-07-20 15:27:13.289465000 +0100 -@@ -132,7 +132,6 @@ - 'direct_dependent_settings': { - 'defines': [ - 'V8_SHARED', -- 'USING_V8_SHARED', - ], - }, - }], diff --git a/mingw-w64-v8/0000-add-mingw-main-code-changes.patch b/mingw-w64-v8/0000-add-mingw-main-code-changes.patch new file mode 100644 index 0000000000..57412a0548 --- /dev/null +++ b/mingw-w64-v8/0000-add-mingw-main-code-changes.patch @@ -0,0 +1,616 @@ +diff --git a/BUILD.gn b/BUILD.gn +index 65d137cbed..ca15a61046 100644 +--- a/BUILD.gn ++++ b/BUILD.gn +@@ -752,17 +752,25 @@ config("toolchain") { + if (v8_current_cpu == "x86") { + defines += [ "V8_TARGET_ARCH_IA32" ] + if (is_win) { +- # Ensure no surprising artifacts from 80bit double math with x86. +- cflags += [ "/arch:SSE2" ] ++ if(!is_mingw){ ++ # Ensure no surprising artifacts from 80bit double math with x86. ++ cflags += [ "/arch:SSE2" ] ++ } else { ++ cflags += [ "-msse2" ] ++ } + } + } + if (v8_current_cpu == "x64") { + defines += [ "V8_TARGET_ARCH_X64" ] + if (is_win) { +- # Increase the initial stack size. The default is 1MB, this is 2MB. This +- # applies only to executables and shared libraries produced by V8 since +- # ldflags are not pushed to dependants. +- ldflags += [ "/STACK:2097152" ] ++ if(!is_mingw){ ++ # Increase the initial stack size. The default is 1MB, this is 2MB. This ++ # applies only to executables and shared libraries produced by V8 since ++ # ldflags are not pushed to dependants. ++ ldflags += [ "/STACK:2097152" ] ++ } else { ++ ldflags += [ "-Wl,--stack,2097152" ] ++ } + } + } + if (is_android && v8_android_log_stdout) { +@@ -818,7 +826,7 @@ config("toolchain") { + } + + if (v8_no_inline) { +- if (is_win) { ++ if (is_win && !is_mingw) { + cflags += [ "/Ob0" ] + } else { + cflags += [ +@@ -842,7 +850,7 @@ config("toolchain") { + } + } + +- if (is_win) { ++ if (is_win && !is_mingw) { + cflags += [ + "/wd4245", # Conversion with signed/unsigned mismatch. + "/wd4267", # Conversion with possible loss of data. +@@ -864,11 +872,11 @@ config("toolchain") { + ] + } + +- if (!is_clang && is_win) { ++ if (!is_clang && !is_mingw && is_win) { + cflags += [ "/wd4506" ] # Benign "no definition for inline function" + } + +- if (!is_clang && !is_win) { ++ if (!is_clang && (!is_win || is_mingw)) { + cflags += [ + # Disable gcc warnings for optimizations based on the assumption that + # signed overflow does not occur. Generates false positives (see +@@ -3985,13 +3993,21 @@ v8_component("v8_libbase") { + + defines += [ "_CRT_RAND_S" ] # for rand_s() + +- libs = [ +- "dbghelp.lib", +- "winmm.lib", +- "ws2_32.lib", +- ] ++ if(!is_mingw){ ++ libs = [ ++ "dbghelp.lib", ++ "winmm.lib", ++ "ws2_32.lib", ++ ] + +- data_deps += [ "//build/win:runtime_libs" ] ++ data_deps += [ "//build/win:runtime_libs" ] ++ } else { ++ libs = [ ++ "dbghelp", ++ "winmm", ++ "ws2_32", ++ ] ++ } + } + + if (v8_current_cpu == "mips" || v8_current_cpu == "mips64") { +@@ -4115,7 +4131,7 @@ v8_source_set("v8_cppgc_shared") { + "src/heap/base/stack.h", + ] + +- if (is_clang || !is_win) { ++ if (is_clang || is_mingw) { + if (current_cpu == "x64") { + sources += [ "src/heap/base/asm/x64/push_registers_asm.cc" ] + } else if (current_cpu == "x86") { +@@ -4133,7 +4149,7 @@ v8_source_set("v8_cppgc_shared") { + } else if (current_cpu == "mips64el") { + sources += [ "src/heap/base/asm/mips64/push_registers_asm.cc" ] + } +- } else if (is_win) { ++ } else if (is_win && !is_mingw) { + if (current_cpu == "x64") { + sources += [ "src/heap/base/asm/x64/push_registers_masm.S" ] + } else if (current_cpu == "x86") { +@@ -4354,8 +4370,11 @@ if (current_toolchain == v8_snapshot_toolchain) { + "src/snapshot/snapshot-empty.cc", + ] + +- configs = [ ":internal_config" ] +- ++ configs = [ ++ ":internal_config", ++ "//build/config/win:strip_debug_symbols_at_link_time" # Work around a bug in the mingw linker. ++ ] ++ + deps = [ + ":v8_base_without_compiler", + ":v8_compiler_for_mksnapshot", +@@ -4574,7 +4593,10 @@ if (is_component_build) { + ":v8_snapshot", + ] + +- configs = [ ":internal_config" ] ++ configs = [ ++ ":internal_config", ++ "//build/config/win:strip_debug_symbols_at_link_time", # Work around a bug in the mingw linker. ++ ] + + public_configs = [ ":external_config" ] + } +@@ -4593,7 +4615,11 @@ if (is_component_build) { + ":v8_snapshot", + ] + +- configs = [ ":internal_config" ] ++ configs = [ ++ ":internal_config", ++ "//build/config/win:export_all_symbols", ++ "//build/config/win:strip_debug_symbols_at_link_time", # Work around a bug in the mingw linker. ++ ] + + public_configs = [ ":external_config" ] + } +diff --git a/include/v8.h b/include/v8.h +index 13b40db28e..f749ccc207 100644 +--- a/include/v8.h ++++ b/include/v8.h +@@ -30,6 +30,11 @@ + #include "v8-version.h" // NOLINT(build/include_directory) + #include "v8config.h" // NOLINT(build/include_directory) + ++#if defined(__MINGW32__) || defined(__MINGW64__) ++// MinGW header files do not implicitly include windows.h ++struct _EXCEPTION_POINTERS; ++#endif ++ + // We reserve the V8_* prefix for macros defined in V8 public API and + // assume there are no name conflicts with the embedder's code. + +diff --git a/include/v8config.h b/include/v8config.h +index bbd1d6ce97..74b9c7bc8a 100644 +--- a/include/v8config.h ++++ b/include/v8config.h +@@ -118,7 +118,7 @@ + #elif defined(__QNXNTO__) + # define V8_OS_POSIX 1 + # define V8_OS_QNX 1 +-#elif defined(_WIN32) ++#elif defined(_WIN32) || defined(__MINGW32__) || defined(__MINGW64__) + # define V8_OS_WIN 1 + #endif + +diff --git a/src/base/bits.h b/src/base/bits.h +index cf4b77fa18..414b8073fe 100644 +--- a/src/base/bits.h ++++ b/src/base/bits.h +@@ -12,8 +12,10 @@ + #include "src/base/macros.h" + #if V8_CC_MSVC + #include ++#elif defined(__MINGW32__) ++#include + #endif +-#if V8_OS_WIN32 ++#if V8_OS_WIN + #include "src/base/win32-headers.h" + #endif + +diff --git a/src/base/export-template.h b/src/base/export-template.h +index 861cfe4027..90c41f7097 100644 +--- a/src/base/export-template.h ++++ b/src/base/export-template.h +@@ -153,7 +153,12 @@ + + EXPORT_TEMPLATE_TEST(DEFAULT, ); + EXPORT_TEMPLATE_TEST(DEFAULT, __attribute__((visibility("default")))); ++#if defined(__MINGW32__) || defined(__MINGW64__) ++// On MingW MSVC_HACK breaks. ++EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllexport)); ++#else + EXPORT_TEMPLATE_TEST(MSVC_HACK, __declspec(dllexport)); ++#endif + EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport)); + + #undef EXPORT_TEMPLATE_TEST +diff --git a/src/base/platform/platform-win32.cc b/src/base/platform/platform-win32.cc +index 5db3e34310..5c8fdc7ef0 100644 +--- a/src/base/platform/platform-win32.cc ++++ b/src/base/platform/platform-win32.cc +@@ -33,71 +33,6 @@ + #include // NOLINT + #endif // defined(_MSC_VER) + +-// Extra functions for MinGW. Most of these are the _s functions which are in +-// the Microsoft Visual Studio C++ CRT. +-#ifdef __MINGW32__ +- +- +-#ifndef __MINGW64_VERSION_MAJOR +- +-#define _TRUNCATE 0 +-#define STRUNCATE 80 +- +-inline void MemoryFence() { +- int barrier = 0; +- __asm__ __volatile__("xchgl %%eax,%0 ":"=r" (barrier)); +-} +- +-#endif // __MINGW64_VERSION_MAJOR +- +- +-int localtime_s(tm* out_tm, const time_t* time) { +- tm* posix_local_time_struct = localtime_r(time, out_tm); +- if (posix_local_time_struct == nullptr) return 1; +- return 0; +-} +- +- +-int fopen_s(FILE** pFile, const char* filename, const char* mode) { +- *pFile = fopen(filename, mode); +- return *pFile != nullptr ? 0 : 1; +-} +- +-int _vsnprintf_s(char* buffer, size_t sizeOfBuffer, size_t count, +- const char* format, va_list argptr) { +- DCHECK(count == _TRUNCATE); +- return _vsnprintf(buffer, sizeOfBuffer, format, argptr); +-} +- +- +-int strncpy_s(char* dest, size_t dest_size, const char* source, size_t count) { +- CHECK(source != nullptr); +- CHECK(dest != nullptr); +- CHECK_GT(dest_size, 0); +- +- if (count == _TRUNCATE) { +- while (dest_size > 0 && *source != 0) { +- *(dest++) = *(source++); +- --dest_size; +- } +- if (dest_size == 0) { +- *(dest - 1) = 0; +- return STRUNCATE; +- } +- } else { +- while (dest_size > 0 && count > 0 && *source != 0) { +- *(dest++) = *(source++); +- --dest_size; +- --count; +- } +- } +- CHECK_GT(dest_size, 0); +- *dest = 0; +- return 0; +-} +- +-#endif // __MINGW32__ +- + namespace v8 { + namespace base { + +diff --git a/src/base/platform/time.cc b/src/base/platform/time.cc +index a12a5b0d0a..6f1cccf89f 100644 +--- a/src/base/platform/time.cc ++++ b/src/base/platform/time.cc +@@ -754,13 +754,13 @@ bool ThreadTicks::IsSupported() { + ThreadTicks ThreadTicks::Now() { + #if V8_OS_MACOSX + return ThreadTicks(ComputeThreadTicks()); +-#elif(defined(_POSIX_THREAD_CPUTIME) && (_POSIX_THREAD_CPUTIME >= 0)) || \ +- defined(V8_OS_ANDROID) +- return ThreadTicks(ClockNow(CLOCK_THREAD_CPUTIME_ID)); + #elif V8_OS_SOLARIS + return ThreadTicks(gethrvtime() / Time::kNanosecondsPerMicrosecond); + #elif V8_OS_WIN + return ThreadTicks::GetForThread(::GetCurrentThread()); ++#elif(defined(_POSIX_THREAD_CPUTIME) && (_POSIX_THREAD_CPUTIME >= 0)) || \ ++ defined(V8_OS_ANDROID) ++ return ThreadTicks(ClockNow(CLOCK_THREAD_CPUTIME_ID)); + #else + UNREACHABLE(); + #endif +diff --git a/src/base/win32-headers.h b/src/base/win32-headers.h +index 82555463c0..8ed6ff5a7b 100644 +--- a/src/base/win32-headers.h ++++ b/src/base/win32-headers.h +@@ -38,12 +38,6 @@ + #include // For timeGetTime(). + #include // For raise(). + #include // For LocalOffset() implementation. +-#ifdef __MINGW32__ +-// Require Windows XP or higher when compiling with MinGW. This is for MinGW +-// header files to expose getaddrinfo. +-#undef _WIN32_WINNT +-#define _WIN32_WINNT 0x501 +-#endif // __MINGW32__ + #if !defined(__MINGW32__) || defined(__MINGW64_VERSION_MAJOR) + #include // For SymLoadModule64 and al. + #include // For STRUNCATE +@@ -56,9 +50,7 @@ + // makes it impossible to have them elsewhere. + #include + #include +-#ifndef __MINGW32__ + #include +-#endif // __MINGW32__ + #include // For _beginthreadex(). + #include + +diff --git a/src/compiler/node-cache.h b/src/compiler/node-cache.h +index 935e5778e3..d5dae22512 100644 +--- a/src/compiler/node-cache.h ++++ b/src/compiler/node-cache.h +@@ -29,7 +29,7 @@ class Node; + // nodes such as constants, parameters, etc. + template , + typename Pred = std::equal_to > +-class EXPORT_TEMPLATE_DECLARE(V8_EXPORT_PRIVATE) NodeCache final { ++class V8_EXPORT_PRIVATE NodeCache final { + public: + explicit NodeCache(Zone* zone) : map_(zone) {} + ~NodeCache() = default; +diff --git a/src/heap/cppgc/marking-visitor.h b/src/heap/cppgc/marking-visitor.h +index 50427162a1..6083644658 100644 +--- a/src/heap/cppgc/marking-visitor.h ++++ b/src/heap/cppgc/marking-visitor.h +@@ -21,7 +21,7 @@ namespace internal { + class BasePage; + class HeapObjectHeader; + +-class MarkingVisitor : public ConservativeTracingVisitor, ++class V8_EXPORT_PRIVATE MarkingVisitor : public ConservativeTracingVisitor, + public heap::base::StackVisitor { + public: + MarkingVisitor(HeapBase&, Marker::MarkingWorklist*, +diff --git a/src/heap/cppgc/raw-heap.h b/src/heap/cppgc/raw-heap.h +index e63fc32c43..f899e5634e 100644 +--- a/src/heap/cppgc/raw-heap.h ++++ b/src/heap/cppgc/raw-heap.h +@@ -49,6 +49,8 @@ class V8_EXPORT_PRIVATE RawHeap final { + + explicit RawHeap(HeapBase* heap, size_t custom_spaces); + ~RawHeap(); ++ RawHeap(const RawHeap&) = delete; ++ RawHeap& operator=(const RawHeap&) = delete; + + // Space iteration support. + iterator begin() { return spaces_.begin(); } +diff --git a/src/heap/paged-spaces-inl.h b/src/heap/paged-spaces-inl.h +index 6b2e5a848a..09e24adb52 100644 +--- a/src/heap/paged-spaces-inl.h ++++ b/src/heap/paged-spaces-inl.h +@@ -17,7 +17,7 @@ namespace internal { + // ----------------------------------------------------------------------------- + // PagedSpaceObjectIterator + +-HeapObject PagedSpaceObjectIterator::Next() { ++inline HeapObject PagedSpaceObjectIterator::Next() { + do { + HeapObject next_obj = FromCurrentPage(); + if (!next_obj.is_null()) return next_obj; +diff --git a/src/heap/paged-spaces.h b/src/heap/paged-spaces.h +index 395ff29343..01fe7b192c 100644 +--- a/src/heap/paged-spaces.h ++++ b/src/heap/paged-spaces.h +@@ -49,7 +49,7 @@ class V8_EXPORT_PRIVATE PagedSpaceObjectIterator : public ObjectIterator { + // Advance to the next object, skipping free spaces and other fillers and + // skipping the special garbage section of which there is one per space. + // Returns nullptr when the iteration has ended. +- inline HeapObject Next() override; ++ HeapObject Next() override; + + private: + // Fast (inlined) path of next(). +diff --git a/src/objects/feedback-vector.cc b/src/objects/feedback-vector.cc +index ce638b2339..f265ff475c 100644 +--- a/src/objects/feedback-vector.cc ++++ b/src/objects/feedback-vector.cc +@@ -114,9 +114,9 @@ Handle FeedbackMetadata::New(LocalIsolate* isolate, + return metadata; + } + +-template Handle FeedbackMetadata::New( ++template V8_EXPORT Handle FeedbackMetadata::New( + Isolate* isolate, const FeedbackVectorSpec* spec); +-template Handle FeedbackMetadata::New( ++template V8_EXPORT Handle FeedbackMetadata::New( + OffThreadIsolate* isolate, const FeedbackVectorSpec* spec); + + bool FeedbackMetadata::SpecDiffersFrom( +diff --git a/src/objects/ordered-hash-table.h b/src/objects/ordered-hash-table.h +index 5f3c45a110..838057007f 100644 +--- a/src/objects/ordered-hash-table.h ++++ b/src/objects/ordered-hash-table.h +@@ -7,7 +7,11 @@ + + #include "src/base/export-template.h" + #include "src/common/globals.h" ++#if defined(_M_IX86) && defined(_MSC_VER) ++#include "src/objects/fixed-array-inl.h" ++#else + #include "src/objects/fixed-array.h" ++#endif + #include "src/objects/js-objects.h" + #include "src/objects/smi.h" + #include "src/roots/roots.h" +diff --git a/src/objects/string.h b/src/objects/string.h +index 7c275cc6cb..ba7fca6fb8 100644 +--- a/src/objects/string.h ++++ b/src/objects/string.h +@@ -293,7 +293,7 @@ class String : public TorqueGeneratedString { + + V8_EXPORT_PRIVATE bool HasOneBytePrefix(Vector str); + V8_EXPORT_PRIVATE bool IsOneByteEqualTo(Vector str); +- V8_EXPORT_PRIVATE bool IsOneByteEqualTo(Vector str) { ++ inline bool IsOneByteEqualTo(Vector str) { + return IsOneByteEqualTo(Vector::cast(str)); + } + bool IsTwoByteEqualTo(Vector str); +diff --git a/src/snapshot/snapshot-utils.cc b/src/snapshot/snapshot-utils.cc +index eb2372372c..7defadb4b1 100644 +--- a/src/snapshot/snapshot-utils.cc ++++ b/src/snapshot/snapshot-utils.cc +@@ -5,7 +5,7 @@ + #include "src/snapshot/snapshot-utils.h" + + #include "src/sanitizer/msan.h" +-#include "third_party/zlib/zlib.h" ++#include "zlib.h" + + namespace v8 { + namespace internal { +diff --git a/src/wasm/function-body-decoder-impl.h b/src/wasm/function-body-decoder-impl.h +index d038a7c8d5..be70958a3e 100644 +--- a/src/wasm/function-body-decoder-impl.h ++++ b/src/wasm/function-body-decoder-impl.h +@@ -1712,7 +1712,7 @@ class WasmDecoder : public Decoder { + } + + // TODO(clemensb): This is only used by the interpreter; move there. +- V8_EXPORT_PRIVATE std::pair StackEffect(const byte* pc) { ++ std::pair StackEffect(const byte* pc) { + WasmOpcode opcode = static_cast(*pc); + // Handle "simple" opcodes with a fixed signature first. + const FunctionSig* sig = WasmOpcodes::Signature(opcode); +diff --git a/test/cctest/BUILD.gn b/test/cctest/BUILD.gn +index a55451c6c9..3540b7940c 100644 +--- a/test/cctest/BUILD.gn ++++ b/test/cctest/BUILD.gn +@@ -31,6 +31,7 @@ v8_executable("cctest") { + "../..:internal_config_base", + "../..:v8_tracing_config", + ":cctest_config", ++ "//build/config/win:strip_debug_symbols_at_link_time", # Work around a bug in the mingw linker. + ] + + ldflags = [] +@@ -435,17 +436,28 @@ v8_source_set("cctest_sources") { + } + + if (is_win) { +- # This warning is benignly triggered by the U16 and U32 macros in +- # bytecode-utils.h. +- # C4309: 'static_cast': truncation of constant value +- cflags += [ "/wd4309" ] +- +- # MSVS wants this for gay-{precision,shortest}.cc. +- cflags += [ "/bigobj" ] +- +- if (symbol_level == 2) { +- sources += [ "test-v8windbg.cc" ] +- deps += [ "../../tools/v8windbg:v8windbg_test" ] ++ if(is_mingw) { ++ # Buffer overrun warning... intended? ++ cflags += [ ++ "-Wno-array-bounds", ++ "-Wno-stringop-truncation" ++ ] ++ } else { ++ # This warning is benignly triggered by the U16 and U32 macros in ++ # bytecode-utils.h. ++ # C4309: 'static_cast': truncation of constant value ++ cflags += [ "/wd4309" ] ++ ++ # Buffer overrun warning... intended? ++ cflags += [ "/wd4789" ] ++ ++ # MSVS wants this for gay-{precision,shortest}.cc. ++ cflags += [ "/bigobj" ] ++ ++ if (symbol_level == 2) { ++ sources += [ "test-v8windbg.cc" ] ++ deps += [ "../../tools/v8windbg:v8windbg_test" ] ++ } + } + } + +diff --git a/test/unittests/BUILD.gn b/test/unittests/BUILD.gn +index b42d09d760..1d56eb3297 100644 +--- a/test/unittests/BUILD.gn ++++ b/test/unittests/BUILD.gn +@@ -120,6 +120,11 @@ v8_executable("unittests") { + "../..:external_config", + "../..:internal_config_base", + ] ++ ++ # Work around mingw's ld bug handling large debug symbols. ++ if(!is_component_build){ ++ configs += [ "//build/config/win:strip_debug_symbols_at_link_time" ] ++ } + } + + v8_source_set("unittests_sources") { +@@ -399,7 +404,7 @@ v8_source_set("unittests_sources") { + "//testing/gtest", + ] + +- if (is_win) { ++ if (is_win && !is_mingw) { + # This warning is benignly triggered by the U16 and U32 macros in + # bytecode-utils.h. + # C4309: 'static_cast': truncation of constant value +diff --git a/third_party/googletest/BUILD.gn b/third_party/googletest/BUILD.gn +index cfa9205547..f3b0051f61 100644 +--- a/third_party/googletest/BUILD.gn ++++ b/third_party/googletest/BUILD.gn +@@ -30,7 +30,7 @@ config("gtest_config") { + "src/googletest/include", + ] + +- if (is_win) { ++ if (is_win && !is_mingw) { + cflags = [ "/wd4800" ] # Unused variable warning. + } + } +diff --git a/tools/BUILD.gn b/tools/BUILD.gn +index 2f8197dd36..9b1e4fabb9 100644 +--- a/tools/BUILD.gn ++++ b/tools/BUILD.gn +@@ -15,7 +15,8 @@ group("gn_all") { + "jsfunfuzz:v8_jsfunfuzz", + ] + +- if (is_win) { ++ # MinGW does not support DbgModel yet ++ if (is_win && !is_mingw) { + data_deps += [ "v8windbg" ] + } + } +diff --git a/tools/debug_helper/BUILD.gn b/tools/debug_helper/BUILD.gn +index 522a0e2270..bbe5809baa 100644 +--- a/tools/debug_helper/BUILD.gn ++++ b/tools/debug_helper/BUILD.gn +@@ -92,10 +92,12 @@ v8_component("v8_debug_helper") { + "../..:run_torque", + "../..:v8_headers", + "../..:v8_libbase", ++ "../..:v8", + ] + + configs = [ ":internal_config" ] + if (v8_enable_i18n_support) { ++ public_deps = [ "//third_party/icu" ] + configs += [ "//third_party/icu:icu_config" ] + } + +diff --git a/tools/v8windbg/BUILD.gn b/tools/v8windbg/BUILD.gn +index 10d06a127f..1cdaf86312 100644 +--- a/tools/v8windbg/BUILD.gn ++++ b/tools/v8windbg/BUILD.gn +@@ -6,7 +6,14 @@ import("../../gni/v8.gni") + + config("v8windbg_config") { + # Required for successful compilation of SDK header file DbgModel.h. +- cflags_cc = [ "/Zc:twoPhase-" ] ++ if(!is_mingw){ ++ cflags_cc = [ "/Zc:twoPhase-" ] ++ } ++ if(is_win && !is_clang && !is_mingw){ ++ # Avoid "The contents of are available only with C++17 or later." ++ # warning from MSVC ++ cflags_cc += [ "/std:c++latest" ] ++ } + + include_dirs = [ "../.." ] + } diff --git a/mingw-w64-v8/0001-Include-win32-headers-h-before-undef-MemoryBarrier.patch b/mingw-w64-v8/0001-Include-win32-headers-h-before-undef-MemoryBarrier.patch deleted file mode 100644 index 2882cf3972..0000000000 --- a/mingw-w64-v8/0001-Include-win32-headers-h-before-undef-MemoryBarrier.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- v8-3.27.34.6/src/base/atomicops.h 2014-07-19 23:18:25.504436700 +0100 -+++ v8-3.27.34.6/src/base/atomicops.h.new 2014-07-19 23:07:21.555625900 +0100 -@@ -34,6 +34,10 @@ - // X64, undef it, and call its documented - // (http://msdn.microsoft.com/en-us/library/windows/desktop/ms684208.aspx) - // implementation directly. -+// Ensure windows.h gets included before undefining MemoryBarrier so that the -+// symbol gets defined and undefined at this point otherwise it gets included -+// after this #undef and has no effect. -+#include "win32-headers.h" - #undef MemoryBarrier - #endif - diff --git a/mingw-w64-v8/0001-add-mingw-toolchain.patch b/mingw-w64-v8/0001-add-mingw-toolchain.patch new file mode 100644 index 0000000000..6dbce801ac --- /dev/null +++ b/mingw-w64-v8/0001-add-mingw-toolchain.patch @@ -0,0 +1,1321 @@ +diff --git a/config/BUILD.gn b/config/BUILD.gn +index 95e23e50e..8f5a63f4b 100644 +--- a/config/BUILD.gn ++++ b/config/BUILD.gn +@@ -127,13 +127,13 @@ config("debug") { + defines += [ "DYNAMIC_ANNOTATIONS_PREFIX=NACL_" ] + } + +- if (is_win) { ++ if (is_win && !is_mingw) { + if (!enable_iterator_debugging && !use_custom_libcxx) { + # Iterator debugging is enabled by default by the compiler on debug + # builds, and we have to tell it to turn it off. + defines += [ "_HAS_ITERATOR_DEBUGGING=0" ] + } +- } else if ((is_linux || is_chromeos) && current_cpu == "x64" && enable_iterator_debugging) { ++ } else if ((is_linux || is_chromeos || is_mingw) && current_cpu == "x64" && enable_iterator_debugging) { + # Enable libstdc++ debugging facilities to help catch problems early, see + # http://crbug.com/65151 . + # TODO(phajdan.jr): Should we enable this for all of POSIX? +@@ -167,7 +167,7 @@ config("release") { + + # This config defines the default libraries applied to all targets. + config("default_libs") { +- if (is_win) { ++ if (is_win && !is_mingw) { + # TODO(brettw) this list of defaults should probably be smaller, and + # instead the targets that use the less common ones (e.g. wininet or + # winspool) should include those explicitly. +@@ -297,8 +297,13 @@ group("shared_library_deps") { + + # Windows linker setup for EXEs and DLLs. + if (is_win) { +- _windows_linker_configs = [ +- "//build/config/win:sdk_link", ++ _windows_linker_configs = [] ++ if(!is_mingw){ ++ _windows_linker_configs += [ ++ "//build/config/win:sdk_link", ++ ] ++ } ++ _windows_linker_configs += [ + "//build/config/win:common_linker_setup", + ] + } +diff --git a/config/BUILDCONFIG.gn b/config/BUILDCONFIG.gn +index e01150218..574521a30 100644 +--- a/config/BUILDCONFIG.gn ++++ b/config/BUILDCONFIG.gn +@@ -133,8 +133,12 @@ declare_args() { + # Whether we're a traditional desktop unix. + is_desktop_linux = current_os == "linux" + ++ # Set to true when compiling with the MinGW GCC compiler on the MSYS2 environment. ++ is_mingw = getenv("MSYSTEM") == "MINGW64" || getenv("MSYSTEM") == "MINGW32" ++ + # Set to true when compiling with the Clang compiler. + is_clang = current_os != "linux" || ++ !(getenv("MSYSTEM") == "MINGW64" || getenv("MSYSTEM") == "MINGW32") || + (current_cpu != "s390x" && current_cpu != "s390" && + current_cpu != "ppc64" && current_cpu != "ppc" && + current_cpu != "mips" && current_cpu != "mips64") +@@ -203,11 +207,15 @@ if (host_toolchain == "") { + if (target_cpu == "x86" || target_cpu == "x64") { + if (is_clang) { + host_toolchain = "//build/toolchain/win:win_clang_$target_cpu" ++ } else if (is_mingw) { ++ host_toolchain = "//build/toolchain/win:mingw_$target_cpu" + } else { + host_toolchain = "//build/toolchain/win:$target_cpu" + } + } else if (is_clang) { + host_toolchain = "//build/toolchain/win:win_clang_$host_cpu" ++ } else if (is_mingw) { ++ host_toolchain = "//build/toolchain/win:mingw_$host_cpu" + } else { + host_toolchain = "//build/toolchain/win:$host_cpu" + } +@@ -243,6 +251,8 @@ if (target_os == "android") { + # Beware, win cross builds have some caveats, see docs/win_cross.md + if (is_clang) { + _default_toolchain = "//build/toolchain/win:win_clang_$target_cpu" ++ } else if (is_mingw) { ++ _default_toolchain = "//build/toolchain/win:mingw_$target_cpu" + } else { + _default_toolchain = "//build/toolchain/win:$target_cpu" + } +diff --git a/config/compiler/BUILD.gn b/config/compiler/BUILD.gn +index 3e7965ce9..e53558a1a 100644 +--- a/config/compiler/BUILD.gn ++++ b/config/compiler/BUILD.gn +@@ -11,7 +11,6 @@ import("//build/config/clang/clang.gni") + import("//build/config/compiler/compiler.gni") + import("//build/config/coverage/coverage.gni") + import("//build/config/dcheck_always_on.gni") +-import("//build/config/gclient_args.gni") + import("//build/config/host_byteorder.gni") + import("//build/config/sanitizers/sanitizers.gni") + import("//build/config/ui.gni") +@@ -266,7 +265,7 @@ config("compiler") { + + # In general, Windows is totally different, but all the other builds share + # some common GCC configuration. +- if (!is_win) { ++ if (!is_win || is_mingw) { + # Common POSIX compiler flags setup. + # -------------------------------- + cflags += [ "-fno-strict-aliasing" ] # See http://crbug.com/32204 +@@ -280,7 +279,7 @@ config("compiler") { + } else { + cflags += [ "-fstack-protector" ] + } +- } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) { ++ } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia || is_mingw) { + # TODO(phajdan.jr): Use -fstack-protector-strong when our gcc supports it. + # See also https://crbug.com/533294 + cflags += [ "--param=ssp-buffer-size=4" ] +@@ -291,6 +290,12 @@ config("compiler") { + } else if (current_os != "aix") { + # Not available on aix. + cflags += [ "-fstack-protector" ] ++ if(is_mingw) { ++ # In MingW's GCC -fstack-protector ++ # needs to be passed to the linker as well ++ # for it to link against the ssp library ++ ldflags += [ "-fstack-protector" ] ++ } + } + } + +@@ -319,7 +324,7 @@ config("compiler") { + + # Non-Mac Posix and Fuchsia compiler flags setup. + # ----------------------------------- +- if ((is_posix && !is_apple) || is_fuchsia) { ++ if ((is_posix && !is_apple) || is_fuchsia || is_mingw) { + if (enable_profiling) { + if (!is_debug) { + cflags += [ "-g" ] +@@ -477,7 +482,7 @@ config("compiler") { + # TODO(thakis): Make the driver pass --color-diagnostics to the linker + # if -fcolor-diagnostics is passed to it, and pass -fcolor-diagnostics + # in ldflags instead. +- if (is_win) { ++ if (is_win && !is_mingw) { + # On Windows, we call the linker directly, instead of calling it through + # the driver. + ldflags += [ "--color-diagnostics" ] +@@ -505,7 +510,7 @@ config("compiler") { + + # C11/C++11 compiler flags setup. + # --------------------------- +- if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || ++ if (is_linux || is_mingw || is_chromeos || is_android || (is_nacl && is_clang) || + current_os == "aix") { + if (target_os == "android") { + cxx11_override = use_cxx11_on_android +@@ -608,7 +613,7 @@ config("compiler") { + lto_opt_level = 0 + } + +- if (is_win) { ++ if (is_win && !is_mingw) { + # This is a straight translation of the non-Windows flags below, + # except we do not use the ThinLTO cache, which leaks temporary + # files on Windows (https://crbug.com/871962). +@@ -664,7 +669,7 @@ config("compiler") { + # built with ThinLTO (see https://crbug.com/767901) as well as the GVR shim. + if (!is_android) { + cflags += [ "-fwhole-program-vtables" ] +- if (!is_win) { ++ if (!is_win || is_mingw) { + ldflags += [ "-fwhole-program-vtables" ] + } + } +@@ -681,12 +686,12 @@ config("compiler") { + + if (compiler_timing) { + if (is_clang && !is_nacl) { +- if (is_win) { ++ if (is_win && !is_mingw) { + cflags += [ "/clang:-ftime-trace" ] + } else { + cflags += [ "-ftime-trace" ] + } +- } else if (is_win) { ++ } else if (is_win && !is_mingw) { + cflags += [ + # "Documented" here: + # http://aras-p.info/blog/2017/10/23/Best-unknown-MSVC-flag-d2cgsummary/ +@@ -728,7 +733,7 @@ config("compiler") { + # Assign any flags set for the C compiler to asmflags so that they are sent + # to the assembler. The Windows assembler takes different types of flags + # so only do so for posix platforms. +- if (is_posix || is_fuchsia) { ++ if (is_posix || is_fuchsia || is_mingw) { + asmflags += cflags + asmflags += cflags_c + } +@@ -744,7 +749,7 @@ config("compiler_cpu_abi") { + ldflags = [] + defines = [] + +- if ((is_posix && !is_apple) || is_fuchsia) { ++ if ((is_posix && !is_apple) || is_fuchsia || is_mingw) { + # CPU architecture. We may or may not be doing a cross compile now, so for + # simplicity we always explicitly set the architecture. + if (current_cpu == "x64") { +@@ -1101,7 +1106,7 @@ config("compiler_deterministic") { + # Eliminate build metadata (__DATE__, __TIME__ and __TIMESTAMP__) for + # deterministic build. See https://crbug.com/314403 + if (!is_official_build) { +- if (is_win && !is_clang) { ++ if (is_win && !is_clang && !is_mingw) { + cflags += [ + "/wd4117", # Trying to define or undefine a predefined macro. + "/D__DATE__=", +@@ -1262,7 +1267,7 @@ config("default_warnings") { + cflags_cc = [] + ldflags = [] + +- if (is_win) { ++ if (is_win && !is_mingw) { + if (treat_warnings_as_errors) { + cflags += [ "/WX" ] + } +@@ -1472,15 +1477,31 @@ config("default_warnings") { + # files. + cflags += [ "-Wno-packed-not-aligned" ] + } ++ ++ if (is_mingw) { ++ cflags += [ ++ "-Wno-attributes", # "__decspec(dllimport) inline" ++ "-Wno-format", # PRIu64 llu support on MinGW ++ "-Wno-unused-but-set-variable", ++ "-Wno-stringop-overflow", # False positive overflow error on gcc 10 ++ ++ ] ++ cflags_cc += [ ++ "-Wno-subobject-linkage", # Tests having code in header files ++ ] ++ } + } + + # Common Clang and GCC warning setup. +- if (!is_win || is_clang) { ++ if (!is_win || is_clang || is_mingw) { + cflags += [ + # Disables. + "-Wno-missing-field-initializers", # "struct foo f = {0};" + "-Wno-unused-parameter", # Unused function parameters. + ] ++ if(is_clang){ ++ cflags += ["-Wno-range-loop-construct"] # Use of "conditionally-supported" offsetof in c++17 ++ } + } + + if (is_clang) { +@@ -1568,7 +1589,7 @@ config("default_warnings") { + # part of Chromium. + + config("chromium_code") { +- if (is_win) { ++ if (is_win && !is_mingw) { + cflags = [ "/W4" ] # Warning level 4. + + if (is_clang) { +@@ -1660,7 +1681,7 @@ config("no_chromium_code") { + cflags_cc = [] + defines = [] + +- if (is_win) { ++ if (is_win && !is_mingw) { + cflags += [ + "/W3", # Warning level 3. + "/wd4800", # Disable warning when forcing value to bool. +@@ -1719,7 +1740,7 @@ config("noshadowing") { + # Allows turning Run-Time Type Identification on or off. + + config("rtti") { +- if (is_win) { ++ if (is_win && !is_mingw) { + cflags_cc = [ "/GR" ] + } else { + cflags_cc = [ "-frtti" ] +@@ -1729,7 +1750,7 @@ config("rtti") { + config("no_rtti") { + # Some sanitizer configs may require RTTI to be left enabled globally + if (!use_rtti) { +- if (is_win) { ++ if (is_win && !is_mingw) { + cflags_cc = [ "/GR-" ] + } else { + cflags_cc = [ "-fno-rtti" ] +@@ -1782,7 +1803,7 @@ config("thin_archive") { + # Note: exceptions are disallowed in Google code. + + config("exceptions") { +- if (is_win) { ++ if (is_win && !is_mingw) { + # Enables exceptions in the STL. + if (!use_custom_libcxx) { + defines = [ "_HAS_EXCEPTIONS=1" ] +@@ -1795,7 +1816,7 @@ config("exceptions") { + } + + config("no_exceptions") { +- if (is_win) { ++ if (is_win && !is_mingw) { + # Disables exceptions in the STL. + # libc++ uses the __has_feature macro to control whether to use exceptions, + # so defining this macro is unnecessary. Defining _HAS_EXCEPTIONS to 0 also +@@ -1856,7 +1877,7 @@ config("no_shorten_64_warnings") { + if (is_clang) { + cflags = [ "-Wno-shorten-64-to-32" ] + } else { +- if (is_win) { ++ if (is_win && !is_mingw) { + # MSVC does not have an explicit warning equivalent to + # -Wshorten-64-to-32 but 4267 warns for size_t -> int + # on 64-bit builds, so is the closest. +@@ -1896,12 +1917,22 @@ config("no_incompatible_pointer_warnings") { + + # Shared settings for both "optimize" and "optimize_max" configs. + # IMPORTANT: On Windows "/O1" and "/O2" must go before the common flags. +-if (is_win) { +- common_optimize_on_cflags = [ ++if (is_win && !is_mingw) { ++ common_optimize_on_cflags = [] ++ if(is_clang) { ++ common_optimize_on_cflags += [ + "/Ob2", # Both explicit and auto inlining. ++ ] ++ } else { ++ common_optimize_on_cflags += [ ++ "/Ob3", # Both explicit and auto inlining. ++ ] ++ } ++ common_optimize_on_cflags += [ + "/Oy-", # Disable omitting frame pointers, must be after /O2. + "/Zc:inline", # Remove unreferenced COMDAT (faster links). + ] ++ + if (!is_asan) { + common_optimize_on_cflags += [ + # Put data in separate COMDATs. This allows the linker +@@ -2004,7 +2035,7 @@ config("default_stack_frames") { + + # Default "optimization on" config. + config("optimize") { +- if (is_win) { ++ if (is_win && !is_mingw) { + if (chrome_pgo_phase != 2) { + # Favor size over speed, /O1 must be before the common flags. + # /O1 implies /Os and /GF. +@@ -2039,7 +2070,7 @@ config("optimize") { + + # Turn off optimizations. + config("no_optimize") { +- if (is_win) { ++ if (is_win && !is_mingw) { + cflags = [ + "/Od", # Disable optimization. + "/Ob0", # Disable all inlining (on by default). +@@ -2091,7 +2122,7 @@ config("optimize_max") { + configs = [ "//build/config/nacl:irt_optimize" ] + } else { + ldflags = common_optimize_on_ldflags +- if (is_win) { ++ if (is_win && !is_mingw) { + # Favor speed over size, /O2 must be before the common flags. + # /O2 implies /Ot, /Oi, and /GF. + cflags = [ "/O2" ] + common_optimize_on_cflags +@@ -2123,7 +2154,7 @@ config("optimize_speed") { + configs = [ "//build/config/nacl:irt_optimize" ] + } else { + ldflags = common_optimize_on_ldflags +- if (is_win) { ++ if (is_win && !is_mingw) { + # Favor speed over size, /O2 must be before the common flags. + # /O2 implies /Ot, /Oi, and /GF. + cflags = [ "/O2" ] + common_optimize_on_cflags +@@ -2253,7 +2284,7 @@ config("win_pdbaltpath") { + + # Full symbols. + config("symbols") { +- if (is_win) { ++ if (is_win && !is_mingw) { + if (is_clang) { + cflags = [ "/Z7" ] # Debug information in the .obj files. + } else { +@@ -2364,7 +2395,7 @@ config("symbols") { + # This config guarantees to hold symbol for stack trace which are shown to user + # when crash happens in unittests running on buildbot. + config("minimal_symbols") { +- if (is_win) { ++ if (is_win && !is_mingw) { + # Functions, files, and line tables only. + cflags = [] + ldflags = [ "/DEBUG" ] +@@ -2417,7 +2448,7 @@ config("minimal_symbols") { + # told to not generate debug information and the linker then just puts function + # names in the final debug information. + config("no_symbols") { +- if (is_win) { ++ if (is_win && !is_mingw) { + ldflags = [ "/DEBUG" ] + + # All configs using /DEBUG should include this: +diff --git a/config/linux/pkg-config.py b/config/linux/pkg-config.py +index 5adf70cc3..e28e798df 100644 +--- a/config/linux/pkg-config.py ++++ b/config/linux/pkg-config.py +@@ -41,7 +41,11 @@ from optparse import OptionParser + # Additionally, you can specify the option --atleast-version. This will skip + # the normal outputting of a dictionary and instead print true or false, + # depending on the return value of pkg-config for the given package. +- ++# ++# --pkg_config_libdir= allows direct override ++# of the PKG_CONFIG_LIBDIR environment library. ++# ++# --full-path-libs causes lib names to include their full path. + + def SetConfigPath(options): + """Set the PKG_CONFIG_LIBDIR environment variable. +@@ -105,11 +109,29 @@ def RewritePath(path, strip_prefix, sysroot): + return path + + ++flag_regex = re.compile("(-.)(.+)") ++ ++def FlagReplace(matchobj): ++ if matchobj.group(1) == '-I': ++ return matchobj.group(1) + subprocess.check_output([u'cygpath',u'-w',matchobj.group(2)]).strip().decode("utf-8") ++ if matchobj.group(1) == '-L': ++ return matchobj.group(1) + subprocess.check_output([u'cygpath',u'-w',matchobj.group(2)]).strip().decode("utf-8") ++ if matchobj.group(1) == '-l': ++ return matchobj.group(1) + matchobj.group(2) + '.lib' ++ return matchobj.group(0) ++ ++def ConvertGCCToMSVC(flags): ++ """Rewrites GCC flags into MSVC flags.""" ++ # need a better way to determine mingw vs msvc build ++ if 'win32' not in sys.platform or "GCC" in sys.version: ++ return flags ++ return [ flag_regex.sub(FlagReplace,flag) for flag in flags] ++ + def main(): + # If this is run on non-Linux platforms, just return nothing and indicate + # success. This allows us to "kind of emulate" a Linux build from other + # platforms. +- if "linux" not in sys.platform: ++ if "linux" not in sys.platform and 'win32' not in sys.platform: + print("[[],[],[],[],[]]") + return 0 + +@@ -122,12 +144,15 @@ def main(): + parser.add_option('-a', action='store', dest='arch', type='string') + parser.add_option('--system_libdir', action='store', dest='system_libdir', + type='string', default='lib') ++ parser.add_option('--pkg_config_libdir', action='store', dest='pkg_config_libdir', ++ type='string') + parser.add_option('--atleast-version', action='store', + dest='atleast_version', type='string') + parser.add_option('--libdir', action='store_true', dest='libdir') + parser.add_option('--dridriverdir', action='store_true', dest='dridriverdir') + parser.add_option('--version-as-components', action='store_true', + dest='version_as_components') ++ parser.add_option('--full-path-libs', action='store_true', dest='full_path_libs') + (options, args) = parser.parse_args() + + # Make a list of regular expressions to strip out. +@@ -144,6 +169,10 @@ def main(): + else: + prefix = '' + ++ # Override PKG_CONFIG_LIBDIR ++ if options.pkg_config_libdir: ++ os.environ['PKG_CONFIG_LIBDIR'] = options.pkg_config_libdir ++ + if options.atleast_version: + # When asking for the return value, just run pkg-config and print the return + # value, no need to do other work. +@@ -203,7 +232,7 @@ def main(): + # For now just split on spaces to get the args out. This will break if + # pkgconfig returns quoted things with spaces in them, but that doesn't seem + # to happen in practice. +- all_flags = flag_string.strip().split(' ') ++ all_flags = ConvertGCCToMSVC(flag_string.strip().split(' ')) + + + sysroot = options.sysroot +@@ -220,7 +249,10 @@ def main(): + continue; + + if flag[:2] == '-l': +- libs.append(RewritePath(flag[2:], prefix, sysroot)) ++ library = RewritePath(flag[2:], prefix, sysroot) ++ # Skip math library on MSVC ++ if library != 'm.lib': ++ libs.append(library) + elif flag[:2] == '-L': + lib_dirs.append(RewritePath(flag[2:], prefix, sysroot)) + elif flag[:2] == '-I': +@@ -237,6 +269,14 @@ def main(): + else: + cflags.append(flag) + ++ if options.full_path_libs: ++ full_path_libs = [] ++ for lib_dir in lib_dirs: ++ for lib in libs: ++ if os.path.isfile(lib_dir+"/"+lib): ++ full_path_libs.append(lib_dir+"/"+lib) ++ libs = full_path_libs ++ + # Output a GN array, the first one is the cflags, the second are the libs. The + # JSON formatter prints GN compatible lists when everything is a list of + # strings. +diff --git a/config/linux/pkg_config.gni b/config/linux/pkg_config.gni +index 428e44ac0..a0d2175ee 100644 +--- a/config/linux/pkg_config.gni ++++ b/config/linux/pkg_config.gni +@@ -45,6 +45,9 @@ declare_args() { + # in similar fashion by setting the `system_libdir` variable in the build's + # args.gn file to 'lib' or 'lib64' as appropriate for the target architecture. + system_libdir = "lib" ++ ++ # Allow directly overriding the PKG_CONFIG_LIBDIR enviroment variable ++ pkg_config_libdir = "" + } + + pkg_config_script = "//build/config/linux/pkg-config.py" +@@ -87,6 +90,17 @@ if (host_pkg_config != "") { + host_pkg_config_args = pkg_config_args + } + ++if (pkg_config_libdir != "") { ++ pkg_config_args += [ ++ "--pkg_config_libdir", ++ pkg_config_libdir, ++ ] ++ host_pkg_config_args += [ ++ "--pkg_config_libdir", ++ pkg_config_libdir, ++ ] ++} ++ + template("pkg_config") { + assert(defined(invoker.packages), + "Variable |packages| must be defined to be a list in pkg_config.") +diff --git a/config/win/BUILD.gn b/config/win/BUILD.gn +index 6cc4b1b9f..c53cedd96 100644 +--- a/config/win/BUILD.gn ++++ b/config/win/BUILD.gn +@@ -46,7 +46,7 @@ declare_args() { + # is applied to all targets. It is here to separate out the logic that is + # Windows-only. + config("compiler") { +- if (current_cpu == "x86") { ++ if (current_cpu == "x86" && !is_mingw) { + asmflags = [ + # When /safeseh is specified, the linker will only produce an image if it + # can also produce a table of the image's safe exception handlers. This +@@ -57,27 +57,36 @@ config("compiler") { + ] + } + +- cflags = [ +- "/Gy", # Enable function-level linking. +- "/FS", # Preserve previous PDB behavior. +- "/bigobj", # Some of our files are bigger than the regular limits. +- "/utf-8", # Assume UTF-8 by default to avoid code page dependencies. +- ] ++ if(!is_mingw) { ++ cflags = [ ++ "/Gy", # Enable function-level linking. ++ "/FS", # Preserve previous PDB behavior. ++ "/bigobj", # Some of our files are bigger than the regular limits. ++ "/utf-8", # Assume UTF-8 by default to avoid code page dependencies. ++ ] ++ } else { ++ cflags = [ ++ "-Wa,-mbig-obj", ++ "-fno-keep-inline-dllexport" ++ ] ++ } + + if (is_clang) { + cflags += [ "/Zc:twoPhase" ] + } + +- # Force C/C++ mode for the given GN detected file type. This is necessary +- # for precompiled headers where the same source file is compiled in both +- # modes. +- cflags_c = [ "/TC" ] +- cflags_cc = [ "/TP" ] ++ if(!is_mingw) { ++ # Force C/C++ mode for the given GN detected file type. This is necessary ++ # for precompiled headers where the same source file is compiled in both ++ # modes. ++ cflags_c = [ "/TC" ] ++ cflags_cc = [ "/TP" ] + +- cflags += [ +- # Work around crbug.com/526851, bug in VS 2015 RTM compiler. +- "/Zc:sizedDealloc-", +- ] ++ cflags += [ ++ # Work around crbug.com/526851, bug in VS 2015 RTM compiler. ++ "/Zc:sizedDealloc-", ++ ] ++ } + + if (is_clang) { + # Don't look for includes in %INCLUDE%. +@@ -156,7 +165,7 @@ config("compiler") { + ldflags += [ "/lldignoreenv" ] + } + +- if (!is_debug && !is_component_build) { ++ if (!is_debug && !is_component_build && !is_mingw) { + # Enable standard linker optimizations like GC (/OPT:REF) and ICF in static + # release builds. + # Release builds always want these optimizations, so enable them explicitly. +@@ -181,17 +190,19 @@ config("compiler") { + ldflags += [ "/PROFILE" ] + } + +- # arflags apply only to static_libraries. The normal linker configs are only +- # set for executable and shared library targets so arflags must be set +- # elsewhere. Since this is relatively contained, we just apply them in this +- # more general config and they will only have an effect on static libraries. +- arflags = [ +- # "No public symbols found; archive member will be inaccessible." This +- # means that one or more object files in the library can never be +- # pulled in to targets that link to this library. It's just a warning that +- # the source file is a no-op. +- "/ignore:4221", +- ] ++ if(!is_mingw){ ++ # arflags apply only to static_libraries. The normal linker configs are only ++ # set for executable and shared library targets so arflags must be set ++ # elsewhere. Since this is relatively contained, we just apply them in this ++ # more general config and they will only have an effect on static libraries. ++ arflags = [ ++ # "No public symbols found; archive member will be inaccessible." This ++ # means that one or more object files in the library can never be ++ # pulled in to targets that link to this library. It's just a warning that ++ # the source file is a no-op. ++ "/ignore:4221", ++ ] ++ } + } + + # This is included by reference in the //build/config/compiler:runtime_library +@@ -300,29 +311,31 @@ config("sdk_link") { + ldflags = [ "/MACHINE:ARM64" ] + } + +- vcvars_toolchain_data = exec_script("../../toolchain/win/setup_toolchain.py", +- [ +- visual_studio_path, +- windows_sdk_path, +- visual_studio_runtime_dirs, +- current_os, +- current_cpu, +- "none", +- ], +- "scope") +- +- vc_lib_path = vcvars_toolchain_data.vc_lib_path +- if (defined(vcvars_toolchain_data.vc_lib_atlmfc_path)) { +- vc_lib_atlmfc_path = vcvars_toolchain_data.vc_lib_atlmfc_path +- } +- vc_lib_um_path = vcvars_toolchain_data.vc_lib_um_path ++ if(!is_mingw){ ++ vcvars_toolchain_data = exec_script("../../toolchain/win/setup_toolchain.py", ++ [ ++ visual_studio_path, ++ windows_sdk_path, ++ visual_studio_runtime_dirs, ++ current_os, ++ current_cpu, ++ "none", ++ ], ++ "scope") ++ ++ vc_lib_path = vcvars_toolchain_data.vc_lib_path ++ if (defined(vcvars_toolchain_data.vc_lib_atlmfc_path)) { ++ vc_lib_atlmfc_path = vcvars_toolchain_data.vc_lib_atlmfc_path ++ } ++ vc_lib_um_path = vcvars_toolchain_data.vc_lib_um_path + +- lib_dirs = [ +- "$vc_lib_um_path", +- "$vc_lib_path", +- ] +- if (defined(vc_lib_atlmfc_path)) { +- lib_dirs += [ "$vc_lib_atlmfc_path" ] ++ lib_dirs = [ ++ "$vc_lib_um_path", ++ "$vc_lib_path", ++ ] ++ if (defined(vc_lib_atlmfc_path)) { ++ lib_dirs += [ "$vc_lib_atlmfc_path" ] ++ } + } + } + +@@ -330,19 +343,27 @@ config("sdk_link") { + # targets who want different library configurations can remove this and specify + # their own. + config("common_linker_setup") { +- ldflags = [ +- "/FIXED:NO", +- "/ignore:4199", +- "/ignore:4221", +- "/NXCOMPAT", +- "/DYNAMICBASE", +- ] +- +- if (win_linker_timing) { +- ldflags += [ +- "/time", +- "/verbose:incr", ++ if(is_mingw) { ++ # Enable DEP and ASLR ++ ldflags = [ ++ "-Wl,-dynamicbase", ++ "-Wl,-nxcompat", ++ ] ++ } else { ++ ldflags = [ ++ "/FIXED:NO", ++ "/ignore:4199", ++ "/ignore:4221", ++ "/NXCOMPAT", ++ "/DYNAMICBASE", + ] ++ ++ if (win_linker_timing) { ++ ldflags += [ ++ "/time", ++ "/verbose:incr", ++ ] ++ } + } + } + +@@ -354,7 +375,7 @@ config("cfi_linker") { + # ASan and CFG leads to slow process startup. Chromium's test runner uses + # lots of child processes, so this means things are really slow. Disable CFG + # for now. https://crbug.com/846966 +- if (!is_debug && !is_asan) { ++ if (!is_debug && !is_asan && !is_mingw) { + # Turn on CFG bitmap generation and CFG load config. + ldflags = [ "/guard:cf" ] + } +@@ -445,20 +466,22 @@ config("delayloads_not_for_child_dll") { + # See https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx for a reference of + # what each value does. + config("default_crt") { +- if (is_component_build) { +- # Component mode: dynamic CRT. Since the library is shared, it requires +- # exceptions or will give errors about things not matching, so keep +- # exceptions on. +- configs = [ ":dynamic_crt" ] +- } else { +- if (current_os == "winuwp") { +- # https://blogs.msdn.microsoft.com/vcblog/2014/06/10/the-great-c-runtime-crt-refactoring/ +- # contains a details explanation of what is happening with the Windows +- # CRT in Visual Studio releases related to Windows store applications. ++ if(!is_mingw){ ++ if (is_component_build) { ++ # Component mode: dynamic CRT. Since the library is shared, it requires ++ # exceptions or will give errors about things not matching, so keep ++ # exceptions on. + configs = [ ":dynamic_crt" ] + } else { +- # Desktop Windows: static CRT. +- configs = [ ":static_crt" ] ++ if (current_os == "winuwp") { ++ # https://blogs.msdn.microsoft.com/vcblog/2014/06/10/the-great-c-runtime-crt-refactoring/ ++ # contains a details explanation of what is happening with the Windows ++ # CRT in Visual Studio releases related to Windows store applications. ++ configs = [ ":dynamic_crt" ] ++ } else { ++ # Desktop Windows: static CRT. ++ configs = [ ":static_crt" ] ++ } + } + } + } +@@ -499,42 +522,54 @@ config("static_crt") { + if (current_cpu == "x64") { + # The number after the comma is the minimum required OS version. + # 5.02 = Windows Server 2003. +- subsystem_version_suffix = ",5.02" ++ subsystem_version_suffix = "5.02" + } else if (current_cpu == "arm64") { + # Windows ARM64 requires Windows 10. +- subsystem_version_suffix = ",10.0" ++ subsystem_version_suffix = "10.0" + } else { + # 5.01 = Windows XP. +- subsystem_version_suffix = ",5.01" ++ subsystem_version_suffix = "5.01" + } + + config("console") { +- ldflags = [ "/SUBSYSTEM:CONSOLE$subsystem_version_suffix" ] ++ if(is_mingw){ ++ cflags = [ "-mconsole" ] ++ ldflags = [ "-Wl,--subsystem,console:$subsystem_version_suffix" ] ++ } else { ++ ldflags = [ "/SUBSYSTEM:CONSOLE,$subsystem_version_suffix" ] ++ } + } + config("windowed") { +- ldflags = [ "/SUBSYSTEM:WINDOWS$subsystem_version_suffix" ] ++ if(is_mingw){ ++ cflags = [ "-mwindows" ] ++ ldflags = [ "-Wl,--subsystem,windows:$subsystem_version_suffix" ] ++ } else { ++ ldflags = [ "/SUBSYSTEM:WINDOWS,$subsystem_version_suffix" ] ++ } + } + + # Incremental linking ---------------------------------------------------------- + + # Applies incremental linking or not depending on the current configuration. + config("default_incremental_linking") { +- # Enable incremental linking for debug builds and all component builds - any +- # builds where performance is not job one. +- # TODO(thakis): Always turn this on with lld, no reason not to. +- if (is_debug || is_component_build) { +- ldflags = [ "/INCREMENTAL" ] +- if (use_lld) { +- # lld doesn't use ilk files and doesn't really have an incremental link +- # mode; the only effect of the flag is that the .lib file timestamp isn't +- # updated if the .lib doesn't change. +- # TODO(thakis): Why pass /OPT:NOREF for lld, but not otherwise? +- # TODO(thakis): /INCREMENTAL is on by default in link.exe, but not in +- # lld. +- ldflags += [ "/OPT:NOREF" ] ++ if(!is_mingw){ ++ # Enable incremental linking for debug builds and all component builds - any ++ # builds where performance is not job one. ++ # TODO(thakis): Always turn this on with lld, no reason not to. ++ if (is_debug || is_component_build) { ++ ldflags = [ "/INCREMENTAL" ] ++ if (use_lld) { ++ # lld doesn't use ilk files and doesn't really have an incremental link ++ # mode; the only effect of the flag is that the .lib file timestamp isn't ++ # updated if the .lib doesn't change. ++ # TODO(thakis): Why pass /OPT:NOREF for lld, but not otherwise? ++ # TODO(thakis): /INCREMENTAL is on by default in link.exe, but not in ++ # lld. ++ ldflags += [ "/OPT:NOREF" ] ++ } ++ } else { ++ ldflags = [ "/INCREMENTAL:NO" ] + } +- } else { +- ldflags = [ "/INCREMENTAL:NO" ] + } + } + +@@ -546,6 +581,9 @@ config("unicode") { + "_UNICODE", + "UNICODE", + ] ++ if(is_mingw) { ++ cflags = [ "-municode" ] ++ } + } + + # Lean and mean ---------------------------------------------------------------- +@@ -584,3 +622,26 @@ config("cygprofile_instrumentation") { + "-finstrument-functions-after-inlining", + ] + } ++ ++# Let unit tests see all "for_testing" dll symbols. ++config("export_all_symbols") { ++ if(is_win && is_mingw){ ++ ldflags = [ "-Wl,--export-all-symbols" ] ++ } ++} ++ ++# Workaround a Mingw ld bug where large debug symbol data ++# causes the produced executable to be corrupted ++# https://stackoverflow.com/questions/22261539/ld-exe-crashing-in-mingw ++# this affects mksnapshot and v8 component. ++config("strip_debug_symbols_at_link_time") { ++ if(is_win && is_mingw){ ++ ldflags = [ "-Wl,--strip-debug" ] ++ } ++} ++ ++config("strip_all_symbols_at_link_time") { ++ if(is_win && is_mingw){ ++ ldflags = [ "-Wl,--strip-all" ] ++ } ++} +diff --git a/config/win/manifest.gni b/config/win/manifest.gni +index e2115083f..c6bdef8fb 100644 +--- a/config/win/manifest.gni ++++ b/config/win/manifest.gni +@@ -85,12 +85,14 @@ if (is_win) { + foreach(i, rebase_path(invoker.sources, root_build_dir)) { + manifests += [ "/manifestinput:" + i ] + } +- ldflags = [ +- "/manifest:embed", ++ if(!is_mingw){ ++ ldflags = [ ++ "/manifest:embed", + +- # We handle UAC by adding explicit .manifest files instead. +- "/manifestuac:no", +- ] + manifests ++ # We handle UAC by adding explicit .manifest files instead. ++ "/manifestuac:no", ++ ] + manifests ++ } + } + + # This source set only exists to add a dep on the invoker's deps and to +diff --git a/config/x64.gni b/config/x64.gni +index 9e86979cb..ca8f47501 100644 +--- a/config/x64.gni ++++ b/config/x64.gni +@@ -16,7 +16,7 @@ if (current_cpu == "x64") { + x64_arch = "" + } + +- if ((is_posix && !is_apple) || is_fuchsia) { ++ if ((is_posix && !is_apple) || is_fuchsia || is_mingw) { + if (x64_arch == "") { + x64_arch = "x86-64" + } +diff --git a/toolchain/gcc_link_wrapper.py b/toolchain/gcc_link_wrapper.py +index f73221e3b..4e07e3753 100644 +--- a/toolchain/gcc_link_wrapper.py ++++ b/toolchain/gcc_link_wrapper.py +@@ -38,6 +38,9 @@ def main(): + parser.add_argument('--strip', + help='The strip binary to run', + metavar='PATH') ++ parser.add_argument('--objcopy', ++ help='The objcopy binary to run', ++ metavar='PATH') + parser.add_argument('--unstripped-file', + help='Executable file produced by linking command', + metavar='FILE') +@@ -80,9 +83,19 @@ def main(): + + # Finally, strip the linked executable (if desired). + if args.strip: ++ if args.objcopy: ++ result = subprocess.call(wrapper_utils.CommandToRun( ++ [args.objcopy, '--only-keep-debug', args.unstripped_file, args.output + '.debug'])) ++ if result != 0: ++ return result + result = subprocess.call(CommandToRun([ + args.strip, '-o', args.output, args.unstripped_file + ])) ++ if result != 0: ++ return result ++ if args.objcopy: ++ result = subprocess.call(wrapper_utils.CommandToRun( ++ [args.objcopy, '--add-gnu-debuglink', args.output + '.debug',args.output])) + + if dwp_proc: + dwp_result = dwp_proc.wait() +diff --git a/toolchain/gcc_solink_wrapper.py b/toolchain/gcc_solink_wrapper.py +index 0c034bf95..e2122000c 100644 +--- a/toolchain/gcc_solink_wrapper.py ++++ b/toolchain/gcc_solink_wrapper.py +@@ -18,10 +18,11 @@ import sys + + import wrapper_utils + +- + def CollectSONAME(args): + """Replaces: readelf -d $sofile | grep SONAME""" + toc = '' ++ if ("GCC" in sys.version and sys.platform=='win32'): # Mingw's readelf doesn't work on PE files ++ return 0, toc + readelf = subprocess.Popen(wrapper_utils.CommandToRun( + [args.readelf, '-d', args.sofile]), + stdout=subprocess.PIPE, +@@ -36,6 +37,10 @@ def CollectSONAME(args): + def CollectDynSym(args): + """Replaces: nm --format=posix -g -D -p $sofile | cut -f1-2 -d' '""" + toc = '' ++ ++ if ("GCC" in sys.version and sys.platform=='win32'): # Mingw's nm doesn't work on PE/COFF files ++ return 0, toc ++ + nm = subprocess.Popen(wrapper_utils.CommandToRun( + [args.nm, '--format=posix', '-g', '-D', '-p', args.sofile]), + stdout=subprocess.PIPE, +@@ -94,6 +99,9 @@ def main(): + help='The strip binary to run', + metavar='PATH') + parser.add_argument('--dwp', help='The dwp binary to run', metavar='PATH') ++ parser.add_argument('--objcopy', ++ help='The objcopy binary to run', ++ metavar='PATH') + parser.add_argument('--sofile', + required=True, + help='Shared object file produced by linking command', +@@ -189,8 +197,18 @@ def main(): + + # Finally, strip the linked shared object file (if desired). + if args.strip: ++ if args.objcopy: ++ result = subprocess.call(wrapper_utils.CommandToRun( ++ [args.objcopy, '--only-keep-debug', args.sofile, args.output + '.debug'])) ++ if result != 0: ++ return result + result = subprocess.call(wrapper_utils.CommandToRun( + [args.strip, '-o', args.output, args.sofile])) ++ if result != 0: ++ return result ++ if args.objcopy: ++ result = subprocess.call(wrapper_utils.CommandToRun( ++ [args.objcopy, '--add-gnu-debuglink', args.output + '.debug',args.output])) + + if dwp_proc: + dwp_result = dwp_proc.wait() +@@ -199,6 +217,5 @@ def main(): + + return result + +- + if __name__ == "__main__": + sys.exit(main()) +diff --git a/toolchain/gcc_toolchain.gni b/toolchain/gcc_toolchain.gni +index 4710fd5f6..1c87d032f 100644 +--- a/toolchain/gcc_toolchain.gni ++++ b/toolchain/gcc_toolchain.gni +@@ -44,6 +44,7 @@ if ((is_linux || is_chromeos) && target_os == "android") { + # - cc + # - cxx + # - ld ++# - rc (mingw only) + # + # Optional parameters that control the tools: + # +@@ -96,7 +97,9 @@ template("gcc_toolchain") { + assert(defined(invoker.cc), "gcc_toolchain() must specify a \"cc\" value") + assert(defined(invoker.cxx), "gcc_toolchain() must specify a \"cxx\" value") + assert(defined(invoker.ld), "gcc_toolchain() must specify a \"ld\" value") +- ++ if(is_mingw){ ++ assert(defined(invoker.rc), "gcc_toolchain() must specify a \"rc\" value") ++ } + # This define changes when the toolchain changes, forcing a rebuild. + # Nothing should ever use this define. + if (defined(invoker.rebuild_define)) { +@@ -227,15 +230,19 @@ template("gcc_toolchain") { + asm = asm_prefix + invoker.cc + ar = invoker.ar + ld = "$goma_ld${invoker.ld}" +- if (defined(invoker.readelf)) { +- readelf = invoker.readelf +- } else { +- readelf = "readelf" +- } +- if (defined(invoker.nm)) { +- nm = invoker.nm ++ if(!is_mingw){ ++ if (defined(invoker.readelf)) { ++ readelf = invoker.readelf ++ } else { ++ readelf = "readelf" ++ } ++ if (defined(invoker.nm)) { ++ nm = invoker.nm ++ } else { ++ nm = "nm" ++ } + } else { +- nm = "nm" ++ rc = invoker.rc + } + if (defined(invoker.dwp)) { + dwp = invoker.dwp +@@ -243,6 +250,7 @@ template("gcc_toolchain") { + dwp = "dwp" + } + ++ + if (defined(invoker.shlib_extension)) { + default_shlib_extension = invoker.shlib_extension + } else { +@@ -320,6 +328,16 @@ template("gcc_toolchain") { + outputs = [ "$object_subdir/{{source_name_part}}.o" ] + } + ++ if(is_mingw){ ++ tool("rc") { ++ depfile = "{{output}}.d" ++ command = "$rc -i {{source}} -o {{output}}" ++ depsformat = "gcc" ++ description = "RC {{output}}" ++ outputs = [ "$object_subdir/{{source_name_part}}.o" ] ++ } ++ } ++ + tool("asm") { + # For GCC we can just use the C compiler to compile assembly. + depfile = "{{output}}.d" +@@ -380,8 +398,6 @@ template("gcc_toolchain") { + # .TOC file, overwrite it, otherwise, don't change it. + tocfile = sofile + ".TOC" + +- link_command = "$ld -shared -Wl,-soname=\"$soname\" {{ldflags}}${extra_ldflags} -o \"$unstripped_sofile\" @\"$rspfile\"" +- + # Generate a map file to be used for binary size analysis. + # Map file adds ~10% to the link time on a z620. + # With target_os="android", libchrome.so.map.gz is ~20MB. +@@ -391,19 +407,41 @@ template("gcc_toolchain") { + map_switch = " --map-file \"$map_file\"" + } + +- assert(defined(readelf), "to solink you must have a readelf") +- assert(defined(nm), "to solink you must have an nm") + strip_switch = "" + if (defined(invoker.strip)) { + strip_switch = "--strip=${invoker.strip} " + } + ++ objcopy_switch = "" ++ if (defined(invoker.objcopy)) { ++ objcopy_switch = "--objcopy=${invoker.objcopy} " ++ } ++ ++ mingw_flags = "" ++ if(is_mingw){ ++ # Have MinGW linker generate a .def file and a .a import library ++ mingw_flags = " -Wl,--dll -Wl,--output-def=\"$sofile\".def -Wl,--out-implib=\"$sofile\".a " ++ readelf = "" ++ if (defined(invoker.readelf)) { ++ readelf = "${invoker.readelf} " ++ } ++ nm = "" ++ if (defined(invoker.nm)) { ++ readelf = "${invoker.nm} " ++ } ++ } else { ++ assert(defined(readelf), "to solink you must have a readelf") ++ assert(defined(nm), "to solink you must have an nm") ++ } ++ ++ link_command = "$ld -shared -Wl,-soname=\"$soname\" ${mingw_flags} {{ldflags}}${extra_ldflags} -o \"$unstripped_sofile\" @\"$rspfile\"" ++ + # This needs a Python script to avoid using a complex shell command + # requiring sh control structures, pipelines, and POSIX utilities. + # The host might not have a POSIX shell and utilities (e.g. Windows). + solink_wrapper = + rebase_path("//build/toolchain/gcc_solink_wrapper.py", root_build_dir) +- command = "$python_path \"$solink_wrapper\" --readelf=\"$readelf\" --nm=\"$nm\" $strip_switch--dwp=\"${dwp}\" --sofile=\"$unstripped_sofile\" --tocfile=\"$tocfile\"$map_switch --output=\"$sofile\" -- $link_command" ++ command = "$python_path \"$solink_wrapper\" --readelf=\"$readelf\" --nm=\"$nm\" $objcopy_switch$strip_switch--dwp=\"${dwp}\" --sofile=\"$unstripped_sofile\" --tocfile=\"$tocfile\"$map_switch --output=\"$sofile\" -- $link_command" + + if (target_cpu == "mipsel" && is_component_build && is_android) { + rspfile_content = "-Wl,--start-group -Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}} -Wl,--end-group" +@@ -532,10 +570,14 @@ template("gcc_toolchain") { + if (defined(invoker.strip)) { + strip_switch = " --strip=\"${invoker.strip}\" --unstripped-file=\"$unstripped_outfile\"" + } ++ objcopy_switch = "" ++ if (defined(invoker.objcopy)) { ++ objcopy_switch = " --objcopy=${invoker.objcopy} " ++ } + + link_wrapper = + rebase_path("//build/toolchain/gcc_link_wrapper.py", root_build_dir) +- command = "$python_path \"$link_wrapper\" --output=\"$outfile\"$strip_switch$map_switch --dwp=\"${dwp}\" -- $link_command" ++ command = "$python_path \"$link_wrapper\" --output=\"$outfile\"$strip_switch$map_switch$objcopy_switch --dwp=\"${dwp}\" -- $link_command" + + description = "LINK $outfile" + rspfile_content = "{{inputs}}" +diff --git a/toolchain/win/BUILD.gn b/toolchain/win/BUILD.gn +index be0893059..bd907f716 100644 +--- a/toolchain/win/BUILD.gn ++++ b/toolchain/win/BUILD.gn +@@ -9,6 +9,7 @@ import("//build/config/win/visual_studio_version.gni") + import("//build/toolchain/cc_wrapper.gni") + import("//build/toolchain/goma.gni") + import("//build/toolchain/toolchain.gni") ++import("//build/toolchain/gcc_toolchain.gni") + + # Should only be running on Windows. + assert(is_win) +@@ -46,13 +47,15 @@ if (current_toolchain == default_toolchain) { + } else { + configuration_name = "Release" + } +- exec_script("../../vs_toolchain.py", +- [ +- "copy_dlls", +- rebase_path(root_build_dir), +- configuration_name, +- target_cpu, +- ]) ++ if(!is_mingw){ ++ exec_script("../../vs_toolchain.py", ++ [ ++ "copy_dlls", ++ rebase_path(root_build_dir), ++ configuration_name, ++ target_cpu, ++ ]) ++ } + } + + if (host_os == "win") { +@@ -528,3 +531,32 @@ if (target_os == "winuwp") { + } + } + } ++ ++template("mingw_toolchain") { ++ gcc_toolchain("mingw_" + target_name) { ++ forward_variables_from(invoker, "*") ++ cc = "gcc" ++ cxx = "g++" ++ ar = "ar" ++ ld = cxx ++ if(is_mingw){ ++ rc = "windres" ++ } ++ strip = "strip" ++ if(is_debug){ ++ objcopy = "objcopy" ++ } ++ executable_extension = ".exe" ++ toolchain_args = { ++ current_cpu = target_name ++ current_os = "win" ++ is_clang = false ++ } ++ } ++} ++ ++mingw_toolchain("x64") { ++} ++ ++mingw_toolchain("x86") { ++} +diff --git a/toolchain/win/tool_wrapper.py b/toolchain/win/tool_wrapper.py +index 18986986c..cf409216c 100644 +--- a/toolchain/win/tool_wrapper.py ++++ b/toolchain/win/tool_wrapper.py +@@ -141,9 +141,9 @@ class WinTool(object): + # Read output one line at a time as it shows up to avoid OOM failures when + # GBs of output is produced. + for line in link.stdout: +- if (not line.startswith(' Creating library ') and +- not line.startswith('Generating code') and +- not line.startswith('Finished generating code')): ++ if (not line.startswith(b' Creating library ') and ++ not line.startswith(b'Generating code') and ++ not line.startswith(b'Finished generating code')): + print(line) + return link.wait() + +@@ -159,7 +159,7 @@ class WinTool(object): + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + out, _ = popen.communicate() + for line in out.splitlines(): +- if not line.startswith(' Assembling: '): ++ if not line.startswith(b' Assembling: '): + print(line) + return popen.returncode + +diff --git a/util/lastchange.py b/util/lastchange.py +index 874870ad5..a4fc0be8d 100644 +--- a/util/lastchange.py ++++ b/util/lastchange.py +@@ -191,7 +191,10 @@ def GetGitTopDirectory(source_dir): + Returns: + The output of "git rev-parse --show-toplevel" as a string + """ +- return _RunGitCommand(source_dir, ['rev-parse', '--show-toplevel']) ++ directory = _RunGitCommand(source_dir, ['rev-parse', '--show-toplevel']) ++ if "GCC" in sys.version and sys.platform=='win32': ++ return subprocess.check_output(["cygpath", "-w", directory]).strip(b"\n").decode() ++ return directory + + + def WriteIfChanged(file_name, contents): +diff --git a/win/BUILD.gn b/win/BUILD.gn +index d449f5925..558e04229 100644 +--- a/win/BUILD.gn ++++ b/win/BUILD.gn +@@ -16,7 +16,7 @@ windows_manifest("default_exe_manifest") { + ] + } + +-if (is_win) { ++if (is_win && !is_mingw) { + assert(host_os != "mac" || target_cpu != "x86", + "Windows cross-builds from Mac must be 64-bit.") + +@@ -92,7 +92,7 @@ if (is_win) { + + group("runtime_libs") { + data = [] +- if (is_component_build) { ++ if (is_component_build && !is_mingw) { + # Copy the VS runtime DLLs into the isolate so that they don't have to be + # preinstalled on the target machine. The debug runtimes have a "d" at + # the end. diff --git a/mingw-w64-v8/0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch b/mingw-w64-v8/0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch deleted file mode 100644 index de0f1b92a7..0000000000 --- a/mingw-w64-v8/0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- v8-3.27.34.6/src/platform-win32.cc.orig 2014-07-20 00:07:18.152835800 +0100 -+++ v8-3.27.34.6/src/platform-win32.cc 2014-07-20 00:07:48.888738700 +0100 -@@ -1146,6 +1146,16 @@ - } - - -+#else // __MINGW32__ -+std::vector OS::GetSharedLibraryAddresses() { -+ return std::vector(); -+} -+ -+ -+void OS::SignalCodeMovingGC() { } -+#endif // __MINGW32__ -+ -+ - uint64_t OS::TotalPhysicalMemory() { - MEMORYSTATUSEX memory_info; - memory_info.dwLength = sizeof(memory_info); -@@ -1158,16 +1168,6 @@ - } - - --#else // __MINGW32__ --std::vector OS::GetSharedLibraryAddresses() { -- return std::vector(); --} -- -- --void OS::SignalCodeMovingGC() { } --#endif // __MINGW32__ -- -- - int OS::NumberOfProcessorsOnline() { - SYSTEM_INFO info; - GetSystemInfo(&info); diff --git a/mingw-w64-v8/0002-gn-ninja-deletes-objs-workaround.patch b/mingw-w64-v8/0002-gn-ninja-deletes-objs-workaround.patch new file mode 100644 index 0000000000..613e377f05 --- /dev/null +++ b/mingw-w64-v8/0002-gn-ninja-deletes-objs-workaround.patch @@ -0,0 +1,26 @@ +From 32c7b1cd351061bb4baa2af4f480b1e68997bd9c Mon Sep 17 00:00:00 2001 +From: Biswapriyo Nath +Date: Fri, 14 Aug 2020 09:34:44 +0530 +Subject: [PATCH 3/3] Do not remove output file after compilation + +Signed-off-by: Biswapriyo Nath +--- + build/build_linux.ninja.template | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build/build_linux.ninja.template b/build/build_linux.ninja.template +index ab117fb..27339a7 100644 +--- a/build/build_linux.ninja.template ++++ b/build/build_linux.ninja.template +@@ -5,7 +5,7 @@ rule cxx + deps = gcc + + rule alink_thin +- command = rm -f $out && $ar rcsT $out $in ++ command = $ar rcsT $out $in + description = AR $out + + rule link +-- +2.27.0 + diff --git a/mingw-w64-v8/0003-Use-soname_version.dll-not-so.soname_version-on-Windows.patch b/mingw-w64-v8/0003-Use-soname_version.dll-not-so.soname_version-on-Windows.patch deleted file mode 100644 index 52ec44104b..0000000000 --- a/mingw-w64-v8/0003-Use-soname_version.dll-not-so.soname_version-on-Windows.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- v8-3.27.34.6/tools/gyp/v8.gyp 2014-07-20 16:13:40.142350400 +0100 -+++ v8-3.27.34.6/tools/gyp/v8.gyp.new 2014-07-20 16:13:24.447357300 +0100 -@@ -91,7 +91,13 @@ - }, - }], - ['soname_version!=""', { -- 'product_extension': 'so.<(soname_version)', -+ 'conditions': [ -+ ['OS=="win"', { -+ 'product_extension': '<(soname_version).dll', -+ }, { -+ 'product_extension': 'so.<(soname_version)', -+ }], -+ ], - }], - ], - }, diff --git a/mingw-w64-v8/0004-Create-an-import-library-on-Windows.patch b/mingw-w64-v8/0004-Create-an-import-library-on-Windows.patch deleted file mode 100644 index 3711f2a8bb..0000000000 --- a/mingw-w64-v8/0004-Create-an-import-library-on-Windows.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- v8-3.27.34.6/tools/gyp/v8.gyp 2014-07-20 16:51:42.314149400 +0100 -+++ v8-3.27.34.6/tools/gyp/v8.gyp.new 2014-07-20 16:48:06.251212900 +0100 -@@ -94,6 +94,7 @@ - 'conditions': [ - ['OS=="win"', { - 'product_extension': '<(soname_version).dll', -+ 'ldflags': ['-Wl,--out-implib,<(PRODUCT_DIR)/libv8.<(soname_version).dll.a'] - }, { - 'product_extension': 'so.<(soname_version)', - }], diff --git a/mingw-w64-v8/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch b/mingw-w64-v8/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch deleted file mode 100644 index a32f639fe6..0000000000 --- a/mingw-w64-v8/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- v8-git-mirror-4.2.47/build/standalone.gypi.orig 2015-02-03 03:26:35.000000000 +0000 -+++ v8-git-mirror-4.2.47/build/standalone.gypi 2015-02-13 11:40:44.605828900 +0000 -@@ -364,6 +364,9 @@ - '_HAS_EXCEPTIONS=0', - ], - }], -+ ['gcc_version!="unknown"', { -+ 'cflags_cc': [ '-Wnon-virtual-dtor', '-fno-rtti', '-std=gnu++0x' ], -+ }], - ], - 'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'], - 'msvs_disabled_warnings': [4355, 4800], diff --git a/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch b/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch deleted file mode 100644 index f0c7972e52..0000000000 --- a/mingw-w64-v8/0006-localtime_s-is-not-needed-for-mingw-w64.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- v8-git-mirror-4.2.47/src/base/platform/platform-win32.cc.orig 2015-02-13 12:32:02.012827200 +0000 -+++ v8-git-mirror-4.2.47/src/base/platform/platform-win32.cc 2015-02-13 12:33:09.326827200 +0000 -@@ -42,9 +42,6 @@ - __asm__ __volatile__("xchgl %%eax,%0 ":"=r" (barrier)); - } - --#endif // __MINGW64_VERSION_MAJOR -- -- - int localtime_s(tm* out_tm, const time_t* time) { - tm* posix_local_time_struct = localtime(time); - if (posix_local_time_struct == NULL) return 1; -@@ -52,6 +49,7 @@ - return 0; - } - -+#endif // __MINGW64_VERSION_MAJOR - - int fopen_s(FILE** pFile, const char* filename, const char* mode) { - *pFile = fopen(filename, mode); diff --git a/mingw-w64-v8/PKGBUILD b/mingw-w64-v8/PKGBUILD index 951ff8fb01..0d436a82bb 100644 --- a/mingw-w64-v8/PKGBUILD +++ b/mingw-w64-v8/PKGBUILD @@ -1,55 +1,105 @@ -# Maintainer: Martell Malone -# Maintainer: Ray Donnelly +# Maintainer: Rodrigo Hernandez _realname=v8 pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.3.66 +pkgver=8.5.210.20 pkgrel=1 pkgdesc="Fast and modern Javascript engine (mingw-w64)" arch=('any') -url="https://code.google.com/p/v8" +url="https://v8.dev" license=("BSD") -makedepends=("gyp-svn") -depends=("${MINGW_PACKAGE_PREFIX}-readline" +makedepends=("git" "${MINGW_PACKAGE_PREFIX}-python" "${MINGW_PACKAGE_PREFIX}-ninja") +depends=("${MINGW_PACKAGE_PREFIX}-zlib" "${MINGW_PACKAGE_PREFIX}-icu") -options=('!emptydirs' '!strip') -source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/v8/v8-git-mirror/archive/${pkgver}.tar.gz" - "0000-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch" - "0001-Include-win32-headers-h-before-undef-MemoryBarrier.patch" - "0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch" - "0003-Use-soname_version.dll-not-so.soname_version-on-Windows.patch" - "0004-Create-an-import-library-on-Windows.patch" - "0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch" - "0006-localtime_s-is-not-needed-for-mingw-w64.patch" +source=("bare-clones/gn::git+https://gn.googlesource.com/gn#tag=5da62d5e9d0f10cb8ece7c30563a6a214c78b68d" + "bare-clones/v8-${pkgver}::git+https://chromium.googlesource.com/v8/v8.git#tag=${pkgver}" + "bare-clones/build::git+https://chromium.googlesource.com/chromium/src/build.git#commit=a99f0cc42967cb19d95f64b1e0e0ed52792fec79" + "bare-clones/zlib::git+https://chromium.googlesource.com/chromium/src/third_party/zlib.git#commit=156be8c52f80cde343088b4a69a80579101b6e67" + "bare-clones/common::git+https://chromium.googlesource.com/chromium/src/base/trace_event/common.git#commit=dab187b372fc17e51f5b9fad8201813d0aed5129" + "bare-clones/googletest::git+https://chromium.googlesource.com/external/github.com/google/googletest.git#commit=10b1902d893ea8cc43c69541d70868f91af3646b" + "bare-clones/jinja2::git+https://chromium.googlesource.com/chromium/src/third_party/jinja2.git#commit=b41863e42637544c2941b574c7877d3e1f663e25" + "bare-clones/markupsafe::git+https://chromium.googlesource.com/chromium/src/third_party/markupsafe.git#commit=8f45f5cfa0009d2a70589bcda0349b8cb2b72783" + "0000-add-mingw-main-code-changes.patch" + "0001-add-mingw-toolchain.patch" + "0002-gn-ninja-deletes-objs-workaround.patch" + "icu.gn" + "zlib.gn" + "v8_libbase.pc" + "v8_libplatform.pc" "v8.pc") -sha256sums=('e9b96faa48d27c5a7f5694fc559cbdec67c954d44a8fbe3b6dd13cea4ca04553' - '7c0857c7f6e9ab294ea0b9e13290e09684afb5fa1d52f947949e9f34167c4545' - 'd1687f7b5d20d0cfc3a86487d4078069f6ebb6f8deddb979054930f6f6e04efa' - '83f113a8b97515dd402ca4a790fba127b8332dbd35475a0cb311e0f2196509bf' - 'a80566a3f3c394d60c45cc76b2e35f0757b624150e676abde67b1592623a3f2c' - '726cbcae0219fea324b5215bf5287c0b5de7e8354899057a40b6c2b46d590b02' - '14c0c03f5ad6cb8ff9c39841a03c088106a561983bada6e4fbb71e2494f05ad8' - '024d8d96717d6c649528ea7bb03f3c3926221713942b852c4fbef6c9f5a840f6' - '1b719bc6ac9a853fbf7ce47da63171aefa1a8b8556119edd5065d54cd927d1fd') +sha256sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + '9f085f1a91193e9197365e2ca2912fd6831adbfc3390fd4ff3c6811ea455004c' + '95274b914ad319e0ff3869b48c5a29e1cf02ce08bb395acf33672705c73be212' + 'b831576af25b275fca72851ec275c9d21bee0be29b4eb973a3e2a2580deac003' + 'c10169e7a34e212b1a2bf0eaf45131485719f32a7c34d9a666b692f05a2aa830' + 'b99874ea904724911528a5530c14f3051c358805bd36df9d205df31458ebf8b9' + 'fbddbe4849b623afb320472aab316c9a08b54182161b6b4911cb7ef7d65e2b0e' + 'ca81528892f0e02fe7ecd159568610221fb8d0df109d9d0dbdfa00c1284dd0fc' + '579e199a798ff76b72a5b17380a3cd09d361cb7cee99403090c3a266d1b2e527') prepare() { - cd "${srcdir}"/v8-${pkgver} - patch -p1 -i ${srcdir}/0000-Disable-USING_V8_SHARED-for-v8_snapshot-static-lib.patch - patch -p1 -i ${srcdir}/0001-Include-win32-headers-h-before-undef-MemoryBarrier.patch -# patch -p1 -i ${srcdir}/0002-OS-TotalPhysicalMemory-needed-for-MinGW-w64-too.patch - patch -p1 -i ${srcdir}/0003-Use-soname_version.dll-not-so.soname_version-on-Windows.patch - patch -p1 -i ${srcdir}/0004-Create-an-import-library-on-Windows.patch - patch -p1 -i ${srcdir}/0005-Use-gnuish-ccflags-for-gcc-on-Windows.patch - patch -p1 -i ${srcdir}/0006-localtime_s-is-not-needed-for-mingw-w64.patch + echo "Preparing GN source" + cd "${srcdir}"/gn + git apply ${srcdir}/0002-gn-ninja-deletes-objs-workaround.patch + python build/gen.py --out-path=out/${CARCH} --platform=mingw - msg 'Fixing: python -> python2' - #find -type f -exec sed -e 's_^#!/usr/bin/env python$_&2_' -e 's_^\(#!/usr/bin/env python2\).[45]$_\1_' -e 's_^#!/usr/bin/python$_&2_' -e "s_'python'_'python2'_" -i {} \; - find test -type f -exec sed -e "s|python |python2 |" -i {} \; - sed -i "s|python |python2 |" Makefile - sed -i "s|python |python2 |" build/toolchain.gypi + echo "Patching v8 source" + cd "${srcdir}"/v8-${pkgver} + git apply ${srcdir}/0000-add-mingw-main-code-changes.patch + + echo "Patching build directory" + cd "${srcdir}"/build + git apply ${srcdir}/0001-add-mingw-toolchain.patch + python "${srcdir}"/build/util/lastchange.py -o "${srcdir}"/build/util/LASTCHANGE + rm -rf "${srcdir}"/v8-${pkgver}/build + ln -sf "${srcdir}"/build "${srcdir}"/v8-${pkgver} + + echo "Patching zlib directory" + mkdir -p "${srcdir}"/v8-${pkgver}/third_party/zlib + ln -sf "${srcdir}"/zlib.gn "${srcdir}"/v8-${pkgver}/third_party/zlib/BUILD.gn + rm -rf "${srcdir}"/v8-${pkgver}/third_party/zlib/google + ln -sf "${srcdir}"/zlib/google "${srcdir}"/v8-${pkgver}/third_party/zlib + + echo "Patching icu directory" + mkdir -p "${srcdir}"/v8-${pkgver}/third_party/icu + ln -sf "${srcdir}"/icu.gn "${srcdir}"/v8-${pkgver}/third_party/icu/BUILD.gn + + echo "Soft linking extra repos" + mkdir -p ${srcdir}/v8-${pkgver}/base/trace_event + rm -rf ${srcdir}/v8-${pkgver}/base/trace_event/common + ln -sf "${srcdir}"/common ${srcdir}/v8-${pkgver}/base/trace_event + rm -rf "${srcdir}"/v8-${pkgver}/third_party/googletest/src + ln -sf "${srcdir}"/googletest "${srcdir}"/v8-${pkgver}/third_party/googletest/src + rm -rf "${srcdir}"/v8-${pkgver}/third_party/jinja2 + ln -sf "${srcdir}"/jinja2 "${srcdir}"/v8-${pkgver}/third_party + rm -rf "${srcdir}"/v8-${pkgver}/third_party/markupsafe + ln -sf "${srcdir}"/markupsafe "${srcdir}"/v8-${pkgver}/third_party + + _cflags="-DV8_COMPRESS_POINTERS" + case ${CARCH} in + x86_64) + _cflags="$_cflags -DV8_31BIT_SMIS_ON_64BIT_ARCH" + ;; + esac + + sed "s/@VERSION@/$pkgver/g" -i "$srcdir/v8_libbase.pc" + sed "s/@CFLAGS@/$_cflags/g" -i "$srcdir/v8_libbase.pc" + sed "s|^prefix=.*|prefix=${MINGW_PREFIX}|g" -i "$srcdir/v8_libbase.pc" + + sed "s/@VERSION@/$pkgver/g" -i "$srcdir/v8_libplatform.pc" + sed "s/@CFLAGS@/$_cflags/g" -i "$srcdir/v8_libplatform.pc" + sed "s|^prefix=.*|prefix=${MINGW_PREFIX}|g" -i "$srcdir/v8_libplatform.pc" sed "s/@VERSION@/$pkgver/g" -i "$srcdir/v8.pc" + sed "s/@CFLAGS@/$_cflags/g" -i "$srcdir/v8.pc" sed "s|^prefix=.*|prefix=${MINGW_PREFIX}|g" -i "$srcdir/v8.pc" } @@ -59,34 +109,30 @@ build() { BUILDTYPE="Debug" fi - export PYTHON=/usr/bin/python2 - - mkdir -p "${srcdir}/build-${CARCH}" - case ${CARCH} in i686) - _arch=ia32 + _arch=x86 ;; x86_64) _arch=x64 ;; esac + case ${BUILDTYPE} in + Release) + _is_debug=false + ;; + Debug) + _is_debug=true + ;; + esac + + export DEPOT_TOOLS_WIN_TOOLCHAIN=0 + cd "${srcdir}"/gn + ninja -C out/${CARCH} + cd "${srcdir}"/v8-${pkgver} - - GYP_GENERATORS=make \ - $PYTHON build/gyp_v8 \ - -Dv8_enable_i18n_support=true \ - -Duse_system_icu=1 \ - -Dconsole=readline \ - -Dcomponent=shared_library \ - -Dsoname_version=${pkgver} \ - -Dv8_target_arch=${_arch} \ - -Dgcc_version=49 \ - --generator-output=out \ - -f make - - LINK=g++ make -C out builddir="${PWD}/out/${BUILDTYPE}-${CARCH}" BUILDTYPE=${BUILDTYPE} mksnapshot V=1 - LINK=g++ make -C out builddir="${PWD}/out/${BUILDTYPE}-${CARCH}" BUILDTYPE=${BUILDTYPE} V=1 + "${srcdir}"/gn/out/${CARCH}/gn gen "${PWD}/out/${BUILDTYPE}-${CARCH}" --args="is_debug=${_is_debug} is_component_build=true target_cpu=\"${_arch}\" is_clang=false use_custom_libcxx=false v8_enable_verify_heap=false icu_use_data_file=false enable_iterator_debugging=${_is_debug} v8_use_external_startup_data=true" + ninja -C "${PWD}/out/${BUILDTYPE}-${CARCH}" :v8_libbase :v8_libplatform :v8 :d8 :torque :torque-language-server :mksnapshot } check() { @@ -95,7 +141,6 @@ check() { if check_option "debug" "y"; then BUILDTYPE="Debug" fi -# tools/run-tests.py --no-presubmit --outdir=out --buildbot --arch=$ARCH --mode=${BUILDTYPE} --progress=dots } package() { @@ -106,16 +151,24 @@ package() { fi install -d "$pkgdir"/${MINGW_PREFIX}/bin - install -Dm755 out/${BUILDTYPE}-${CARCH}/d8 "$pkgdir"/${MINGW_PREFIX}/bin/d8 - install -Dm755 out/${BUILDTYPE}-${CARCH}/lib.target/*.dll "$pkgdir"/${MINGW_PREFIX}/bin/ + install -Dm755 out/${BUILDTYPE}-${CARCH}/d8.exe "$pkgdir"/${MINGW_PREFIX}/bin/d8.exe + install -Dm755 out/${BUILDTYPE}-${CARCH}/torque.exe "$pkgdir"/${MINGW_PREFIX}/bin/torque.exe + install -Dm755 out/${BUILDTYPE}-${CARCH}/torque-language-server.exe "$pkgdir"/${MINGW_PREFIX}/bin/torque-language-server.exe + install -Dm755 out/${BUILDTYPE}-${CARCH}/mksnapshot.exe "$pkgdir"/${MINGW_PREFIX}/bin/mksnapshot.exe + install -Dm755 out/${BUILDTYPE}-${CARCH}/*.dll "$pkgdir"/${MINGW_PREFIX}/bin/ + install -Dm644 out/${BUILDTYPE}-${CARCH}/snapshot_blob.bin "$pkgdir"/${MINGW_PREFIX}/bin/snapshot_blob.bin install -d "$pkgdir"/${MINGW_PREFIX}/lib install -Dm755 out/${BUILDTYPE}-${CARCH}/*.a "$pkgdir"/${MINGW_PREFIX}/lib/ install -d "$pkgdir"/${MINGW_PREFIX}/include install -Dm644 include/*.h "$pkgdir"/${MINGW_PREFIX}/include + install -d "$pkgdir"/${MINGW_PREFIX}/include/libplatform + install -Dm644 include/libplatform/*.h "$pkgdir"/${MINGW_PREFIX}/include/libplatform install -d "$pkgdir"/${MINGW_PREFIX}/lib/pkgconfig + install -m644 "$srcdir/v8_libbase.pc" "$pkgdir"/${MINGW_PREFIX}/lib/pkgconfig/ + install -m644 "$srcdir/v8_libplatform.pc" "$pkgdir"/${MINGW_PREFIX}/lib/pkgconfig/ install -m644 "$srcdir/v8.pc" "$pkgdir"/${MINGW_PREFIX}/lib/pkgconfig/ install -d "$pkgdir"/${MINGW_PREFIX}/share/licenses/v8 diff --git a/mingw-w64-v8/icu.gn b/mingw-w64-v8/icu.gn new file mode 100644 index 0000000000..1d701fb457 --- /dev/null +++ b/mingw-w64-v8/icu.gn @@ -0,0 +1,71 @@ +import("//build/config/linux/pkg_config.gni") + +declare_args() { + # Tells icu to load an external data file rather than rely on the icudata + # being linked directly into the binary. + icu_use_data_file = true + # If true, compile icu into a standalone static library. Currently this is + # only useful on Chrome OS. + icu_disable_thin_archive = false +} + +pkg_config("system_icui18n") { + packages = [ "icu-i18n" ] + if (is_win && !is_mingw) { + extra_args = ["--full-path-libs"] # Workaround the WinSDK having an older version of ICU + } +} + +pkg_config("system_icuuc") { + packages = [ "icu-uc" ] + if (is_win && !is_mingw) { + extra_args = ["--full-path-libs"] # Workaround the WinSDK having an older version of ICU + } +} + +group("icu") { + public_deps = [ + ":icui18n", + ":icuuc", + ] +} + +config("icu_config") { + defines = [ + "USING_SYSTEM_ICU=1", + ] + if(is_win){ + if(!is_mingw && !is_component_build) { + ldflags = ["/ignore:4099"] # needed on CI builds + } + defines += [ "UCHAR_TYPE=wchar_t" ] + } + else{ + defines += [ "UCHAR_TYPE=uint16_t" ] + } + if (icu_use_data_file) { + defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ] + } else { + defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC" ] + } +} + +source_set("icui18n") { + public_configs = [ + ":icu_config", + ":system_icui18n" + ] +} + +source_set("icuuc") { + public_configs = [ + ":icu_config", + ":system_icuuc" + ] +} + +source_set("icudata") { + public_configs = [ + ":icu_config", + ] +} diff --git a/mingw-w64-v8/v8.pc b/mingw-w64-v8/v8.pc index 3baa3c9c5d..f3ba8bae7e 100644 --- a/mingw-w64-v8/v8.pc +++ b/mingw-w64-v8/v8.pc @@ -6,5 +6,6 @@ includedir=${prefix}/include Name: v8 Description: V8 JavaScript Engine Version: @VERSION@ -Libs: -L${libdir} -lv8.@VERSION@ -Cflags: -I${includedir} +Requires: zlib, icu-uc, icu-i18n, v8_libbase = @VERSION@ +Libs: -L${libdir} -lv8 +Cflags: -I${includedir} @CFLAGS@ diff --git a/mingw-w64-v8/v8_libbase.pc b/mingw-w64-v8/v8_libbase.pc new file mode 100644 index 0000000000..4e8516bfe5 --- /dev/null +++ b/mingw-w64-v8/v8_libbase.pc @@ -0,0 +1,10 @@ +prefix= +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: v8 +Description: V8 JavaScript Engine - Base library +Version: @VERSION@ +Libs: -L${libdir} -lv8_libbase +Cflags: -I${includedir} @CFLAGS@ diff --git a/mingw-w64-v8/v8_libplatform.pc b/mingw-w64-v8/v8_libplatform.pc new file mode 100644 index 0000000000..d1e9518f3b --- /dev/null +++ b/mingw-w64-v8/v8_libplatform.pc @@ -0,0 +1,10 @@ +prefix= +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: v8 +Description: V8 JavaScript Engine - Platform library +Version: @VERSION@ +Libs: -L${libdir} -lv8_libplatform +Cflags: -I${includedir} @CFLAGS@ diff --git a/mingw-w64-v8/zlib.gn b/mingw-w64-v8/zlib.gn new file mode 100644 index 0000000000..c6b57050e8 --- /dev/null +++ b/mingw-w64-v8/zlib.gn @@ -0,0 +1,21 @@ +import("//build/config/linux/pkg_config.gni") + +pkg_config("system_zlib") { + packages = [ "zlib" ] + defines = [ "USE_SYSTEM_ZLIB=1" ] +} + +config("zlib_config") { + if(is_win && !is_mingw && !is_component_build) { + ldflags = ["/ignore:4099"] # needed on VCPKG CI builds + } + configs = [ + ":system_zlib", + ] +} + +source_set("zlib") { + public_configs = [ + ":system_zlib", + ] +} diff --git a/mingw-w64-wslay/PKGBUILD b/mingw-w64-wslay/PKGBUILD index 4e84ef8f0d..e72fcd4678 100644 --- a/mingw-w64-wslay/PKGBUILD +++ b/mingw-w64-wslay/PKGBUILD @@ -1,37 +1,48 @@ # Maintainer: Martell Malone +# Contributor: Biswapriyo Nath _realname=wslay pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=1.1.0 +pkgver=1.1.1 pkgrel=1 pkgdesc="The WebSocket library in C (mingw-w64)" arch=('any') url="https://github.com/tatsuhiro-t/wslay" license=("custom") -makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-cunit" + "${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-nettle" + "${MINGW_PACKAGE_PREFIX}-python-sphinx") options=('staticlibs' 'strip') source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/tatsuhiro-t/wslay/archive/release-${pkgver}.tar.gz") -sha256sums=('df5dca9f03614073cd8bdd22aa3c9b116f841ed3120b2d4463d2382cc44fc594') +sha256sums=('7b9f4b9df09adaa6e07ec309b68ab376c0db2cfd916613023b52a47adfda224a') prepare() { cd "${srcdir}/${_realname}-release-${pkgver}" - autoreconf -fi + autoreconf -fiv } build() { - [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST} - mkdir -p "${srcdir}/build-${MINGW_CHOST}" - cd "${srcdir}/build-${MINGW_CHOST}" + [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" + mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}" + ../${_realname}-release-${pkgver}/configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ --host=${MINGW_CHOST} - make -C lib + + # WARNING: Dirty hack due to absence of conf.py in source directory. + # As it is required by python-sphinx to build man pages. + + cp "${srcdir}/build-${MINGW_CHOST}/doc/sphinx/conf.py" \ + "${srcdir}/${_realname}-release-${pkgver}/doc/sphinx/conf.py" + + make } package() { cd "${srcdir}/build-${MINGW_CHOST}" - make DESTDIR="${pkgdir}" -C lib install + make DESTDIR="${pkgdir}" install }