From 0c60660b0cbb485fa29ea09a229cb368e2d01bae Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Tue, 28 May 2019 14:42:50 +0300 Subject: [PATCH] gcc: Drop Ada and ObjC languages support. Ada still fail to build for 32-bit so I decide to drop it and move further. Enable plugin support --- mingw-w64-gcc/PKGBUILD | 34 +++++++++++++++++++++---------- mingw-w64-gcc/pr88568.patch | 40 ------------------------------------- 2 files changed, 23 insertions(+), 51 deletions(-) delete mode 100644 mingw-w64-gcc/pr88568.patch diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index 4ea4212e2e..ae356a2525 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -4,14 +4,18 @@ # Contributor: Renato Silva # Contributor: wirx6 +_enable_ada=no +_enable_objc=no +_threads="posix" _realname=gcc pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-libs" "${MINGW_PACKAGE_PREFIX}-${_realname}-libgfortran" "${MINGW_PACKAGE_PREFIX}-${_realname}-fortran" - "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" - "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") + $([[ "$_enable_ada" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-${_realname}-ada") + $([[ "$_enable_objc" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-${_realname}-objc") + ) #_snapshot=20181214 pkgver=9.1.0 #_majorver=${pkgver:0:1} @@ -24,7 +28,7 @@ url="https://gcc.gnu.org" license=('GPL' 'LGPL' 'FDL' 'custom') groups=("${MINGW_PACKAGE_PREFIX}-toolchain") makedepends=("${MINGW_PACKAGE_PREFIX}-${_realname}" - "${MINGW_PACKAGE_PREFIX}-${_realname}-ada" + $([[ "$_enable_ada" == "yes" ]] && echo "${MINGW_PACKAGE_PREFIX}-${_realname}-ada") "${MINGW_PACKAGE_PREFIX}-binutils" "${MINGW_PACKAGE_PREFIX}-crt" "${MINGW_PACKAGE_PREFIX}-headers" @@ -54,8 +58,7 @@ source=("https://ftp.gnu.org/gnu/gcc/${_realname}-${pkgver%%+*}/${_realname}-${p 0011-Enable-shared-gnat-implib.patch 0014-gcc-9-branch-clone_function_name_1-Retain-any-stdcall-suffix.patch 0130-libstdc++-in-out.patch - 0140-gcc-8.2.0-diagnostic-color.patch - pr88568.patch) + 0140-gcc-8.2.0-diagnostic-color.patch) sha256sums=('79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0' 'SKIP' 'dea2bbad4967280910559c6a11b865aeec19cab34647fb5894cb498b24b14462' @@ -71,10 +74,7 @@ sha256sums=('79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0' '8faff8e503a617f283270f411399a8bcacda3ab62b4072dedf117e108af4844a' '2321c7dce29a600477e481d16d847f05dc8c6d6461ee1eba7814c5bf62c2ef95' 'a526cfab91a1499be92c824c7f2185a013a38dbdfbeabe63ecbe84451e07b021' - 'e467f0ac68b349de826c79b00a45c5ad9e7c5a55d06b9b9fa7afd94c597f6376' - '4bbcb71f7e9e25af641e7abcb12ea4cd7a5ade3a82739414c65259afcbf21256') - -_threads="posix" + 'e467f0ac68b349de826c79b00a45c5ad9e7c5a55d06b9b9fa7afd94c597f6376') # Helper macros to help make tasks easier # apply_patch_with_msg() { @@ -157,6 +157,14 @@ build() { ;; esac + local _languages="c,lto,c++,fortran" + if [ "$_enable_ada" == "yes" ]; then + _languages+=",ada" + fi + if [ "$_enable_objc" == "yes" ]; then + _languages+=",objc,obj-c++" + fi + ../${_sourcedir}/configure \ --prefix=${MINGW_PREFIX} \ --with-local-prefix=${MINGW_PREFIX}/local \ @@ -168,7 +176,7 @@ build() { --enable-bootstrap \ --with-arch=${_arch} \ --with-tune=generic \ - --enable-languages=ada,c,lto,c++,objc,obj-c++,fortran \ + --enable-languages=${_languages} \ --enable-shared --enable-static \ --enable-libatomic \ --enable-threads=${_threads} \ @@ -188,6 +196,7 @@ build() { --disable-nls \ --disable-werror \ --disable-symvers \ + --enable-plugin \ --with-libiconv \ --with-system-zlib \ --with-{gmp,mpfr,mpc,isl}=${MINGW_PREFIX} \ @@ -208,7 +217,9 @@ build() { rm -rf ${srcdir}${MINGW_PREFIX} make -j1 DESTDIR=${srcdir} install - mv ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/adalib/*.dll ${srcdir}${MINGW_PREFIX}/bin/ + if [ "$_enable_ada" == "yes" ]; then + mv ${srcdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/adalib/*.dll ${srcdir}${MINGW_PREFIX}/bin/ + fi } package_mingw-w64-gcc-libs() { @@ -287,6 +298,7 @@ package_mingw-w64-gcc() { cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/ssp ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include/ cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/include-fixed ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/install-tools ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ + cp -r lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/plugin ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/cc1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/collect2.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ cp lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/crt*.o ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver%%+*}/ diff --git a/mingw-w64-gcc/pr88568.patch b/mingw-w64-gcc/pr88568.patch deleted file mode 100644 index a42015f7bb..0000000000 --- a/mingw-w64-gcc/pr88568.patch +++ /dev/null @@ -1,40 +0,0 @@ -2019-03-05 Jakub Jelinek - - PR c/88568 - * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for - dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT. - - * g++.dg/other/pr88568.C: New test. - ---- a/gcc/attribs.c.jj 2019-01-10 11:44:07.122511397 +0100 -+++ b/gcc/attribs.c 2019-03-05 13:59:51.745924578 +0100 -@@ -1691,8 +1691,11 @@ handle_dll_attribute (tree * pnode, tree - a function global scope, unless declared static. */ - if (current_function_decl != NULL_TREE && !TREE_STATIC (node)) - TREE_PUBLIC (node) = 1; -- /* Clear TREE_STATIC because DECL_EXTERNAL is set. */ -- TREE_STATIC (node) = 0; -+ /* Clear TREE_STATIC because DECL_EXTERNAL is set, unless -+ it is a C++ static data member. */ -+ if (DECL_CONTEXT (node) == NULL_TREE -+ || !RECORD_OR_UNION_TYPE_P (DECL_CONTEXT (node))) -+ TREE_STATIC (node) = 0; - } - - if (*no_add_attrs == false) ---- a/gcc/testsuite/g++.dg/other/pr88568.C.jj 2019-03-05 14:03:20.132509560 +0100 -+++ b/gcc/testsuite/g++.dg/other/pr88568.C 2019-03-05 14:01:39.674155860 +0100 -@@ -0,0 +1,13 @@ -+// PR c/88568 -+// { dg-do compile } -+// { dg-require-dll "" } -+ -+struct S { -+ __attribute__((dllimport)) static const char foo[]; -+}; -+ -+int -+foo (int x) -+{ -+ return S::foo[x]; -+}