aboutsummaryrefslogtreecommitdiff
path: root/lang/gcc48
diff options
context:
space:
mode:
Diffstat (limited to 'lang/gcc48')
-rw-r--r--lang/gcc48/Makefile120
-rw-r--r--lang/gcc48/distinfo3
-rw-r--r--lang/gcc48/files/patch-gcc_configure11
-rw-r--r--lang/gcc48/files/patch-stackprotector-gcc158
-rw-r--r--lang/gcc48/files/patch-stackprotector-gcc_c-family12
-rw-r--r--lang/gcc48/files/patch-stackprotector-gcc_doc40
-rw-r--r--lang/gcc48/files/patch-stackprotector-gcc_testsuite177
-rw-r--r--lang/gcc48/files/pkg-message.in13
-rw-r--r--lang/gcc48/pkg-descr5
-rw-r--r--lang/gcc48/pkg-plist25
10 files changed, 0 insertions, 564 deletions
diff --git a/lang/gcc48/Makefile b/lang/gcc48/Makefile
deleted file mode 100644
index a89538859c03..000000000000
--- a/lang/gcc48/Makefile
+++ /dev/null
@@ -1,120 +0,0 @@
-PORTNAME= gcc
-PORTVERSION= 4.8.5
-PORTREVISION= 16
-CATEGORIES= lang
-MASTER_SITES= GCC
-PKGNAMESUFFIX= ${SUFFIX}
-
-MAINTAINER= ports@FreeBSD.org
-COMMENT= GNU Compiler Collection 4.8
-WWW= https://gcc.gnu.org
-
-LICENSE= GPLv3 GPLv3RLE
-LICENSE_COMB= multi
-
-DEPRECATED= Unsupported by upstream since 2015. Use GCC 10 or newer instead.
-EXPIRATION_DATE= 2024-05-01
-
-ONLY_FOR_ARCHS= amd64 i386
-
-LIB_DEPENDS= libgmp.so:math/gmp \
- libmpfr.so:math/mpfr \
- libmpc.so:math/mpc
-BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
-RUN_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
-.if defined(MAINTAINER_MODE)
-BUILD_DEPENDS+= runtest:misc/dejagnu
-.endif
-
-USES= compiler cpe gmake iconv libtool perl5 tar:bzip2
-USE_BINUTILS= yes
-USE_PERL5= build
-
-CPE_VENDOR= gnu
-
-GCC_VERSION= ${PORTVERSION}
-SUFFIX= ${PORTVERSION:C/([0-9]+).([0-9]+).*/\1\2/}
-SSP_UNSAFE= yes
-CFLAGS:= ${CFLAGS:N-march=haswell:N-march=ivybridge:N-march=westmere:N-mretpoline}
-CXXFLAGS:= ${CXXFLAGS:N-march=haswell:N-march=ivybridge:N-march=westmere:N-mretpoline}
-
-.include <bsd.port.pre.mk>
-
-.if ${ARCH} == amd64
-CONFIGURE_TARGET= x86_64-portbld-${OPSYS:tl}${OSREL}
-.endif
-
-LANGUAGES:= c,c++
-TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
-LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
-GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
-CONFIGURE_OUTSOURCE= yes
-CONFIGURE_ARGS+=--with-build-config=bootstrap-debug
-ALL_TARGET= bootstrap-lean
-INSTALL_TARGET= install-strip
-.if ${UID} != 0
-BINMODE= 755
-.endif
-CONFIGURE_ARGS+=--disable-nls \
- --disable-multilib \
- --enable-gnu-indirect-function \
- --libdir=${TARGLIB} \
- --libexecdir=${LIBEXEC} \
- --program-suffix=${SUFFIX} \
- --with-as=${LOCALBASE}/bin/as \
- --with-gmp=${LOCALBASE} \
- --with-gxx-include-dir=${TARGLIB}/include/c++/ \
- --with-ld=${LOCALBASE}/bin/ld \
- ${ICONV_CONFIGURE_ARG} \
- --with-pkgversion="FreeBSD Ports Collection" \
- --with-system-zlib \
- --disable-libgcj \
- --enable-languages=${LANGUAGES}
-USE_LDCONFIG= ${TARGLIB}
-PLIST_SUB+= GCC_VERSION=${GCC_VERSION} \
- GNU_HOST=${CONFIGURE_TARGET} \
- SUFFIX=${SUFFIX}
-INFO= gcc${SUFFIX}/cpp \
- gcc${SUFFIX}/cppinternals \
- gcc${SUFFIX}/gcc \
- gcc${SUFFIX}/gccinstall \
- gcc${SUFFIX}/gccint \
- gcc${SUFFIX}/gfortran \
- gcc${SUFFIX}/libgomp \
- gcc${SUFFIX}/libitm \
- gcc${SUFFIX}/libquadmath
-SUB_FILES= pkg-message
-SUB_LIST+= TARGLIB=${TARGLIB}
-
-pre-everything::
- @${ECHO_MSG} "Making GCC ${PORTVERSION} for ${CONFIGURE_TARGET} [${LANGUAGES}]"
-
-post-patch:
- @${FIND} ${WRKSRC} -type f -name '*.[ch]' | \
- ${XARGS} ${EGREP} -l '"(HOST_WIDE|PLUGIN_COND)' | \
- ${XARGS} ${REINPLACE_CMD} -E -e 's/"(HOST_WIDE|PLUGIN_COND)/" \1/g'
-
-pre-configure:
- cd ${WRKSRC} ; contrib/gcc_update --touch
-
-.if defined(MAINTAINER_MODE)
-full-regression-test: build
- cd ${TEST_WRKSRC}; ${MAKE_CMD} -sk check \
- ; ${WRKSRC}/contrib/test_summary
-.endif
-
-post-stage:
- ${RM} ${STAGEDIR}${PREFIX}/share/man/man7/*
- ${RM} -r ${STAGEDIR}${TARGLIB}/gcc/*/${GCC_VERSION}/include-fixed/ \
- ${STAGEDIR}${TARGLIB}/gcc/*/${GCC_VERSION}/finclude
- # Add target libraries and include files to packaging list.
- ${RM} ${WRKDIR}/PLIST.lib
-.for d in ${TARGLIB:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///}
- cd ${STAGEDIR}${PREFIX} ; if [ -d $d ]; then \
- ${FIND} $d -type f -o -type l >>${WRKDIR}/PLIST.lib ;\
- fi
-.endfor
- cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
-
-.include <bsd.port.post.mk>
diff --git a/lang/gcc48/distinfo b/lang/gcc48/distinfo
deleted file mode 100644
index ccdd01732668..000000000000
--- a/lang/gcc48/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1471299749
-SHA256 (gcc-4.8.5.tar.bz2) = 22fb1e7e0f68a63cee631d85b20461d1ea6bda162f03096350e38c8d427ecf23
-SIZE (gcc-4.8.5.tar.bz2) = 86165587
diff --git a/lang/gcc48/files/patch-gcc_configure b/lang/gcc48/files/patch-gcc_configure
deleted file mode 100644
index 7515f80c0c36..000000000000
--- a/lang/gcc48/files/patch-gcc_configure
+++ /dev/null
@@ -1,11 +0,0 @@
---- gcc/configure.orig 2014-12-08 11:29:43 UTC
-+++ gcc/configure
-@@ -6408,7 +6408,7 @@ fi
-
- loose_warn=
- save_CFLAGS="$CFLAGS"
--for real_option in -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual; do
-+for real_option in -W -Wall -Wno-increment-bool -Wno-narrowing -Wno-register -Wwrite-strings -Wcast-qual; do
- # Do the check with the no- prefix removed since gcc silently
- # accepts any -Wno-* option on purpose
- case $real_option in
diff --git a/lang/gcc48/files/patch-stackprotector-gcc b/lang/gcc48/files/patch-stackprotector-gcc
deleted file mode 100644
index fb5780bdbeb3..000000000000
--- a/lang/gcc48/files/patch-stackprotector-gcc
+++ /dev/null
@@ -1,158 +0,0 @@
---- UTC
---- gcc/cfgexpand.c.orig
-+++ gcc/cfgexpand.c
-@@ -1291,6 +1291,12 @@
- clear_tree_used (t);
- }
-
-+ enum {
-+ SPCT_FLAG_DEFAULT = 1,
-+ SPCT_FLAG_ALL = 2,
-+ SPCT_FLAG_STRONG = 3
-+ };
-+
- /* Examine TYPE and determine a bit mask of the following features. */
-
- #define SPCT_HAS_LARGE_CHAR_ARRAY 1
-@@ -1360,7 +1366,8 @@
- if (bits & SPCT_HAS_SMALL_CHAR_ARRAY)
- has_short_buffer = true;
-
-- if (flag_stack_protect == 2)
-+ if (flag_stack_protect == SPCT_FLAG_ALL
-+ || flag_stack_protect == SPCT_FLAG_STRONG)
- {
- if ((bits & (SPCT_HAS_SMALL_CHAR_ARRAY | SPCT_HAS_LARGE_CHAR_ARRAY))
- && !(bits & SPCT_HAS_AGGREGATE))
-@@ -1514,6 +1521,27 @@
- return size;
- }
-
-+/* Helper routine to check if a record or union contains an array field. */
-+
-+static int
-+record_or_union_type_has_array_p (const_tree tree_type)
-+{
-+ tree fields = TYPE_FIELDS (tree_type);
-+ tree f;
-+
-+ for (f = fields; f; f = DECL_CHAIN (f))
-+ if (TREE_CODE (f) == FIELD_DECL)
-+ {
-+ tree field_type = TREE_TYPE (f);
-+ if (RECORD_OR_UNION_TYPE_P (field_type)
-+ && record_or_union_type_has_array_p (field_type))
-+ return 1;
-+ if (TREE_CODE (field_type) == ARRAY_TYPE)
-+ return 1;
-+ }
-+ return 0;
-+}
-+
- /* Expand all variables used in the function. */
-
- static rtx
-@@ -1525,6 +1553,7 @@
- struct pointer_map_t *ssa_name_decls;
- unsigned i;
- unsigned len;
-+ bool gen_stack_protect_signal = false;
-
- /* Compute the phase of the stack frame for this function. */
- {
-@@ -1575,6 +1604,24 @@
- }
- }
- pointer_map_destroy (ssa_name_decls);
-+
-+ if (flag_stack_protect == SPCT_FLAG_STRONG)
-+ FOR_EACH_LOCAL_DECL (cfun, i, var)
-+ if (!is_global_var (var))
-+ {
-+ tree var_type = TREE_TYPE (var);
-+ /* Examine local referenced variables that have their addresses taken,
-+ contain an array, or are arrays. */
-+ if (TREE_CODE (var) == VAR_DECL
-+ && (TREE_CODE (var_type) == ARRAY_TYPE
-+ || TREE_ADDRESSABLE (var)
-+ || (RECORD_OR_UNION_TYPE_P (var_type)
-+ && record_or_union_type_has_array_p (var_type))))
-+ {
-+ gen_stack_protect_signal = true;
-+ break;
-+ }
-+ }
-
- /* At this point all variables on the local_decls with TREE_USED
- set are not associated with any block scope. Lay them out. */
-@@ -1662,12 +1709,32 @@
- dump_stack_var_partition ();
- }
-
-- /* There are several conditions under which we should create a
-- stack guard: protect-all, alloca used, protected decls present. */
-- if (flag_stack_protect == 2
-- || (flag_stack_protect
-- && (cfun->calls_alloca || has_protected_decls)))
-- create_stack_guard ();
-+ /* Create stack guard, if
-+ a) "-fstack-protector-all" - always;
-+ b) "-fstack-protector-strong" - if there are arrays, memory
-+ references to local variables, alloca used, or protected decls present;
-+ c) "-fstack-protector" - if alloca used, or protected decls present */
-+
-+ switch (flag_stack_protect)
-+ {
-+ case SPCT_FLAG_ALL:
-+ create_stack_guard ();
-+ break;
-+
-+ case SPCT_FLAG_STRONG:
-+ if (gen_stack_protect_signal
-+ || cfun->calls_alloca || has_protected_decls)
-+ create_stack_guard ();
-+ break;
-+
-+ case SPCT_FLAG_DEFAULT:
-+ if (cfun->calls_alloca || has_protected_decls)
-+ create_stack_guard ();
-+ break;
-+
-+ default:
-+ ;
-+ }
-
- /* Assign rtl to each variable based on these partitions. */
- if (stack_vars_num > 0)
-@@ -1688,7 +1755,7 @@
- expand_stack_vars (stack_protect_decl_phase_1, &data);
-
- /* Phase 2 contains other kinds of arrays. */
-- if (flag_stack_protect == 2)
-+ if (flag_stack_protect == SPCT_FLAG_ALL)
- expand_stack_vars (stack_protect_decl_phase_2, &data);
- }
-
---- gcc/common.opt.orig
-+++ gcc/common.opt
-@@ -1942,6 +1942,10 @@ fstack-protector-all
- Common Report RejectNegative Var(flag_stack_protect, 2)
- Use a stack protection method for every function
-
-+fstack-protector-strong
-+Common Report RejectNegative Var(flag_stack_protect, 3)
-+Use a smart stack protection method for certain functions
-+
- fstack-usage
- Common RejectNegative Var(flag_stack_usage)
- Output stack usage information on a per-function basis
---- gcc/gcc.c.orig
-+++ gcc/gcc.c
-@@ -655,7 +655,7 @@ proper position among the other output files. */
- #ifdef TARGET_LIBC_PROVIDES_SSP
- #define LINK_SSP_SPEC "%{fstack-protector:}"
- #else
--#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp_nonshared -lssp}"
-+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-strong|fstack-protector-all:-lssp_nonshared -lssp}"
- #endif
- #endif
diff --git a/lang/gcc48/files/patch-stackprotector-gcc_c-family b/lang/gcc48/files/patch-stackprotector-gcc_c-family
deleted file mode 100644
index ca1da8a3e08c..000000000000
--- a/lang/gcc48/files/patch-stackprotector-gcc_c-family
+++ /dev/null
@@ -1,12 +0,0 @@
---- UTC
---- gcc/c-family/c-cppbuiltin.c.orig
-+++ gcc/c-family/c-cppbuiltin.c
-@@ -888,6 +888,8 @@ c_cpp_builtins (cpp_reader *pfile)
- /* Make the choice of the stack protector runtime visible to source code.
- The macro names and values here were chosen for compatibility with an
- earlier implementation, i.e. ProPolice. */
-+ if (flag_stack_protect == 3)
-+ cpp_define (pfile, "__SSP_STRONG__=3");
- if (flag_stack_protect == 2)
- cpp_define (pfile, "__SSP_ALL__=2");
- else if (flag_stack_protect == 1)
diff --git a/lang/gcc48/files/patch-stackprotector-gcc_doc b/lang/gcc48/files/patch-stackprotector-gcc_doc
deleted file mode 100644
index 1d577976b102..000000000000
--- a/lang/gcc48/files/patch-stackprotector-gcc_doc
+++ /dev/null
@@ -1,40 +0,0 @@
---- UTC
---- gcc/doc/cpp.texi.orig
-+++ gcc/doc/cpp.texi
-@@ -2349,6 +2349,10 @@ use.
- This macro is defined, with value 2, when @option{-fstack-protector-all} is
- in use.
-
-+@item __SSP_STRONG__
-+This macro is defined, with value 3, when @option{-fstack-protector-strong} is
-+in use.
-+
- @item __SANITIZE_ADDRESS__
- This macro is defined, with value 1, when @option{-fsanitize=address} is
- in use.
---- gcc/doc/invoke.texi.orig
-+++ gcc/doc/invoke.texi
-@@ -407,8 +407,8 @@ Objective-C and Objective-C++ Dialects}.
- -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops @gol
- -fshrink-wrap -fsignaling-nans -fsingle-precision-constant @gol
- -fsplit-ivs-in-unroller -fsplit-wide-types -fstack-protector @gol
---fstack-protector-all -fstrict-aliasing -fstrict-overflow @gol
---fthread-jumps -ftracer -ftree-bit-ccp @gol
-+-fstack-protector-all -fstack-protector-strong -fstrict-aliasing @gol
-+-fstrict-overflow -fthread-jumps -ftracer -ftree-bit-ccp @gol
- -ftree-builtin-call-dce -ftree-ccp -ftree-ch @gol
- -ftree-coalesce-inline-vars -ftree-coalesce-vars -ftree-copy-prop @gol
- -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse @gol
-@@ -8957,6 +8957,12 @@ If a guard check fails, an error message is printed and the program exits.
- @opindex fstack-protector-all
- Like @option{-fstack-protector} except that all functions are protected.
-
-+@item -fstack-protector-strong
-+@opindex fstack-protector-strong
-+Like @option{-fstack-protector} but includes additional functions to
-+be protected --- those that have local array definitions, or have
-+references to local frame addresses.
-+
- @item -fsection-anchors
- @opindex fsection-anchors
- Try to reduce the number of symbolic address calculations by using
diff --git a/lang/gcc48/files/patch-stackprotector-gcc_testsuite b/lang/gcc48/files/patch-stackprotector-gcc_testsuite
deleted file mode 100644
index 8200bb7e4c28..000000000000
--- a/lang/gcc48/files/patch-stackprotector-gcc_testsuite
+++ /dev/null
@@ -1,177 +0,0 @@
---- UTC
---- /dev/null
-+++ gcc/testsuite/g++.dg/fstack-protector-strong.C
-@@ -0,0 +1,35 @@
-+/* Test that stack protection is done on chosen functions. */
-+
-+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-+/* { dg-options "-O2 -fstack-protector-strong" } */
-+
-+class A
-+{
-+public:
-+ A() {}
-+ ~A() {}
-+ void method();
-+ int state;
-+};
-+
-+/* Frame address exposed to A::method via "this". */
-+int
-+foo1 ()
-+{
-+ A a;
-+ a.method ();
-+ return a.state;
-+}
-+
-+/* Possible destroying foo2's stack via &a. */
-+int
-+global_func (A& a);
-+
-+/* Frame address exposed to global_func. */
-+int foo2 ()
-+{
-+ A a;
-+ return global_func (a);
-+}
-+
-+/* { dg-final { scan-assembler-times "stack_chk_fail" 2 } } */
---- /dev/null
-+++ gcc/testsuite/gcc.dg/fstack-protector-strong.c
-@@ -0,0 +1,135 @@
-+/* Test that stack protection is done on chosen functions. */
-+
-+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-+/* { dg-options "-O2 -fstack-protector-strong" } */
-+
-+#include<string.h>
-+#include<stdlib.h>
-+
-+extern int g0;
-+extern int* pg0;
-+int
-+goo (int *);
-+int
-+hoo (int);
-+
-+/* Function frame address escaped function call. */
-+int
-+foo1 ()
-+{
-+ int i;
-+ return goo (&i);
-+}
-+
-+struct ArrayStruct
-+{
-+ int a;
-+ int array[10];
-+};
-+
-+struct AA
-+{
-+ int b;
-+ struct ArrayStruct as;
-+};
-+
-+/* Function frame contains array. */
-+int
-+foo2 ()
-+{
-+ struct AA aa;
-+ int i;
-+ for (i = 0; i < 10; ++i)
-+ {
-+ aa.as.array[i] = i * (i-1) + i / 2;
-+ }
-+ return aa.as.array[5];
-+}
-+
-+/* Address computation based on a function frame address. */
-+int
-+foo3 ()
-+{
-+ int a;
-+ int *p;
-+ p = &a + 5;
-+ return goo (p);
-+}
-+
-+/* Address cast based on a function frame address. */
-+int
-+foo4 ()
-+{
-+ int a;
-+ return goo (g0 << 2 ? (int *)(3 * (long)(void *)(&a)) : 0);
-+}
-+
-+/* Address cast based on a local array. */
-+int
-+foo5 ()
-+{
-+ short array[10];
-+ return goo ((int *)(array + 5));
-+}
-+
-+struct BB
-+{
-+ int one;
-+ int two;
-+ int three;
-+};
-+
-+/* Address computaton based on a function frame address.*/
-+int
-+foo6 ()
-+{
-+ struct BB bb;
-+ return goo (&bb.one + sizeof(int));
-+}
-+
-+/* Function frame address escaped via global variable. */
-+int
-+foo7 ()
-+{
-+ int a;
-+ pg0 = &a;
-+ goo (pg0);
-+ return *pg0;
-+}
-+
-+/* Check that this covers -fstack-protector. */
-+int
-+foo8 ()
-+{
-+ char base[100];
-+ memcpy ((void *)base, (const void *)pg0, 105);
-+ return (int)(base[32]);
-+}
-+
-+/* Check that this covers -fstack-protector. */
-+int
-+foo9 ()
-+{
-+ char* p = alloca (100);
-+ return goo ((int *)(p + 50));
-+}
-+
-+int
-+global2 (struct BB* pbb);
-+
-+/* Address taken on struct. */
-+int
-+foo10 ()
-+{
-+ struct BB bb;
-+ int i;
-+ bb.one = global2 (&bb);
-+ for (i = 0; i < 10; ++i)
-+ {
-+ bb.two = bb.one + bb.two;
-+ bb.three = bb.one + bb.two + bb.three;
-+ }
-+ return bb.three;
-+}
-+
-+/* { dg-final { scan-assembler-times "stack_chk_fail" 10 } } */
diff --git a/lang/gcc48/files/pkg-message.in b/lang/gcc48/files/pkg-message.in
deleted file mode 100644
index df3ea725ce59..000000000000
--- a/lang/gcc48/files/pkg-message.in
+++ /dev/null
@@ -1,13 +0,0 @@
-[
-{ type: install
- message: <<EOD
-To ensure binaries built with this toolchain find appropriate versions
-of the necessary run-time libraries, you may want to link using
-
- -Wl,-rpath=%%TARGLIB%%
-
-For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens
-transparently.
-EOD
-}
-]
diff --git a/lang/gcc48/pkg-descr b/lang/gcc48/pkg-descr
deleted file mode 100644
index 73990e94cb62..000000000000
--- a/lang/gcc48/pkg-descr
+++ /dev/null
@@ -1,5 +0,0 @@
-GCC, the GNU Compiler Collection, supports a number of languages. This
-port installs the C, C++, and Fortran front ends as gcc48, g++48, and
-gfortran48, respectively.
-
-Gerald Pfeifer <gerald@FreeBSD.org>
diff --git a/lang/gcc48/pkg-plist b/lang/gcc48/pkg-plist
deleted file mode 100644
index 39293d9b0a36..000000000000
--- a/lang/gcc48/pkg-plist
+++ /dev/null
@@ -1,25 +0,0 @@
-bin/%%GNU_HOST%%-c++%%SUFFIX%%
-bin/%%GNU_HOST%%-g++%%SUFFIX%%
-bin/%%GNU_HOST%%-gcc%%SUFFIX%%
-bin/%%GNU_HOST%%-gcc-%%GCC_VERSION%%
-bin/%%GNU_HOST%%-gcc-ar%%SUFFIX%%
-bin/%%GNU_HOST%%-gcc-nm%%SUFFIX%%
-bin/%%GNU_HOST%%-gcc-ranlib%%SUFFIX%%
-bin/c++%%SUFFIX%%
-bin/cpp%%SUFFIX%%
-bin/g++%%SUFFIX%%
-bin/gcc%%SUFFIX%%
-bin/gcc-ar%%SUFFIX%%
-bin/gcc-nm%%SUFFIX%%
-bin/gcc-ranlib%%SUFFIX%%
-bin/gcov%%SUFFIX%%
-share/man/man1/cpp%%SUFFIX%%.1.gz
-share/man/man1/g++%%SUFFIX%%.1.gz
-share/man/man1/gcc%%SUFFIX%%.1.gz
-share/man/man1/gcov%%SUFFIX%%.1.gz
-share/gcc-%%GCC_VERSION%%/python/libstdcxx/__init__.py
-share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/__init__.py
-share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/printers.py
-@postexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi
-@postunexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi
-@comment Insert PLIST.lib here