From 22e78dc1b001bf26908e1d91ab81d706fe035b60 Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 14 Oct 2020 20:26:38 +0200 Subject: [PATCH] gcc: fix order of postdep_objects_CXX make sure crt* objects come after anything else fixes #25535 [ci skip] --- srcpkgs/gcc/patches/fix-vtv-link-order.patch | 20 ++++++++++++++++++++ srcpkgs/gcc/template | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/gcc/patches/fix-vtv-link-order.patch diff --git a/srcpkgs/gcc/patches/fix-vtv-link-order.patch b/srcpkgs/gcc/patches/fix-vtv-link-order.patch new file mode 100644 index 00000000000..3315c3e990b --- /dev/null +++ b/srcpkgs/gcc/patches/fix-vtv-link-order.patch @@ -0,0 +1,20 @@ +put vtv_end.o in front of postdep_objects_CXX +having it after crtendS.o leads to missing zero termination in eh_frame section + +This is in line with comment in libgcc/vtv_end.c: + + When the GCC driver inserts vtv_start.o into the link line (just + after crtbegin.o) it also inserts vtv_end.o into the link line, + just before crtend.o. + +--- libstdc++-v3/configure ++++ libstdc++-v3/configure +@@ -15443,7 +15443,7 @@ + + if test "$enable_vtable_verify" = yes; then + predep_objects_CXX="${predep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_start.o" +- postdep_objects_CXX="${postdep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_end.o" ++ postdep_objects_CXX="${glibcxx_builddir}/../libgcc/vtv_end.o ${postdep_objects_CXX}" + fi + + diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template index ead6f05a498..f4e2f949933 100644 --- a/srcpkgs/gcc/template +++ b/srcpkgs/gcc/template @@ -8,7 +8,7 @@ _isl_version=0.21 pkgname=gcc version=${_minorver}.0 -revision=6 +revision=7 short_desc="GNU Compiler Collection" maintainer="Enno Boland " homepage="http://gcc.gnu.org"