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
This commit is contained in:
@@ -4,14 +4,18 @@
|
||||
# Contributor: Renato Silva <br.renatosilva@gmail.com>
|
||||
# Contributor: wirx6 <wirx654@gmail.com>
|
||||
|
||||
_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%%+*}/
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
2019-03-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
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];
|
||||
+}
|
||||
Reference in New Issue
Block a user