crosstool-ng/packages/gcc-oracle/git-dbf713b5/0001-Fix-compiler-error.patch
Guillermo E. Martinez 883ecbebb6 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>
2022-06-26 20:29:05 +12:00

93 lines
3.8 KiB
Diff

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?