aboutsummaryrefslogtreecommitdiff
path: root/packages/gcc-oracle
diff options
context:
space:
mode:
authorGuillermo E. Martinez <guillermo.e.martinez@oracle.com>2022-05-31 21:23:38 -0500
committerChris Packham <judge.packham@gmail.com>2022-06-26 20:29:05 +1200
commit883ecbebb642c88a11a78e8f2e8c30ad72813b9a (patch)
tree067c538ad2203f2488613d960ace4e75f22cc67b /packages/gcc-oracle
parent994767d6c586011e6493d6fd694382c47a919a34 (diff)
downloadcrosstool-ng-883ecbebb642c88a11a78e8f2e8c30ad72813b9a.tar.gz
crosstool-ng-883ecbebb642c88a11a78e8f2e8c30ad72813b9a.tar.bz2
crosstool-ng-883ecbebb642c88a11a78e8f2e8c30ad72813b9a.zip
Restore Oracle products to crosstool-ng using gcc-oracle
This commit restore the support for the following products in Oracle Linux 7.9: Binutils 2.27-44.base.0.400 GCC 4.8.5-44.0.5 glibc 2.17-317.0.3 UEK5/u4 4.14.35-2025.400.8 Sample configurations were updated to use such versions, and be compiled in host machine using recent GCC versions. Signed-off-by: Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
Diffstat (limited to 'packages/gcc-oracle')
-rw-r--r--packages/gcc-oracle/4.8.5-44.0.5/version.desc4
-rw-r--r--packages/gcc-oracle/git-dbf713b5/0001-Fix-compiler-error.patch92
2 files changed, 96 insertions, 0 deletions
diff --git a/packages/gcc-oracle/4.8.5-44.0.5/version.desc b/packages/gcc-oracle/4.8.5-44.0.5/version.desc
new file mode 100644
index 00000000..5040c3de
--- /dev/null
+++ b/packages/gcc-oracle/4.8.5-44.0.5/version.desc
@@ -0,0 +1,4 @@
+# EoS date for this package in OL7: Jul 2024.
+repository_branch='oracle/gcc/ol7-u9'
+version_number='4.8.5'
+obsolete='yes'
diff --git a/packages/gcc-oracle/git-dbf713b5/0001-Fix-compiler-error.patch b/packages/gcc-oracle/git-dbf713b5/0001-Fix-compiler-error.patch
new file mode 100644
index 00000000..992630c5
--- /dev/null
+++ b/packages/gcc-oracle/git-dbf713b5/0001-Fix-compiler-error.patch
@@ -0,0 +1,92 @@
+This patch is a backport from gcc
+
+This code is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This code is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+diff -Nur gcc/gcc/doc/gcc.texi gcc-oracle/gcc/doc/gcc.texi
+--- gcc/gcc/doc/gcc.texi 2022-05-31 22:24:28.784639836 -0500
++++ gcc-oracle/gcc/doc/gcc.texi 2022-05-31 22:25:14.695834317 -0500
+@@ -85,9 +85,9 @@
+ @item GNU Press
+ @tab Website: www.gnupress.org
+ @item a division of the
+-@tab General: @tex press@@gnu.org @end tex
++@tab General: @email{press@@gnu.org}
+ @item Free Software Foundation
+-@tab Orders: @tex sales@@gnu.org @end tex
++@tab Orders: @email{sales@@gnu.org}
+ @item 51 Franklin Street, Fifth Floor
+ @tab Tel 617-542-5942
+ @item Boston, MA 02110-1301 USA
+diff -Nur gcc/gcc/reload.h gcc-oracle/gcc/reload.h
+--- gcc/gcc/reload.h 2022-05-31 22:24:27.924654669 -0500
++++ gcc-oracle/gcc/reload.h 2022-05-31 22:25:14.695834317 -0500
+@@ -166,7 +166,7 @@
+ value indicates the level of indirect addressing supported, e.g., two
+ means that (MEM (MEM (REG n))) is also valid if (REG n) does not get
+ a hard register. */
+- bool x_spill_indirect_levels;
++ unsigned char x_spill_indirect_levels;
+
+ /* True if caller-save has been reinitialized. */
+ bool x_caller_save_initialized_p;
+diff -Nur gcc/libgcc/config/i386/linux-unwind.h gcc-oracle/libgcc/config/i386/linux-unwind.h
+--- gcc/libgcc/config/i386/linux-unwind.h 2022-05-31 22:24:27.100668870 -0500
++++ gcc-oracle/libgcc/config/i386/linux-unwind.h 2022-05-31 22:25:14.695834317 -0500
+@@ -58,7 +58,7 @@
+ if (*(unsigned char *)(pc+0) == 0x48
+ && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
+ {
+- struct ucontext *uc_ = context->cfa;
++ struct ucontext_t *uc_ = context->cfa;
+ /* The void * cast is necessary to avoid an aliasing warning.
+ The aliasing warning is correct, but should not be a problem
+ because it does not alias anything. */
+@@ -138,7 +138,7 @@
+ siginfo_t *pinfo;
+ void *puc;
+ siginfo_t info;
+- struct ucontext uc;
++ struct ucontext_t uc;
+ } *rt_ = context->cfa;
+ /* The void * cast is necessary to avoid an aliasing warning.
+ The aliasing warning is correct, but should not be a problem
+diff -Nur gcc/libgcc/unwind-dw2.c gcc-oracle/libgcc/unwind-dw2.c
+--- gcc/libgcc/unwind-dw2.c 2022-05-31 22:24:27.088669076 -0500
++++ gcc-oracle/libgcc/unwind-dw2.c 2022-05-31 22:25:14.695834317 -0500
+@@ -931,6 +931,17 @@
+ return stack[stack_elt];
+ }
+
++#define DWARF_REGNUM_AARCH64_RA_STATE 34
++
++#define MD_POST_EXTRACT_ROOT_ADDR(addr) \
++ ({ void *__addr; asm ("mov x30, %0; hint 7; mov %0, x30" \
++ : "=r" (__addr) : "0" (addr) : "x30", "cc"); __addr; })
++#define MD_POST_EXTRACT_FRAME_ADDR(context, fs, addr) \
++ aarch64_post_extract_frame_addr (context, fs, addr)
++#define MD_POST_FROB_EH_HANDLER_ADDR(current, target, addr) \
++ aarch64_post_frob_eh_handler_addr (current, target, addr)
++#define MD_FROB_UPDATE_CONTEXT(context, fs) \
++ aarch64_frob_update_context (context, fs)
+
+ /* Decode DWARF 2 call frame information. Takes pointers the
+ instruction sequence to decode, current register information and
+diff -Nur gcc/libsanitizer/asan/asan_linux.cc gcc-oracle/libsanitizer/asan/asan_linux.cc
+--- gcc/libsanitizer/asan/asan_linux.cc 2022-05-31 22:24:28.852638665 -0500
++++ gcc-oracle/libsanitizer/asan/asan_linux.cc 2022-05-31 22:25:14.695834317 -0500
+@@ -28,6 +28,7 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <unwind.h>
++#include <signal.h>
+
+ #if !ASAN_ANDROID
+ // FIXME: where to get ucontext on Android?