From 46f0d5a0731a339fa3b190f6efbcaff73cf898b2 Mon Sep 17 00:00:00 2001 From: Alexpux Date: Thu, 7 May 2015 22:48:16 +0300 Subject: [PATCH] Update mingw-w64 runtime for cross-compiler to git SHA [4421b4a] --- mingw-w64-cross-crt-git/PKGBUILD | 23 +++++----- mingw-w64-cross-headers-git/PKGBUILD | 16 ++++--- ...register_frame_info-in-fake-libgcc_s.patch | 46 +++++++++++++++++++ mingw-w64-cross-winpthreads-git/PKGBUILD | 29 ++++++++---- mingw-w64-cross-winstorecompat-git/PKGBUILD | 23 +++++----- 5 files changed, 99 insertions(+), 38 deletions(-) create mode 100644 mingw-w64-cross-winpthreads-git/0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch diff --git a/mingw-w64-cross-crt-git/PKGBUILD b/mingw-w64-cross-crt-git/PKGBUILD index d1d2a556..c71991af 100644 --- a/mingw-w64-cross-crt-git/PKGBUILD +++ b/mingw-w64-cross-crt-git/PKGBUILD @@ -6,8 +6,7 @@ pkgname="${_mingw_suff}-${_realname}-git" replaces="${_mingw_suff}-${_realname}" provides=("${_mingw_suff}-${_realname}") conflicts=("${_mingw_suff}-${_realname}") -_ver_base=4.0.0 -pkgver=4.0.0.4384.404d457 +pkgver=5.0.0.4501.4421b4a pkgrel=1 pkgdesc='MinGW-w64 CRT for cross-compiler' arch=('i686' 'x86_64') @@ -17,14 +16,17 @@ groups=("${_mingw_suff}-toolchain" "${_mingw_suff}") depends=("${_mingw_suff}-headers") makedepends=("git" "${_mingw_suff}-gcc" "${_mingw_suff}-binutils") options=('!strip' 'staticlibs' '!emptydirs' '!buildflags') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=(SKIP) +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +md5sums=('SKIP') _targets="i686-w64-mingw32 x86_64-w64-mingw32" pkgver() { - cd "$srcdir/$_realname" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + cd "$srcdir/mingw-w64" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } build() { @@ -39,7 +41,7 @@ build() { ;; esac mkdir -p ${srcdir}/crt-${_target} && cd ${srcdir}/crt-${_target} - ${srcdir}/${_realname}/mingw-w64-crt/configure \ + ${srcdir}/mingw-w64/mingw-w64-crt/configure \ --build=${CHOST} \ --prefix=/opt/${_target} \ --host=${_target} \ @@ -51,9 +53,8 @@ build() { package() { for _target in ${_targets}; do - msg "Installing ${_target} crt" - cd ${srcdir}/crt-${_target} - make DESTDIR=${pkgdir} install + msg "Installing ${_target} crt" + cd ${srcdir}/crt-${_target} + make DESTDIR=${pkgdir} install done } - diff --git a/mingw-w64-cross-headers-git/PKGBUILD b/mingw-w64-cross-headers-git/PKGBUILD index 27ea7e26..6e32c326 100644 --- a/mingw-w64-cross-headers-git/PKGBUILD +++ b/mingw-w64-cross-headers-git/PKGBUILD @@ -7,8 +7,7 @@ replaces="${_mingw_suff}-${_realname}" provides=("${_mingw_suff}-${_realname}") conflicts=("${_mingw_suff}-${_realname}") pkgdesc="MinGW-w64 headers for cross-compiler" -_ver_base=4.0.0 -pkgver=4.0.0.4384.404d457 +pkgver=5.0.0.4501.4421b4a pkgrel=1 arch=('i686' 'x86_64') url="http://mingw-w64.sourceforge.net" @@ -16,21 +15,24 @@ license=('custom') groups=("${_mingw_suff}-toolchain" "${_mingw_suff}") makedepends=('git') options=('!strip' '!libtool' '!emptydirs' '!buildflags') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=(SKIP) +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +md5sums=('SKIP') _targets="i686-w64-mingw32 x86_64-w64-mingw32" pkgver() { - cd "$srcdir/$_realname" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + cd "$srcdir/mingw-w64" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } build() { for _target in ${_targets}; do msg "Configuring ${_target} headers" mkdir -p ${srcdir}/headers-${_target} && cd ${srcdir}/headers-${_target} - ${srcdir}/${_realname}/mingw-w64-headers/configure \ + ${srcdir}/mingw-w64/mingw-w64-headers/configure \ --build=${CHOST} \ --host=${_target} \ --prefix=/opt/${_target} \ diff --git a/mingw-w64-cross-winpthreads-git/0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch b/mingw-w64-cross-winpthreads-git/0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch new file mode 100644 index 00000000..e6e979fc --- /dev/null +++ b/mingw-w64-cross-winpthreads-git/0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch @@ -0,0 +1,46 @@ +From c402bcc0139033a365f30e00caecff9f8be40974 Mon Sep 17 00:00:00 2001 +From: Ray Donnelly +Date: Fri, 7 Nov 2014 22:43:58 +0000 +Subject: [PATCH] Define __{de,}register_frame_info in fake libgcc_s + +--- + mingw-w64-libraries/winpthreads/Makefile.am | 2 +- + mingw-w64-libraries/winpthreads/src/libgcc/dll_frame_info.c | 12 ++++++++++++ + 2 files changed, 13 insertions(+), 1 deletion(-) + create mode 100644 mingw-w64-libraries/winpthreads/src/libgcc/dll_frame_info.c + +diff --git a/mingw-w64-libraries/winpthreads/Makefile.am b/mingw-w64-libraries/winpthreads/Makefile.am +index 231c313..6d3b857 100644 +--- a/mingw-w64-libraries/winpthreads/Makefile.am ++++ b/mingw-w64-libraries/winpthreads/Makefile.am +@@ -18,7 +18,7 @@ libwinpthread_la_SOURCES = \ + # Break circular dep on bootstrap + noinst_LIBRARIES = fakelib/libgcc.a fakelib/libgcc_eh.a fakelib/libgcc_s.a + fakelib_libgcc_a_SOURCES = src/libgcc/dll_dependency.S src/libgcc/dll_math.c +-fakelib_libgcc_s_a_SOURCES = ++fakelib_libgcc_s_a_SOURCES = src/libgcc/dll_frame_info.c + fakelib_libgcc_eh_a_SOURCES = + + lib_LIBRARIES = +diff --git a/mingw-w64-libraries/winpthreads/src/libgcc/dll_frame_info.c b/mingw-w64-libraries/winpthreads/src/libgcc/dll_frame_info.c +new file mode 100644 +index 0000000..115ac12 +--- /dev/null ++++ b/mingw-w64-libraries/winpthreads/src/libgcc/dll_frame_info.c +@@ -0,0 +1,13 @@ ++/* Because of: ++ https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-gcc/955-4.9.2-apply-hack-so-gcc_s-isnt-stripped.patch ++ .. we need to define these functions. ++*/ ++ ++void __register_frame_info (__attribute__((unused)) const void *vp, __attribute__((unused)) void *op) ++{ ++} ++ ++void *__deregister_frame_info (__attribute__((unused)) const void *vp) ++{ ++ return (void *)0; ++} +-- +2.1.3 + diff --git a/mingw-w64-cross-winpthreads-git/PKGBUILD b/mingw-w64-cross-winpthreads-git/PKGBUILD index 5f15defd..2d3bdb59 100644 --- a/mingw-w64-cross-winpthreads-git/PKGBUILD +++ b/mingw-w64-cross-winpthreads-git/PKGBUILD @@ -6,8 +6,7 @@ pkgname="${_mingw_suff}-${_realname}-git" replaces="${_mingw_suff}-${_realname}" provides=("${_mingw_suff}-${_realname}") conflicts=("${_mingw_suff}-${_realname}") -_ver_base=4.0.0 -pkgver=4.0.0.4305.9bd8fe9 +pkgver=5.0.0.4501.4421b4a pkgrel=1 pkgdesc="MinGW-w64 winpthreads library for cross-compiler" arch=('i686' 'x86_64') @@ -19,20 +18,32 @@ depends=("${_mingw_suff}-crt") optdepends=() backup=() options=('!strip' '!buildflags' 'staticlibs' '!emptydirs' '!buildflags') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=(SKIP) +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64" + 0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch) +md5sums=('SKIP' + '74a4dab06a8fa113407a6e11fdb3c962') _targets="i686-w64-mingw32 x86_64-w64-mingw32" pkgver() { - cd "$srcdir/$_realname" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + cd "$srcdir/mingw-w64" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "$srcdir/mingw-w64" + git am "${srcdir}"/0001-Define-__-de-register_frame_info-in-fake-libgcc_s.patch + cd "${srcdir}"/mingw-w64/mingw-w64-libraries/winpthreads + autoreconf -vfi } build() { for _target in ${_targets}; do mkdir -p ${srcdir}/winpthreads-build-${_target} && cd ${srcdir}/winpthreads-build-${_target} - ${srcdir}/${_realname}/mingw-w64-libraries/winpthreads/configure \ + ${srcdir}/mingw-w64/mingw-w64-libraries/winpthreads/configure \ --prefix=/opt/${_target} \ --build=${CHOST} \ --host=${_target} \ @@ -44,7 +55,7 @@ build() { package() { for _target in ${_targets}; do - cd ${srcdir}/winpthreads-build-${_target} - make DESTDIR=${pkgdir} install + cd ${srcdir}/winpthreads-build-${_target} + make DESTDIR=${pkgdir} install done } diff --git a/mingw-w64-cross-winstorecompat-git/PKGBUILD b/mingw-w64-cross-winstorecompat-git/PKGBUILD index ef501adc..c1b043f7 100644 --- a/mingw-w64-cross-winstorecompat-git/PKGBUILD +++ b/mingw-w64-cross-winstorecompat-git/PKGBUILD @@ -6,8 +6,7 @@ pkgname="${_mingw_suff}-${_realname}-git" replaces="${_mingw_suff}-${_realname}" provides=("${_mingw_suff}-${_realname}") conflicts=("${_mingw_suff}-${_realname}") -_ver_base=4.0.0 -pkgver=4.0.0.4327.31a1d26 +pkgver=5.0.0.4501.4421b4a pkgrel=1 pkgdesc="MinGW-w64 winRT compat library" arch=('i686' 'x86_64') @@ -19,21 +18,23 @@ depends=("${_mingw_suff}-crt") optdepends=() backup=() options=('!strip' '!buildflags' 'staticlibs' '!emptydirs' '!buildflags') -source=("${_realname}"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") -md5sums=(SKIP) +source=("mingw-w64"::"git://git.code.sf.net/p/mingw-w64/mingw-w64") +md5sums=('SKIP') -_targets="x86_64-w64-mingw32" -#_targets="i686-w64-mingw32 x86_64-w64-mingw32" +_targets="i686-w64-mingw32 x86_64-w64-mingw32" pkgver() { - cd "$srcdir/$_realname" - printf "%s.%s.%s" "$_ver_base" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + cd "$srcdir/mingw-w64" + local _major=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MAJOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _minor=$(head -n 16 mingw-w64-headers/crt/_mingw_mac.h | grep '__MINGW64_VERSION_MINOR' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/') + local _rev=0 + printf "%s.%s.%s.%s.%s" ${_major} ${_minor} ${_rev} "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } build() { for _target in ${_targets}; do mkdir -p ${srcdir}/build-${_target} && cd ${srcdir}/build-${_target} - ${srcdir}/${_realname}/mingw-w64-libraries/winstorecompat/configure \ + ${srcdir}/mingw-w64/mingw-w64-libraries/winstorecompat/configure \ --prefix=/opt/${_target} \ --build=${CHOST} \ --host=${_target} @@ -43,7 +44,7 @@ build() { package() { for _target in ${_targets}; do - cd ${srcdir}/build-${_target} - make DESTDIR=${pkgdir} install + cd ${srcdir}/build-${_target} + make DESTDIR=${pkgdir} install done }