Skip to content

Commit

Permalink
Add support for newer Oracle Linux toolchain versions
Browse files Browse the repository at this point in the history
This commit adds support for ol8-u8 and ol9-u2 toolchain versions.

Signed-off-by: Cupertino Miranda <[email protected]>
  • Loading branch information
cupermir committed Jun 18, 2024
1 parent b2ffd29 commit bd36662
Show file tree
Hide file tree
Showing 16 changed files with 278 additions and 0 deletions.
1 change: 1 addition & 0 deletions packages/binutils-oracle/git-a9253844
1 change: 1 addition & 0 deletions packages/binutils-oracle/git-aa6fbb7a
92 changes: 92 additions & 0 deletions packages/gcc-oracle/11.3.1/0001-Fix-compiler-error.patch
Original file line number Diff line number Diff line change
@@ -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?
11 changes: 11 additions & 0 deletions packages/gcc-oracle/11.3.1/version.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Since Oracle provides different branches for GCC
# depending of the architecture:
#
# ARM64,i686,X86_64: 'oracle/gcc/ol9-u2'
#
# branch name is adjusted in:
# samples/{aarch64,i686,x86_64}*ol9u2-*
#
# using CT_GCC_ORACLE_DEVEL_BRANCH
#
version_number='11.3.2'
24 changes: 24 additions & 0 deletions samples/aarch64-ol8u8-linux-gnu/crosstool.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
CT_CONFIG_VERSION="4"
CT_ARCH_ARM=y
CT_ARCH_64=y
CT_TARGET_VENDOR="ol8u8"
CT_KERNEL_LINUX=y
CT_LINUX_USE_ORACLE=y
CT_BINUTILS_USE_ORACLE=y
CT_BINUTILS_ORACLE_V_2_30=y
CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol8-u8"
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_PLUGINS=y
CT_GLIBC_USE_ORACLE=y
CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized"
CT_GLIBC_ENABLE_COMMON_FLAG=y
CT_GLIBC_ENABLE_DEBUG=n
CT_CC_LANG_CXX=y
CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol8-u8"
CT_GCC_USE_ORACLE=y
CT_ISL_V_0_16=y
CT_GCC_ORACLE_V_8=y
CT_GCC_ORACLE_VERSION="8.8.0"
CT_GCC_ORACLE_DEVEL_BRANCH="oracle/gcc/ol8-u8-aarch64"
3 changes: 3 additions & 0 deletions samples/aarch64-ol8u8-linux-gnu/reported.by
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
reporter_name="Cupertino Miranda"
reporter_url=""
reporter_comment="OL 8.8 toolchain configured for aarch64"
27 changes: 27 additions & 0 deletions samples/aarch64-ol9u2-linux-gnu/crosstool.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
CT_CONFIG_VERSION="4"
CT_ARCH_ARM=y
CT_ARCH_64=y
CT_TARGET_VENDOR="ol9u2"
CT_KERNEL_LINUX=y
CT_LINUX_USE_ORACLE=y
CT_BINUTILS_USE_ORACLE=y
CT_BINUTILS_ORACLE_V_2_35=y
CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol9-u2"
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_PLUGINS=y
CT_GLIBC_USE_ORACLE=y
CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized"
CT_GLIBC_ENABLE_COMMON_FLAG=y
CT_GLIBC_ENABLE_DEBUG=n
CT_GLIBC_ORACLE_V_2_34=y
CT_CC_LANG_CXX=y
CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol9-u2"
CT_GCC_USE_ORACLE=y
CT_ISL_V_0_16=y
CT_GCC_ORACLE_V_11=y
CT_GCC_ORACLE_VERSION="11.2.0"
CT_GCC_ORACLE_DEVEL_BRANCH="oracle/gcc/ol9-u2"
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-host-pie --enable-host-bind-now"
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-pie --enable-host-bind-now"
3 changes: 3 additions & 0 deletions samples/aarch64-ol9u2-linux-gnu/reported.by
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
reporter_name="Cupertino Miranda"
reporter_url=""
reporter_comment="OL 9.2 toolchain configured for aarch64"
25 changes: 25 additions & 0 deletions samples/i686-ol8u8-linux-gnu/crosstool.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
CT_CONFIG_VERSION="4"
CT_ARCH_X86=y
CT_ARCH_ARCH="i686"
CT_TARGET_VENDOR="ol8u8"
CT_KERNEL_LINUX=y
CT_LINUX_USE_ORACLE=y
CT_BINUTILS_USE_ORACLE=y
CT_BINUTILS_ORACLE_V_2_30=y
CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol8-u8"
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_PLUGINS=y
CT_GLIBC_USE_ORACLE=y
CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized"
CT_GLIBC_ENABLE_COMMON_FLAG=y
CT_GLIBC_ENABLE_DEBUG=n
CT_CC_LANG_CXX=y
CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol8-u8"
CT_GLIBC_ORACLE_V_2_28_225_0_3=y
CT_GCC_USE_ORACLE=y
CT_ISL_V_0_16=y
CT_GCC_ORACLE_V_8=y
CT_GCC_ORACLE_VERSION="8.8.0"
CT_GCC_ORACLE_DEVEL_BRANCH="oracle/gcc/ol8-u8-x86"
3 changes: 3 additions & 0 deletions samples/i686-ol8u8-linux-gnu/reported.by
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
reporter_name="Cupertino Miranda"
reporter_url=""
reporter_comment="OL 8.7 toolchain configured for x86_64"
27 changes: 27 additions & 0 deletions samples/i686-ol9u2-linux-gnu/crosstool.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
CT_CONFIG_VERSION="4"
CT_ARCH_X86=y
CT_ARCH_ARCH="i686"
CT_TARGET_VENDOR="ol9u2"
CT_KERNEL_LINUX=y
CT_LINUX_USE_ORACLE=y
CT_BINUTILS_USE_ORACLE=y
CT_BINUTILS_ORACLE_V_2_35=y
CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol9-u2"
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_PLUGINS=y
CT_GLIBC_USE_ORACLE=y
CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized"
CT_GLIBC_ENABLE_COMMON_FLAG=y
CT_GLIBC_ENABLE_DEBUG=n
CT_GLIBC_ORACLE_V_2_34=y
CT_CC_LANG_CXX=y
CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol9-u2"
CT_GCC_USE_ORACLE=y
CT_ISL_V_0_16=y
CT_GCC_ORACLE_V_11=y
CT_GCC_ORACLE_VERSION="11.2.0"
CT_GCC_ORACLE_DEVEL_BRANCH="oracle/gcc/ol9-u2"
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-host-pie --enable-host-bind-now"
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-pie --enable-host-bind-now"
3 changes: 3 additions & 0 deletions samples/i686-ol9u2-linux-gnu/reported.by
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
reporter_name="Cupertino Miranda"
reporter_url=""
reporter_comment="OL 8.7 toolchain configured for x86_64"
25 changes: 25 additions & 0 deletions samples/x86_64-ol8u8-linux-gnu/crosstool.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
CT_CONFIG_VERSION="4"
CT_ARCH_X86=y
CT_ARCH_64=y
CT_TARGET_VENDOR="ol8u8"
CT_KERNEL_LINUX=y
CT_LINUX_USE_ORACLE=y
CT_BINUTILS_USE_ORACLE=y
CT_BINUTILS_ORACLE_V_2_30=y
CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol8-u8"
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_PLUGINS=y
CT_GLIBC_USE_ORACLE=y
CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized"
CT_GLIBC_ENABLE_COMMON_FLAG=y
CT_GLIBC_ENABLE_DEBUG=n
CT_CC_LANG_CXX=y
CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol8-u8"
CT_GLIBC_ORACLE_V_2_28_225_0_3=y
CT_GCC_USE_ORACLE=y
CT_ISL_V_0_16=y
CT_GCC_ORACLE_V_8=y
CT_GCC_ORACLE_VERSION="8.8.0"
CT_GCC_ORACLE_DEVEL_BRANCH="oracle/gcc/ol8-u8-x86"
3 changes: 3 additions & 0 deletions samples/x86_64-ol8u8-linux-gnu/reported.by
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
reporter_name="Cupertino Miranda"
reporter_url=""
reporter_comment="OL 8.8 toolchain configured for x86_64"
27 changes: 27 additions & 0 deletions samples/x86_64-ol9u2-linux-gnu/crosstool.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
CT_CONFIG_VERSION="4"
CT_ARCH_X86=y
CT_ARCH_64=y
CT_TARGET_VENDOR="ol9u2"
CT_KERNEL_LINUX=y
CT_LINUX_USE_ORACLE=y
CT_BINUTILS_USE_ORACLE=y
CT_BINUTILS_ORACLE_V_2_35=y
CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol9-u2"
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_PLUGINS=y
CT_GLIBC_USE_ORACLE=y
CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized"
CT_GLIBC_ENABLE_COMMON_FLAG=y
CT_GLIBC_ENABLE_DEBUG=n
CT_GLIBC_ORACLE_V_2_34=y
CT_CC_LANG_CXX=y
CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol9-u2"
CT_GCC_USE_ORACLE=y
CT_ISL_V_0_16=y
CT_GCC_ORACLE_V_11=y
CT_GCC_ORACLE_VERSION="11.2.0"
CT_GCC_ORACLE_DEVEL_BRANCH="oracle/gcc/ol9-u2"
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-host-pie --enable-host-bind-now"
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-pie --enable-host-bind-now"
3 changes: 3 additions & 0 deletions samples/x86_64-ol9u2-linux-gnu/reported.by
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
reporter_name="Cupertino Miranda"
reporter_url=""
reporter_comment="OL 9.2 toolchain configured for x86_64"

0 comments on commit bd36662

Please sign in to comment.