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>
This commit is contained in:
Guillermo E. Martinez 2022-05-31 21:23:38 -05:00 committed by Chris Packham
parent 994767d6c5
commit 883ecbebb6
17 changed files with 257 additions and 33 deletions

View File

@ -1,2 +0,0 @@
repository_branch='oracle/binutils/ol7-u9-arm'
version_number='2.27'

View File

@ -0,0 +1,14 @@
# Since Oracle provides different branches for binutils
# depending of the architecture:
#
# ARM64: 'oracle/binutils/ol7-u9-aarch64'
# ARM32: 'oracle/binutils/ol7-u9-arm'
#
# branch name is adjusted in:
# samples/{aarch64,arm}*ol7u9-*
#
# using CT_BINUTILS_ORACLE_DEVEL_BRANCH
#
# EoS date for this package in OL7: Jul 2024.
version_number='2.27-44.base.0.400'
obsolete='yes'

View File

@ -0,0 +1,24 @@
This patch is a backport from binutils-gdb commit:
a3972330f4: Fix a missing include of <string>
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 binutils-gdb/gold/errors.h binutils-gdb-oracle/gold/errors.h
--- binutils-gdb/gold/errors.h 2022-06-16 17:49:08.412691685 -0500
+++ binutils-gdb-oracle/gold/errors.h 2022-06-16 18:34:19.463006903 -0500
@@ -24,6 +24,7 @@
#define GOLD_ERRORS_H
#include <cstdarg>
+#include <string>
#include "gold-threads.h"

View File

@ -0,0 +1,24 @@
This patch is a backport from binutils-gdb commit:
a3972330f4: Fix a missing include of <string>
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 binutils-gdb/gold/errors.h binutils-gdb-oracle/gold/errors.h
--- binutils-gdb/gold/errors.h 2022-06-16 17:49:08.412691685 -0500
+++ binutils-gdb-oracle/gold/errors.h 2022-06-16 18:34:19.463006903 -0500
@@ -24,6 +24,7 @@
#define GOLD_ERRORS_H
#include <cstdarg>
+#include <string>
#include "gold-threads.h"

View File

@ -1,26 +0,0 @@
From 23272f9927dc95c0cf6f7c5aabcc0551eca572c5 Mon Sep 17 00:00:00 2001
From: Martin Liska <mliska@suse.cz>
Date: Fri, 7 Jun 2019 07:36:52 +0200
Subject: [PATCH] Fix a missing include of <string>
gold/ChangeLog:
2019-06-07 Martin Liska <mliska@suse.cz>
* errors.h: Include string.
---
gold/errors.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/gold/errors.h b/gold/errors.h
index 1e61c8dbb5..805b25fc9c 100644
--- a/gold/errors.h
+++ b/gold/errors.h
@@ -24,6 +24,7 @@
#define GOLD_ERRORS_H
#include <cstdarg>
+#include <string>
#include "gold-threads.h"

4
packages/cloog/0.18.0/chksum vendored Normal file
View File

@ -0,0 +1,4 @@
md5sum cloog-0.18.0.tar.gz be78a47bd82523250eb3e91646db5b3d
sha1sum cloog-0.18.0.tar.gz 85f620a26aabf6a934c44ca40a9799af0952f863
sha256sum cloog-0.18.0.tar.gz 1c4aa8dde7886be9cbe0f9069c334843b21028f61d344a2d685f88cb1dcf2228
sha512sum cloog-0.18.0.tar.gz 34404984c4269dfc19673712271b08f220b6b49e451e7479cefbc5d2f27ab8e780f5d51fbbc7cecb974dab655673d8348f2a1ece3a60feaeeb9413fccf16eb1d

3
packages/cloog/0.18.0/version.desc vendored Normal file
View File

@ -0,0 +1,3 @@
# This package is a dependency to build a cross toolchain
# for OL7u9, for which EoS date is at Jul 2024.
obsolete='yes'

View File

@ -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'

View File

@ -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?

View File

@ -1,2 +0,0 @@
repository_branch='oracle/glibc/ol7-u9'
version_number='2.17'

14
packages/glibc-oracle/2.17/version.desc vendored Normal file
View File

@ -0,0 +1,14 @@
# Since Oracle provides different branches for binutils
# depending of the architecture:
#
# ARM64: 'oracle/glibc/ol7-u9-aarch64'
# ARM32: 'oracle/glibc/ol7-u9'
#
# branch name is adjusted in:
# samples/{aarch64,arm}*ol7u9-*
#
# using CT_GLIBC_ORACLE_DEVEL_BRANCH
#
# EoS date for this package in OL7: Jul 2024.
version_number='2.17-317.0.3'
obsolete='yes'

View File

@ -0,0 +1,34 @@
This patch is a backport from glibc commits:
0b8dedd38f: Add-sys-auxv.h-wrapper-to-include-sys
d6bd839b9a: Add-a-way-to-bypass-the-PLT-when-calling-getauxval
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 glibc/include/sys/auxv.h glibc-oracle/include/sys/auxv.h
--- glibc/include/sys/auxv.h 1969-12-31 18:00:00.000000000 -0600
+++ glibc-oracle/include/sys/auxv.h 2022-06-16 12:25:09.112414961 -0500
@@ -0,0 +1,8 @@
+#include <misc/sys/auxv.h>
+
+#ifndef _ISOMAC
+
+extern __typeof (getauxval) __getauxval;
+libc_hidden_proto (__getauxval)
+
+#endif /* !_ISOMAC */
diff -Nur glibc/misc/getauxval.c glibc-oracle/misc/getauxval.c
--- glibc/misc/getauxval.c 2022-06-16 11:52:08.728852269 -0500
+++ glibc-oracle/misc/getauxval.c 2022-06-16 12:25:09.112414961 -0500
@@ -36,3 +36,4 @@
}
weak_alias (__getauxval, getauxval)
+libc_hidden_def (__getauxval)

8
packages/isl/0.11.1/chksum vendored Normal file
View File

@ -0,0 +1,8 @@
md5sum isl-0.11.1.tar.bz2 bce1586384d8635a76d2f017fb067cd2
sha1sum isl-0.11.1.tar.bz2 d7936929c3937e03f09b64c3c54e49422fa8ddb3
sha256sum isl-0.11.1.tar.bz2 095f4b54c88ca13a80d2b025d9c551f89ea7ba6f6201d701960bfe5c1466a98d
sha512sum isl-0.11.1.tar.bz2 f021ef6982b30a4834bc459af3520bd74b9c6af3e479b344c2d0e1bb4550b85cd30612e342ac761d85f1d2e2160ab3183e1252696726f438e61fb070a7a7bd22
md5sum isl-0.11.1.tar.gz d7d27ebedc21a00b292cb7b50f4864f6
sha1sum isl-0.11.1.tar.gz f44035e0c77c9dbf6a4db7142cae0bb601958b98
sha256sum isl-0.11.1.tar.gz 55f6c36a119d5fbd90ebc1f7ab07144b41c6f7f038acd18ab58c4c11beefdfc8
sha512sum isl-0.11.1.tar.gz f7b4a32bd83cf9189c8717ddc2bfe67ed4c93bd437d35e6b7ba97dc3b8a8b85313d79de925f7a87dcadd8e2d248b162ff0d877802d62e68cec9b30aa43c6813f

3
packages/isl/0.11.1/version.desc vendored Normal file
View File

@ -0,0 +1,3 @@
# This package is a dependency to build a cross toolchain
# for OL7u9, for which EoS date is at Jul 2024.
obsolete='yes'

View File

@ -6,6 +6,8 @@ CT_TARGET_VENDOR="ol7u9"
CT_KERNEL_LINUX=y
CT_LINUX_USE_ORACLE=y
CT_BINUTILS_USE_ORACLE=y
CT_BINUTILS_ORACLE_V_2_27=y
CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol7-u9-aarch64"
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
@ -13,5 +15,13 @@ 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_GCC_V_4_9=y
CT_GLIBC_ORACLE_V_2_17=y
CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol7-u9-aarch64"
CT_CLOOG_V_0_18_0=y
CT_CLOOG_VERSION="0.18.0"
CT_ISL_V_0_11=y
CT_ISL_VERSION="0.11.1"
CT_GCC_USE_ORACLE=y
CT_GCC_ORACLE_V_4_8=y
CT_GCC_ORACLE_VERSION="4.8.5-44.0.5"
CT_CC_LANG_CXX=y

View File

@ -6,6 +6,8 @@ CT_TARGET_VENDOR="ol7u9"
CT_KERNEL_LINUX=y
CT_LINUX_USE_ORACLE=y
CT_BINUTILS_USE_ORACLE=y
CT_BINUTILS_ORACLE_V_2_27=y
CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol7-u9-arm"
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
@ -13,5 +15,13 @@ 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_GCC_V_4_9=y
CT_GLIBC_ORACLE_V_2_17=y
CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol7-u9"
CT_CLOOG_V_0_18_0=y
CT_CLOOG_VERSION="0.18.0"
CT_ISL_V_0_11=y
CT_ISL_VERSION="0.11.1"
CT_GCC_USE_ORACLE=y
CT_GCC_ORACLE_V_4_8=y
CT_GCC_ORACLE_VERSION="4.8.5-44.0.5"
CT_CC_LANG_CXX=y

View File

@ -6,6 +6,8 @@ CT_TARGET_VENDOR="ol7u9"
CT_KERNEL_LINUX=y
CT_LINUX_USE_ORACLE=y
CT_BINUTILS_USE_ORACLE=y
CT_BINUTILS_ORACLE_V_2_27=y
CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol7-u9-arm"
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
@ -13,5 +15,13 @@ 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_GCC_V_4_9=y
CT_GLIBC_ORACLE_V_2_17=y
CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol7-u9"
CT_CLOOG_V_0_18_0=y
CT_CLOOG_VERSION="0.18.0"
CT_ISL_V_0_11=y
CT_ISL_VERSION="0.11.1"
CT_GCC_USE_ORACLE=y
CT_GCC_ORACLE_V_4_8=y
CT_GCC_ORACLE_VERSION="4.8.5-44.0.5"
CT_CC_LANG_CXX=y