commit: 7e77904383bab15cbe131c2d32cf4e2d06dbb769
Author: Felix Janda <felix.janda <AT> posteo <DOT> de>
AuthorDate: Mon Nov 3 19:54:43 2014 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Nov 4 18:41:48 2014 +0000
URL:
http://sources.gentoo.org/gitweb/?p=proj/hardened-dev.git;a=commit;h=7e779043
sys-devel/gcc: support for powerpc
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>
---
.../gcc/files/gcc-4.7.3-musl-linker-path.patch | 26 ++++
.../files/gcc-4.7.3-powerpc-libc-stack-end.patch | 171 +++++++++++++++++++++
sys-devel/gcc/files/gcc-4.7.4-secure-plt.patch | 37 +++++
.../gcc/files/gcc-4.8.3-musl-linker-path.patch | 65 ++++++++
sys-devel/gcc/files/gcc-4.8.3-secure-plt.patch | 43 ++++++
sys-devel/gcc/gcc-4.7.4-r99.ebuild | 2 +
sys-devel/gcc/gcc-4.8.3-r99.ebuild | 3 +-
7 files changed, 346 insertions(+), 1 deletion(-)
diff --git a/sys-devel/gcc/files/gcc-4.7.3-musl-linker-path.patch
b/sys-devel/gcc/files/gcc-4.7.3-musl-linker-path.patch
index df076f1..d454053 100644
--- a/sys-devel/gcc/files/gcc-4.7.3-musl-linker-path.patch
+++ b/sys-devel/gcc/files/gcc-4.7.3-musl-linker-path.patch
@@ -33,3 +33,29 @@ diff -Naur gcc-4.7.3.orig/gcc/config/mips/linux.h
gcc-4.7.3/gcc/config/mips/linu
-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld-musl-mipsel.so.1"
+diff -Naur gcc-4.7.3.orig/gcc/config/rs6000/linux64.h
gcc-4.7.3/gcc/config/rs6000/linux64.h
+--- gcc-4.7.3/gcc/config/rs6000/linux64.h 2014-10-11 18:59:07.479279989
-0200
++++ gcc-4.7.3/gcc/config/rs6000/linux64.h 2014-10-11 18:59:45.777801191
-0200
+@@ -358,8 +358,8 @@
+ #undef LINK_OS_DEFAULT_SPEC
+ #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld64.so.1"
++#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-musl-powerpc.so.1"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-musl-powerpc64.so.1"
+ #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
+ #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
+ #if DEFAULT_LIBC == LIBC_UCLIBC
+diff -Naur gcc-4.7.3/gcc/config/rs6000/sysv4.h
gcc-4.7.3/gcc/config/rs6000/sysv4.h
+--- gcc-4.7.3/gcc/config/rs6000/sysv4.h 2014-10-11 19:00:03.079584889
-0200
++++ gcc-4.7.3/gcc/config/rs6000/sysv4.h 2014-10-11 19:00:28.476267387
-0200
+@@ -802,7 +802,7 @@
+
+ #define LINK_START_LINUX_SPEC ""
+
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER "/lib/ld-musl-powerpc.so.1"
+ #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
+ #if DEFAULT_LIBC == LIBC_UCLIBC
+ #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
diff --git a/sys-devel/gcc/files/gcc-4.7.3-powerpc-libc-stack-end.patch
b/sys-devel/gcc/files/gcc-4.7.3-powerpc-libc-stack-end.patch
new file mode 100644
index 0000000..91c1b34
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-4.7.3-powerpc-libc-stack-end.patch
@@ -0,0 +1,171 @@
+From: amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 15 Feb 2013 13:53:40 +0000 (+0000)
+Subject: PR target/55431
+X-Git-Tag: gcc-4_8_0-release~416
+X-Git-Url:
http://repo.or.cz/w/official-gcc.git/commitdiff_plain/2a0bfd56d1b6a8ece8fb852691ea32713c7891b3
+
+ PR target/55431
+ * config/rs6000/linux-unwind.h (ppc_linux_aux_vector): Delete.
+ (ppc_fallback_frame_state): Always set up save locations for fp
+ and altivec. Don't bother with non-callee-saved regs, r0-r13
+ except for r2 on ppc64, fr0-fr13, v0-v19, vscr.
+
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196077
138bc75d-0d04-0410-961f-82ee72b054a4
+diff --git a/libgcc/config/rs6000/linux-unwind.h
b/libgcc/config/rs6000/linux-unwind.h
+index 3a2da6e..c9273c4 100644
+--- a/libgcc/config/rs6000/linux-unwind.h
++++ b/libgcc/config/rs6000/linux-unwind.h
+@@ -26,7 +26,6 @@
+ #define R_CR2 70
+ #define R_VR0 77
+ #define R_VRSAVE 109
+-#define R_VSCR 110
+
+ struct gcc_vregs
+ {
+@@ -175,38 +174,6 @@ get_regs (struct _Unwind_Context *context)
+ }
+ #endif
+
+-/* Find an entry in the process auxiliary vector. The canonical way to
+- test for VMX is to look at AT_HWCAP. */
+-
+-static long
+-ppc_linux_aux_vector (long which)
+-{
+- /* __libc_stack_end holds the original stack passed to a process. */
+- extern long *__libc_stack_end;
+- long argc;
+- char **argv;
+- char **envp;
+- struct auxv
+- {
+- long a_type;
+- long a_val;
+- } *auxp;
+-
+- /* The Linux kernel puts argc first on the stack. */
+- argc = __libc_stack_end[0];
+- /* Followed by argv, NULL terminated. */
+- argv = (char **) __libc_stack_end + 1;
+- /* Followed by environment string pointers, NULL terminated. */
+- envp = argv + argc + 1;
+- while (*envp++)
+- continue;
+- /* Followed by the aux vector, zero terminated. */
+- for (auxp = (struct auxv *) envp; auxp->a_type != 0; ++auxp)
+- if (auxp->a_type == which)
+- return auxp->a_val;
+- return 0;
+-}
+-
+ /* Do code reading to identify a signal frame, and set the frame
+ state data appropriately. See unwind-dw2.c for the structs. */
+
+@@ -216,8 +183,8 @@ static _Unwind_Reason_Code
+ ppc_fallback_frame_state (struct _Unwind_Context *context,
+ _Unwind_FrameState *fs)
+ {
+- static long hwcap = 0;
+ struct gcc_regs *regs = get_regs (context);
++ struct gcc_vregs *vregs;
+ long new_cfa;
+ int i;
+
+@@ -229,12 +196,15 @@ ppc_fallback_frame_state (struct _Unwind_Context
*context,
+ fs->regs.cfa_reg = STACK_POINTER_REGNUM;
+ fs->regs.cfa_offset = new_cfa - (long) context->cfa;
+
+- for (i = 0; i < 32; i++)
+- if (i != STACK_POINTER_REGNUM)
+- {
+- fs->regs.reg[i].how = REG_SAVED_OFFSET;
+- fs->regs.reg[i].loc.offset = (long) ®s->gpr[i] - new_cfa;
+- }
++#ifdef __powerpc64__
++ fs->regs.reg[2].how = REG_SAVED_OFFSET;
++ fs->regs.reg[2].loc.offset = (long) ®s->gpr[2] - new_cfa;
++#endif
++ for (i = 14; i < 32; i++)
++ {
++ fs->regs.reg[i].how = REG_SAVED_OFFSET;
++ fs->regs.reg[i].loc.offset = (long) ®s->gpr[i] - new_cfa;
++ }
+
+ fs->regs.reg[R_CR2].how = REG_SAVED_OFFSET;
+ /* CR? regs are always 32-bit and PPC is big-endian, so in 64-bit
+@@ -250,57 +220,35 @@ ppc_fallback_frame_state (struct _Unwind_Context
*context,
+ fs->retaddr_column = ARG_POINTER_REGNUM;
+ fs->signal_frame = 1;
+
+- if (hwcap == 0)
++ /* If we have a FPU... */
++ for (i = 14; i < 32; i++)
+ {
+- hwcap = ppc_linux_aux_vector (16);
+- /* These will already be set if we found AT_HWCAP. A nonzero
+- value stops us looking again if for some reason we couldn't
+- find AT_HWCAP. */
+-#ifdef __powerpc64__
+- hwcap |= 0xc0000000;
+-#else
+- hwcap |= 0x80000000;
+-#endif
++ fs->regs.reg[i + 32].how = REG_SAVED_OFFSET;
++ fs->regs.reg[i + 32].loc.offset = (long) ®s->fpr[i] - new_cfa;
+ }
+
+- /* If we have a FPU... */
+- if (hwcap & 0x08000000)
+- for (i = 0; i < 32; i++)
+- {
+- fs->regs.reg[i + 32].how = REG_SAVED_OFFSET;
+- fs->regs.reg[i + 32].loc.offset = (long) ®s->fpr[i] - new_cfa;
+- }
+-
+ /* If we have a VMX unit... */
+- if (hwcap & 0x10000000)
+- {
+- struct gcc_vregs *vregs;
+ #ifdef __powerpc64__
+- vregs = regs->vp;
++ vregs = regs->vp;
+ #else
+- vregs = ®s->vregs;
++ vregs = ®s->vregs;
+ #endif
+- if (regs->msr & (1 << 25))
++ if (regs->msr & (1 << 25))
++ {
++ for (i = 20; i < 32; i++)
+ {
+- for (i = 0; i < 32; i++)
+- {
+- fs->regs.reg[i + R_VR0].how = REG_SAVED_OFFSET;
+- fs->regs.reg[i + R_VR0].loc.offset
+- = (long) &vregs->vr[i] - new_cfa;
+- }
+-
+- fs->regs.reg[R_VSCR].how = REG_SAVED_OFFSET;
+- fs->regs.reg[R_VSCR].loc.offset = (long) &vregs->vscr - new_cfa;
++ fs->regs.reg[i + R_VR0].how = REG_SAVED_OFFSET;
++ fs->regs.reg[i + R_VR0].loc.offset = (long) &vregs->vr[i] - new_cfa;
+ }
+-
+- fs->regs.reg[R_VRSAVE].how = REG_SAVED_OFFSET;
+- fs->regs.reg[R_VRSAVE].loc.offset = (long) &vregs->vsave - new_cfa;
+ }
+
++ fs->regs.reg[R_VRSAVE].how = REG_SAVED_OFFSET;
++ fs->regs.reg[R_VRSAVE].loc.offset = (long) &vregs->vsave - new_cfa;
++
+ /* If we have SPE register high-parts... we check at compile-time to
+ avoid expanding the code for all other PowerPC. */
+ #ifdef __SPE__
+- for (i = 0; i < 32; i++)
++ for (i = 14; i < 32; i++)
+ {
+ fs->regs.reg[i + FIRST_PSEUDO_REGISTER - 1].how = REG_SAVED_OFFSET;
+ fs->regs.reg[i + FIRST_PSEUDO_REGISTER - 1].loc.offset
diff --git a/sys-devel/gcc/files/gcc-4.7.4-secure-plt.patch
b/sys-devel/gcc/files/gcc-4.7.4-secure-plt.patch
new file mode 100644
index 0000000..6277824
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-4.7.4-secure-plt.patch
@@ -0,0 +1,37 @@
+adapted from musl-cross gcc-patches
+diff -r 6097333f2ab4 gcc/config/rs6000/secureplt.h
+--- a/gcc/config/rs6000/secureplt.h Tue May 20 11:06:08 2014 -0400
++++ b/gcc/config/rs6000/secureplt.h Tue May 20 11:06:11 2014 -0400
+@@ -18,3 +18,4 @@
+ <http://www.gnu.org/licenses/>. */
+
+ #define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
++#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
+--- a/gcc/config/rs6000/sysv4.h 2012-04-30 19:39:01.000000000 -0200
++++ b/gcc/config/rs6000/sysv4.h 2014-10-21 10:24:03.631956578 -0200
+@@ -537,6 +537,9 @@
+ } \
+ while (0)
+ #endif
++#ifndef LINK_SECURE_PLT_DEFAULT_SPEC
++#define LINK_SECURE_PLT_DEFAULT_SPEC ""
++#endif
+
+ #undef ASM_SPEC
+ #define ASM_SPEC "%(asm_cpu) \
+@@ -624,6 +627,7 @@
+ /* Override the default target of the linker. */
+ #define LINK_TARGET_SPEC "\
+ %{mlittle: --oformat elf32-powerpcle } %{mlittle-endian: --oformat
elf32-powerpcle } \
++%{!mbss-plt: %{!msecure-plt: %(link_secure_plt_default)}} \
+ %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
+ %{mcall-i960-old: --oformat elf32-powerpcle} \
+ }}}}"
+@@ -938,6 +942,7 @@
+ { "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \
+ { "cc1_endian_default", CC1_ENDIAN_DEFAULT_SPEC }, \
+ { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
++ { "link_secure_plt_default", LINK_SECURE_PLT_DEFAULT_SPEC },
\
+ { "cpp_os_ads", CPP_OS_ADS_SPEC }, \
+ { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
+ { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
diff --git a/sys-devel/gcc/files/gcc-4.8.3-musl-linker-path.patch
b/sys-devel/gcc/files/gcc-4.8.3-musl-linker-path.patch
new file mode 100644
index 0000000..0f3d96c
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-4.8.3-musl-linker-path.patch
@@ -0,0 +1,65 @@
+diff -ur a/gcc-4.8.3/gcc/config/arm/linux-eabi.h
b/gcc-4.8.3/gcc/config/arm/linux-eabi.h
+--- a/gcc-4.8.3/gcc/config/arm/linux-eabi.h 2013-01-10 21:38:27.000000000
-0100
++++ b/gcc-4.8.3/gcc/config/arm/linux-eabi.h 2014-11-03 20:04:06.126283403
-0100
+@@ -68,8 +68,8 @@
+ GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
+
+ #undef GLIBC_DYNAMIC_LINKER
+-#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
+-#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
++#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-musl-arm.so.1"
++#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-musl-armhf.so.1"
+ #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
+
+ #define GLIBC_DYNAMIC_LINKER \
+diff -ur a/gcc-4.8.3/gcc/config/i386/linux64.h
b/gcc-4.8.3/gcc/config/i386/linux64.h
+--- a/gcc-4.8.3/gcc/config/i386/linux64.h 2013-01-10 21:38:27.000000000
-0100
++++ b/gcc-4.8.3/gcc/config/i386/linux64.h 2014-11-03 20:04:06.126283403
-0100
+@@ -27,6 +27,6 @@
+ #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
+ #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
+ #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
+diff -ur a/gcc-4.8.3/gcc/config/mips/linux.h
b/gcc-4.8.3/gcc/config/mips/linux.h
+--- a/gcc-4.8.3/gcc/config/mips/linux.h 2013-01-10 21:38:27.000000000
-0100
++++ b/gcc-4.8.3/gcc/config/mips/linux.h 2014-11-03 20:04:06.126283403
-0100
+@@ -17,4 +17,4 @@
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER "/lib/ld-musl-mipsel.so.1"
+diff -ur a/gcc-4.8.3/gcc/config/rs6000/linux64.h
b/gcc-4.8.3/gcc/config/rs6000/linux64.h
+--- a/gcc-4.8.3/gcc/config/rs6000/linux64.h 2014-04-04 16:10:24.000000000
-0100
++++ b/gcc-4.8.3/gcc/config/rs6000/linux64.h 2014-11-03 20:06:28.219506993
-0100
+@@ -366,12 +366,8 @@
+ #undef LINK_OS_DEFAULT_SPEC
+ #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
+-#ifdef LINUX64_DEFAULT_ABI_ELFv2
+-#define GLIBC_DYNAMIC_LINKER64
"%{mabi=elfv1:/lib64/ld64.so.1;:/lib64/ld64.so.2}"
+-#else
+-#define GLIBC_DYNAMIC_LINKER64
"%{mabi=elfv2:/lib64/ld64.so.2;:/lib64/ld64.so.1}"
+-#endif
++#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-musl-powerpc.so.1"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-musl-powerpc64.so.1"
+ #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
+ #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
+ #if DEFAULT_LIBC == LIBC_UCLIBC
+diff -ur a/gcc-4.8.3/gcc/config/rs6000/sysv4.h
b/gcc-4.8.3/gcc/config/rs6000/sysv4.h
+--- a/gcc-4.8.3/gcc/config/rs6000/sysv4.h 2014-04-04 15:50:31.000000000
-0100
++++ b/gcc-4.8.3/gcc/config/rs6000/sysv4.h 2014-11-03 20:04:06.128283378
-0100
+@@ -761,7 +761,7 @@
+
+ #define LINK_START_LINUX_SPEC ""
+
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER "/lib/ld-musl-powerpc.so.1"
+ #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
+ #if DEFAULT_LIBC == LIBC_UCLIBC
+ #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
diff --git a/sys-devel/gcc/files/gcc-4.8.3-secure-plt.patch
b/sys-devel/gcc/files/gcc-4.8.3-secure-plt.patch
new file mode 100644
index 0000000..fc367ae
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-4.8.3-secure-plt.patch
@@ -0,0 +1,43 @@
+diff -ur a/gcc-4.8.3/gcc/config/rs6000/secureplt.h
b/gcc-4.8.3/gcc/config/rs6000/secureplt.h
+--- a/gcc-4.8.3/gcc/config/rs6000/secureplt.h 2013-01-10 21:38:27.000000000
-0100
++++ b/gcc-4.8.3/gcc/config/rs6000/secureplt.h 2014-11-03 20:41:01.696584962
-0100
+@@ -18,3 +18,4 @@
+ <http://www.gnu.org/licenses/>. */
+
+ #define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
++#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
+diff -ur a/gcc-4.8.3/gcc/config/rs6000/sysv4.h
b/gcc-4.8.3/gcc/config/rs6000/sysv4.h
+--- a/gcc-4.8.3/gcc/config/rs6000/sysv4.h 2014-04-04 15:50:31.000000000
-0100
++++ b/gcc-4.8.3/gcc/config/rs6000/sysv4.h 2014-11-03 20:42:30.098479787
-0100
+@@ -585,7 +585,8 @@
+
+ /* Override the default target of the linker. */
+ #define LINK_TARGET_SPEC \
+- ENDIAN_SELECT("", " --oformat elf32-powerpcle", "")
++ ENDIAN_SELECT("", " --oformat elf32-powerpcle", "") \
++ "%{!mbss-plt: %{!msecure-plt: %(link_secure_plt_default)}}"
+
+ /* Any specific OS flags. */
+ #define LINK_OS_SPEC "\
+@@ -894,6 +895,7 @@
+ { "link_os_openbsd", LINK_OS_OPENBSD_SPEC },
\
+ { "link_os_default", LINK_OS_DEFAULT_SPEC },
\
+ { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
++ { "link_secure_plt_default", LINK_SECURE_PLT_DEFAULT_SPEC },
\
+ { "cpp_os_ads", CPP_OS_ADS_SPEC }, \
+ { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
+ { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
+diff -ur a/gcc-4.8.3/gcc/config.gcc b/gcc-4.8.3/gcc/config.gcc
+--- a/gcc-4.8.3/gcc/config.gcc 2014-05-06 16:29:04.000000000 -0100
++++ b/gcc-4.8.3/gcc/config.gcc 2014-11-03 20:40:13.135192063 -0100
+@@ -2135,6 +2135,10 @@
+ powerpc*-*-linux*paired*)
+ tm_file="${tm_file} rs6000/750cl.h" ;;
+ esac
++ case ${target} in
++ *-linux*-musl*)
++ enable_secureplt=yes ;;
++ esac
+ if test x${enable_secureplt} = xyes; then
+ tm_file="rs6000/secureplt.h ${tm_file}"
+ fi
diff --git a/sys-devel/gcc/gcc-4.7.4-r99.ebuild
b/sys-devel/gcc/gcc-4.7.4-r99.ebuild
index 52f95bb..e2735a5 100644
--- a/sys-devel/gcc/gcc-4.7.4-r99.ebuild
+++ b/sys-devel/gcc/gcc-4.7.4-r99.ebuild
@@ -53,6 +53,8 @@ src_prepare() {
mv libitm/config/linux/x86 libitm/config/linux/x86_glibc
cp -r libitm/config/generic libitm/config/linux/x86
epatch "${FILESDIR}"/${PN}-4.7.3-musl-linker-path.patch
+ epatch "${FILESDIR}"/${PN}-4.7.3-powerpc-libc-stack-end.patch
+ epatch "${FILESDIR}"/${PN}-4.7.4-secure-plt.patch
fi
use vanilla && return 0
diff --git a/sys-devel/gcc/gcc-4.8.3-r99.ebuild
b/sys-devel/gcc/gcc-4.8.3-r99.ebuild
index 43e2ecf..99f7990 100644
--- a/sys-devel/gcc/gcc-4.8.3-r99.ebuild
+++ b/sys-devel/gcc/gcc-4.8.3-r99.ebuild
@@ -52,7 +52,8 @@ src_prepare() {
cp libstdc++-v3/config/os/gnu-linux.org/arm-eabi-extra.ver
libstdc++-v3/config/os/gnu-linux/
mv libitm/config/linux/x86 libitm/config/linux/x86_glibc
cp -r libitm/config/generic libitm/config/linux/x86
- epatch "${FILESDIR}"/${PN}-4.7.3-musl-linker-path.patch
+ epatch "${FILESDIR}"/${PN}-4.8.3-musl-linker-path.patch
+ epatch "${FILESDIR}"/${PN}-4.8.3-secure-plt.patch
epatch "${FILESDIR}"/${PN}-4.8.3-musl-res_state.patch
epatch "${FILESDIR}"/${PN}-4.8.3-musl-fix-libc5-assumption.patch
fi