basebuilder_pel7ppc64lebuilder1
6 years ago
16 changed files with 2161 additions and 0 deletions
@ -0,0 +1,27 @@ |
|||||||
|
2017-02-25 Jakub Jelinek <jakub@redhat.com> |
||||||
|
|
||||||
|
* configure.ac: When adding -Wno-format, also add -Wno-format-security. |
||||||
|
* configure: Regenerated. |
||||||
|
|
||||||
|
--- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100 |
||||||
|
+++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100 |
||||||
|
@@ -481,7 +481,7 @@ AC_ARG_ENABLE(build-format-warnings, |
||||||
|
AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]), |
||||||
|
[],[enable_build_format_warnings=yes]) |
||||||
|
AS_IF([test $enable_build_format_warnings = no], |
||||||
|
- [wf_opt=-Wno-format],[wf_opt=]) |
||||||
|
+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=]) |
||||||
|
ACX_PROG_CXX_WARNING_OPTS( |
||||||
|
m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ], |
||||||
|
[-Wcast-qual $wf_opt])), [loose_warn]) |
||||||
|
--- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100 |
||||||
|
+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100 |
||||||
|
@@ -6647,7 +6647,7 @@ else |
||||||
|
fi |
||||||
|
|
||||||
|
if test $enable_build_format_warnings = no; then : |
||||||
|
- wf_opt=-Wno-format |
||||||
|
+ wf_opt="-Wno-format -Wno-format-security" |
||||||
|
else |
||||||
|
wf_opt= |
||||||
|
fi |
@ -0,0 +1,35 @@ |
|||||||
|
2014-04-07 Richard Henderson <rth@redhat.com> |
||||||
|
|
||||||
|
* common/config/aarch64/aarch64-common.c (TARGET_OPTION_INIT_STRUCT): |
||||||
|
Define. |
||||||
|
(aarch64_option_init_struct): New function. |
||||||
|
|
||||||
|
--- gcc/common/config/aarch64/aarch64-common.c |
||||||
|
+++ gcc/common/config/aarch64/aarch64-common.c |
||||||
|
@@ -39,6 +39,9 @@ |
||||||
|
#undef TARGET_OPTION_OPTIMIZATION_TABLE |
||||||
|
#define TARGET_OPTION_OPTIMIZATION_TABLE aarch_option_optimization_table |
||||||
|
|
||||||
|
+#undef TARGET_OPTION_INIT_STRUCT |
||||||
|
+#define TARGET_OPTION_INIT_STRUCT aarch64_option_init_struct |
||||||
|
+ |
||||||
|
/* Set default optimization options. */ |
||||||
|
static const struct default_options aarch_option_optimization_table[] = |
||||||
|
{ |
||||||
|
@@ -47,6 +50,16 @@ static const struct default_options aarch_option_optimization_table[] = |
||||||
|
{ OPT_LEVELS_NONE, 0, NULL, 0 } |
||||||
|
}; |
||||||
|
|
||||||
|
+/* Implement TARGET_OPTION_INIT_STRUCT. */ |
||||||
|
+ |
||||||
|
+static void |
||||||
|
+aarch64_option_init_struct (struct gcc_options *opts) |
||||||
|
+{ |
||||||
|
+ /* By default, always emit DWARF-2 unwind info. This allows debugging |
||||||
|
+ without maintaining a stack frame back-chain. */ |
||||||
|
+ opts->x_flag_asynchronous_unwind_tables = 1; |
||||||
|
+} |
||||||
|
+ |
||||||
|
/* Implement TARGET_HANDLE_OPTION. |
||||||
|
This function handles the target specific options for CPU/target selection. |
||||||
|
|
@ -0,0 +1,49 @@ |
|||||||
|
--- gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c.jj 2011-01-03 06:50:42.000000000 -0500 |
||||||
|
+++ gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c 2011-02-18 06:28:53.858200077 -0500 |
||||||
|
@@ -1501,6 +1501,8 @@ generate_random_tests (enum FEATURE feat |
||||||
|
int i, r; |
||||||
|
if (len > 'z' - 'a' + 1) |
||||||
|
abort (); |
||||||
|
+ if (getenv ("ALT_CXX_UNDER_TEST") != NULL) |
||||||
|
+ features &= ~FEATURE_VECTOR; |
||||||
|
memset (e, 0, sizeof (e)); |
||||||
|
r = generate_random (); |
||||||
|
if ((r & 7) == 0) |
||||||
|
--- gcc/testsuite/g++.dg/compat/compat.exp.jj 2011-01-03 06:50:42.000000000 -0500 |
||||||
|
+++ gcc/testsuite/g++.dg/compat/compat.exp 2011-02-18 06:30:54.248200398 -0500 |
||||||
|
@@ -116,7 +116,12 @@ if [info exists ALT_CXX_UNDER_TEST] then |
||||||
|
} |
||||||
|
|
||||||
|
# Main loop. |
||||||
|
-foreach src [lsort [find $srcdir/$subdir *_main.C]] { |
||||||
|
+set tests [lsort [find $srcdir/$subdir *_main.C]] |
||||||
|
+if { $use_alt != 0 } then { |
||||||
|
+ set tests [prune $tests $srcdir/$subdir/decimal/*] |
||||||
|
+} |
||||||
|
+ |
||||||
|
+foreach src $tests { |
||||||
|
# If we're only testing specific files and this isn't one of them, skip it. |
||||||
|
if ![runtest_file_p $runtests $src] then { |
||||||
|
continue |
||||||
|
--- gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c.jj 2011-01-03 06:49:58.000000000 -0500 |
||||||
|
+++ gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c 2011-02-18 06:27:54.922262671 -0500 |
||||||
|
@@ -1912,6 +1912,8 @@ generate_random_tests (enum FEATURE feat |
||||||
|
int i, r; |
||||||
|
if (len > 'z' - 'a' + 1) |
||||||
|
abort (); |
||||||
|
+ if (getenv ("ALT_CC_UNDER_TEST") != NULL) |
||||||
|
+ features &= ~FEATURE_VECTOR; |
||||||
|
memset (e, 0, sizeof (e)); |
||||||
|
r = generate_random (); |
||||||
|
if ((r & 7) == 0) |
||||||
|
--- gcc/testsuite/lib/c-compat.exp.jj 2011-01-03 06:48:38.000000000 -0500 |
||||||
|
+++ gcc/testsuite/lib/c-compat.exp 2011-02-18 06:38:19.124265008 -0500 |
||||||
|
@@ -75,7 +75,7 @@ proc compat_setup_dfp { } { |
||||||
|
# If there is an alternate compiler, does it support decimal float types? |
||||||
|
if { $compat_have_dfp == 1 && $compat_use_alt == 1 && $compat_same_alt == 0 } { |
||||||
|
compat-use-alt-compiler |
||||||
|
- set compat_have_dfp [check_effective_target_dfprt_nocache] |
||||||
|
+ set compat_have_dfp 0 |
||||||
|
compat-use-tst-compiler |
||||||
|
verbose "compat_have_dfp for alt compiler: $compat_have_dfp" 2 |
||||||
|
} |
@ -0,0 +1,117 @@ |
|||||||
|
2017-01-20 Jakub Jelinek <jakub@redhat.com> |
||||||
|
|
||||||
|
* gcc.c (offload_targets_default): New variable. |
||||||
|
(process_command): Set it if -foffload is defaulted. |
||||||
|
(driver::maybe_putenv_OFFLOAD_TARGETS): Add OFFLOAD_TARGET_DEFAULT=1 |
||||||
|
into environment if -foffload has been defaulted. |
||||||
|
* lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define. |
||||||
|
(compile_images_for_offload_targets): If OFFLOAD_TARGET_DEFAULT |
||||||
|
is in the environment, don't fail if corresponding mkoffload |
||||||
|
can't be found. Free and clear offload_names if no valid offload |
||||||
|
is found. |
||||||
|
libgomp/ |
||||||
|
* target.c (gomp_load_plugin_for_device): If a plugin can't be |
||||||
|
dlopened, assume it has no devices silently. |
||||||
|
|
||||||
|
--- gcc/gcc.c.jj 2017-01-17 10:28:40.000000000 +0100 |
||||||
|
+++ gcc/gcc.c 2017-01-20 16:26:29.649962902 +0100 |
||||||
|
@@ -290,6 +290,10 @@ static const char *spec_host_machine = D |
||||||
|
|
||||||
|
static char *offload_targets = NULL; |
||||||
|
|
||||||
|
+/* Set to true if -foffload has not been used and offload_targets |
||||||
|
+ is set to the configured in default. */ |
||||||
|
+static bool offload_targets_default; |
||||||
|
+ |
||||||
|
/* Nonzero if cross-compiling. |
||||||
|
When -b is used, the value comes from the `specs' file. */ |
||||||
|
|
||||||
|
@@ -4457,7 +4461,10 @@ process_command (unsigned int decoded_op |
||||||
|
/* If the user didn't specify any, default to all configured offload |
||||||
|
targets. */ |
||||||
|
if (ENABLE_OFFLOADING && offload_targets == NULL) |
||||||
|
- handle_foffload_option (OFFLOAD_TARGETS); |
||||||
|
+ { |
||||||
|
+ handle_foffload_option (OFFLOAD_TARGETS); |
||||||
|
+ offload_targets_default = true; |
||||||
|
+ } |
||||||
|
|
||||||
|
if (output_file |
||||||
|
&& strcmp (output_file, "-") != 0 |
||||||
|
@@ -7693,6 +7700,8 @@ driver::maybe_putenv_OFFLOAD_TARGETS () |
||||||
|
obstack_grow (&collect_obstack, offload_targets, |
||||||
|
strlen (offload_targets) + 1); |
||||||
|
xputenv (XOBFINISH (&collect_obstack, char *)); |
||||||
|
+ if (offload_targets_default) |
||||||
|
+ xputenv ("OFFLOAD_TARGET_DEFAULT=1"); |
||||||
|
} |
||||||
|
|
||||||
|
free (offload_targets); |
||||||
|
--- gcc/lto-wrapper.c.jj 2017-01-01 12:45:34.000000000 +0100 |
||||||
|
+++ gcc/lto-wrapper.c 2017-01-20 16:34:18.294016997 +0100 |
||||||
|
@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3. |
||||||
|
/* Environment variable, used for passing the names of offload targets from GCC |
||||||
|
driver to lto-wrapper. */ |
||||||
|
#define OFFLOAD_TARGET_NAMES_ENV "OFFLOAD_TARGET_NAMES" |
||||||
|
+#define OFFLOAD_TARGET_DEFAULT_ENV "OFFLOAD_TARGET_DEFAULT" |
||||||
|
|
||||||
|
enum lto_mode_d { |
||||||
|
LTO_MODE_NONE, /* Not doing LTO. */ |
||||||
|
@@ -790,8 +791,10 @@ compile_images_for_offload_targets (unsi |
||||||
|
if (!target_names) |
||||||
|
return; |
||||||
|
unsigned num_targets = parse_env_var (target_names, &names, NULL); |
||||||
|
+ const char *target_names_default = getenv (OFFLOAD_TARGET_DEFAULT_ENV); |
||||||
|
|
||||||
|
int next_name_entry = 0; |
||||||
|
+ bool hsa_seen = false; |
||||||
|
const char *compiler_path = getenv ("COMPILER_PATH"); |
||||||
|
if (!compiler_path) |
||||||
|
goto out; |
||||||
|
@@ -804,18 +807,32 @@ compile_images_for_offload_targets (unsi |
||||||
|
/* HSA does not use LTO-like streaming and a different compiler, skip |
||||||
|
it. */ |
||||||
|
if (strcmp (names[i], "hsa") == 0) |
||||||
|
- continue; |
||||||
|
+ { |
||||||
|
+ hsa_seen = true; |
||||||
|
+ continue; |
||||||
|
+ } |
||||||
|
|
||||||
|
offload_names[next_name_entry] |
||||||
|
= compile_offload_image (names[i], compiler_path, in_argc, in_argv, |
||||||
|
compiler_opts, compiler_opt_count, |
||||||
|
linker_opts, linker_opt_count); |
||||||
|
if (!offload_names[next_name_entry]) |
||||||
|
- fatal_error (input_location, |
||||||
|
- "problem with building target image for %s\n", names[i]); |
||||||
|
+ { |
||||||
|
+ if (target_names_default != NULL) |
||||||
|
+ continue; |
||||||
|
+ fatal_error (input_location, |
||||||
|
+ "problem with building target image for %s\n", |
||||||
|
+ names[i]); |
||||||
|
+ } |
||||||
|
next_name_entry++; |
||||||
|
} |
||||||
|
|
||||||
|
+ if (next_name_entry == 0 && !hsa_seen) |
||||||
|
+ { |
||||||
|
+ free (offload_names); |
||||||
|
+ offload_names = NULL; |
||||||
|
+ } |
||||||
|
+ |
||||||
|
out: |
||||||
|
free_array_of_ptrs ((void **) names, num_targets); |
||||||
|
} |
||||||
|
--- libgomp/target.c.jj 2017-01-01 12:45:52.000000000 +0100 |
||||||
|
+++ libgomp/target.c 2017-01-20 20:12:13.756710875 +0100 |
||||||
|
@@ -2356,7 +2356,7 @@ gomp_load_plugin_for_device (struct gomp |
||||||
|
|
||||||
|
void *plugin_handle = dlopen (plugin_name, RTLD_LAZY); |
||||||
|
if (!plugin_handle) |
||||||
|
- goto dl_fail; |
||||||
|
+ return 0; |
||||||
|
|
||||||
|
/* Check if all required functions are available in the plugin and store |
||||||
|
their handlers. None of the symbols can legitimately be NULL, |
@ -0,0 +1,135 @@ |
|||||||
|
--- libada/Makefile.in.jj 2009-01-14 12:07:35.000000000 +0100 |
||||||
|
+++ libada/Makefile.in 2009-01-15 14:25:33.000000000 +0100 |
||||||
|
@@ -66,18 +66,40 @@ libsubdir := $(libdir)/gcc/$(target_nonc |
||||||
|
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR)) |
||||||
|
ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR)) |
||||||
|
|
||||||
|
+DEFAULTMULTIFLAGS := |
||||||
|
+ifeq ($(MULTISUBDIR),) |
||||||
|
+targ:=$(subst -, ,$(target)) |
||||||
|
+arch:=$(word 1,$(targ)) |
||||||
|
+ifeq ($(words $(targ)),2) |
||||||
|
+osys:=$(word 2,$(targ)) |
||||||
|
+else |
||||||
|
+osys:=$(word 3,$(targ)) |
||||||
|
+endif |
||||||
|
+ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),) |
||||||
|
+ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64) |
||||||
|
+DEFAULTMULTIFLAGS := -m64 |
||||||
|
+else |
||||||
|
+ifeq ($(strip $(filter-out s390%, $(arch))),) |
||||||
|
+DEFAULTMULTIFLAGS := -m31 |
||||||
|
+else |
||||||
|
+DEFAULTMULTIFLAGS := -m32 |
||||||
|
+endif |
||||||
|
+endif |
||||||
|
+endif |
||||||
|
+endif |
||||||
|
+ |
||||||
|
# exeext should not be used because it's the *host* exeext. We're building |
||||||
|
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus |
||||||
|
# definitions just in case something slips through the safety net provided |
||||||
|
# by recursive make invocations in gcc/ada/Makefile.in |
||||||
|
LIBADA_FLAGS_TO_PASS = \ |
||||||
|
"MAKEOVERRIDES=" \ |
||||||
|
- "LDFLAGS=$(LDFLAGS)" \ |
||||||
|
+ "LDFLAGS=$(LDFLAGS) $(DEFAULTMULTIFLAGS)" \ |
||||||
|
"LN_S=$(LN_S)" \ |
||||||
|
"SHELL=$(SHELL)" \ |
||||||
|
- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \ |
||||||
|
- "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \ |
||||||
|
- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \ |
||||||
|
+ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \ |
||||||
|
+ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \ |
||||||
|
+ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \ |
||||||
|
"PICFLAG_FOR_TARGET=$(PICFLAG)" \ |
||||||
|
"THREAD_KIND=$(THREAD_KIND)" \ |
||||||
|
"TRACE=$(TRACE)" \ |
||||||
|
@@ -88,7 +110,7 @@ LIBADA_FLAGS_TO_PASS = \ |
||||||
|
"exeext=.exeext.should.not.be.used " \ |
||||||
|
'CC=the.host.compiler.should.not.be.needed' \ |
||||||
|
"GCC_FOR_TARGET=$(CC)" \ |
||||||
|
- "CFLAGS=$(CFLAGS)" |
||||||
|
+ "CFLAGS=$(CFLAGS) $(DEFAULTMULTIFLAGS)" |
||||||
|
|
||||||
|
# Rules to build gnatlib. |
||||||
|
.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool |
||||||
|
--- gcc/ada/sem_util.adb (revision 161677) |
||||||
|
+++ gcc/ada/sem_util.adb (working copy) |
||||||
|
@@ -5487,7 +5487,7 @@ package body Sem_Util is |
||||||
|
Exp : Node_Id; |
||||||
|
Assn : Node_Id; |
||||||
|
Choice : Node_Id; |
||||||
|
- Comp_Type : Entity_Id; |
||||||
|
+ Comp_Type : Entity_Id := Empty; |
||||||
|
Is_Array_Aggr : Boolean; |
||||||
|
|
||||||
|
begin |
||||||
|
--- config-ml.in.jj 2010-06-30 09:50:44.000000000 +0200 |
||||||
|
+++ config-ml.in 2010-07-02 21:24:17.994211151 +0200 |
||||||
|
@@ -511,6 +511,8 @@ multi-do: |
||||||
|
ADAFLAGS="$(ADAFLAGS) $${flags}" \ |
||||||
|
prefix="$(prefix)" \ |
||||||
|
exec_prefix="$(exec_prefix)" \ |
||||||
|
+ mandir="$(mandir)" \ |
||||||
|
+ infodir="$(infodir)" \ |
||||||
|
GOCFLAGS="$(GOCFLAGS) $${flags}" \ |
||||||
|
CXXFLAGS="$(CXXFLAGS) $${flags}" \ |
||||||
|
LIBCFLAGS="$(LIBCFLAGS) $${flags}" \ |
||||||
|
--- libcpp/macro.c.jj 2015-01-14 11:01:34.000000000 +0100 |
||||||
|
+++ libcpp/macro.c 2015-01-14 14:22:19.286949884 +0100 |
||||||
|
@@ -2947,8 +2947,6 @@ create_iso_definition (cpp_reader *pfile |
||||||
|
cpp_token *token; |
||||||
|
const cpp_token *ctoken; |
||||||
|
bool following_paste_op = false; |
||||||
|
- const char *paste_op_error_msg = |
||||||
|
- N_("'##' cannot appear at either end of a macro expansion"); |
||||||
|
unsigned int num_extra_tokens = 0; |
||||||
|
|
||||||
|
/* Get the first token of the expansion (or the '(' of a |
||||||
|
@@ -3059,7 +3057,8 @@ create_iso_definition (cpp_reader *pfile |
||||||
|
function-like macros, but not at the end. */ |
||||||
|
if (following_paste_op) |
||||||
|
{ |
||||||
|
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg); |
||||||
|
+ cpp_error (pfile, CPP_DL_ERROR, |
||||||
|
+ "'##' cannot appear at either end of a macro expansion"); |
||||||
|
return false; |
||||||
|
} |
||||||
|
break; |
||||||
|
@@ -3072,7 +3071,8 @@ create_iso_definition (cpp_reader *pfile |
||||||
|
function-like macros, but not at the beginning. */ |
||||||
|
if (macro->count == 1) |
||||||
|
{ |
||||||
|
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg); |
||||||
|
+ cpp_error (pfile, CPP_DL_ERROR, |
||||||
|
+ "'##' cannot appear at either end of a macro expansion"); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
--- libcpp/expr.c.jj 2015-01-14 11:01:34.000000000 +0100 |
||||||
|
+++ libcpp/expr.c 2015-01-14 14:35:52.851002344 +0100 |
||||||
|
@@ -672,16 +672,17 @@ cpp_classify_number (cpp_reader *pfile, |
||||||
|
if ((result & CPP_N_WIDTH) == CPP_N_LARGE |
||||||
|
&& CPP_OPTION (pfile, cpp_warn_long_long)) |
||||||
|
{ |
||||||
|
- const char *message = CPP_OPTION (pfile, cplusplus) |
||||||
|
- ? N_("use of C++11 long long integer constant") |
||||||
|
- : N_("use of C99 long long integer constant"); |
||||||
|
- |
||||||
|
if (CPP_OPTION (pfile, c99)) |
||||||
|
cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location, |
||||||
|
- 0, message); |
||||||
|
+ 0, CPP_OPTION (pfile, cplusplus) |
||||||
|
+ ? N_("use of C++11 long long integer constant") |
||||||
|
+ : N_("use of C99 long long integer constant")); |
||||||
|
else |
||||||
|
cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG, |
||||||
|
- virtual_location, 0, message); |
||||||
|
+ virtual_location, 0, |
||||||
|
+ CPP_OPTION (pfile, cplusplus) |
||||||
|
+ ? N_("use of C++11 long long integer constant") |
||||||
|
+ : N_("use of C99 long long integer constant")); |
||||||
|
} |
||||||
|
|
||||||
|
result |= CPP_N_INTEGER; |
@ -0,0 +1,55 @@ |
|||||||
|
--- libitm/config/x86/target.h.jj 2013-06-23 20:43:50.000000000 +0200 |
||||||
|
+++ libitm/config/x86/target.h 2013-08-13 17:14:57.540012109 +0200 |
||||||
|
@@ -64,7 +64,7 @@ cpu_relax (void) |
||||||
|
|
||||||
|
// Use Intel RTM if supported by the assembler. |
||||||
|
// See gtm_thread::begin_transaction for how these functions are used. |
||||||
|
-#ifdef HAVE_AS_RTM |
||||||
|
+#if 1 /* def HAVE_AS_RTM */ |
||||||
|
#define USE_HTM_FASTPATH |
||||||
|
#ifdef __x86_64__ |
||||||
|
// Use the custom fastpath in ITM_beginTransaction. |
||||||
|
@@ -97,7 +97,10 @@ htm_init () |
||||||
|
static inline uint32_t |
||||||
|
htm_begin () |
||||||
|
{ |
||||||
|
- return _xbegin(); |
||||||
|
+// return _xbegin(); |
||||||
|
+ uint32_t ret; |
||||||
|
+ __asm volatile ("movl $-1, %%eax; .byte 0xc7, 0xf8, 0, 0, 0, 0" : "=a" (ret) : : "memory"); |
||||||
|
+ return ret; |
||||||
|
} |
||||||
|
|
||||||
|
static inline bool |
||||||
|
@@ -109,7 +112,8 @@ htm_begin_success (uint32_t begin_ret) |
||||||
|
static inline void |
||||||
|
htm_commit () |
||||||
|
{ |
||||||
|
- _xend(); |
||||||
|
+// _xend(); |
||||||
|
+ __asm volatile (".byte 0x0f, 0x01, 0xd5" : : : "memory"); |
||||||
|
} |
||||||
|
|
||||||
|
static inline void |
||||||
|
@@ -117,7 +121,8 @@ htm_abort () |
||||||
|
{ |
||||||
|
// ??? According to a yet unpublished ABI rule, 0xff is reserved and |
||||||
|
// supposed to signal a busy lock. Source: andi.kleen@intel.com |
||||||
|
- _xabort(0xff); |
||||||
|
+// _xabort(0xff); |
||||||
|
+ __asm volatile (".byte 0xc6, 0xf8, 0xff" : : : "memory"); |
||||||
|
} |
||||||
|
|
||||||
|
static inline bool |
||||||
|
@@ -130,7 +135,10 @@ htm_abort_should_retry (uint32_t begin_r |
||||||
|
static inline bool |
||||||
|
htm_transaction_active () |
||||||
|
{ |
||||||
|
- return _xtest() != 0; |
||||||
|
+// return _xtest() != 0; |
||||||
|
+ bool ret; |
||||||
|
+ __asm volatile (".byte 0x0f, 0x01, 0xd6; setne %%al" : "=a" (ret) : : "memory"); |
||||||
|
+ return ret; |
||||||
|
} |
||||||
|
#endif |
||||||
|
|
@ -0,0 +1,11 @@ |
|||||||
|
--- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100 |
||||||
|
+++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100 |
||||||
|
@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then |
||||||
|
;; |
||||||
|
*) |
||||||
|
if test -z "$with_arch"; then |
||||||
|
- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}" |
||||||
|
+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic" |
||||||
|
fi |
||||||
|
esac |
||||||
|
;; |
@ -0,0 +1,17 @@ |
|||||||
|
2008-06-09 Jakub Jelinek <jakub@redhat.com> |
||||||
|
|
||||||
|
* omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs. |
||||||
|
|
||||||
|
--- libgomp/omp.h.in.jj 2008-06-09 13:34:05.000000000 +0200 |
||||||
|
+++ libgomp/omp.h.in 2008-06-09 13:34:48.000000000 +0200 |
||||||
|
@@ -42,8 +42,8 @@ typedef struct |
||||||
|
|
||||||
|
typedef struct |
||||||
|
{ |
||||||
|
- unsigned char _x[@OMP_NEST_LOCK_SIZE@] |
||||||
|
- __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@))); |
||||||
|
+ unsigned char _x[8 + sizeof (void *)] |
||||||
|
+ __attribute__((__aligned__(sizeof (void *)))); |
||||||
|
} omp_nest_lock_t; |
||||||
|
#endif |
||||||
|
|
@ -0,0 +1,24 @@ |
|||||||
|
--- libstdc++-v3/doc/html/index.html.jj 2011-01-03 12:53:21.282829010 +0100 |
||||||
|
+++ libstdc++-v3/doc/html/index.html 2011-01-04 18:06:28.999851145 +0100 |
||||||
|
@@ -5,6 +5,8 @@ |
||||||
|
<a class="link" href="http://www.fsf.org/" target="_top">FSF |
||||||
|
</a> |
||||||
|
</p><p> |
||||||
|
+ Release 7.2.1 |
||||||
|
+ </p><p> |
||||||
|
Permission is granted to copy, distribute and/or modify this |
||||||
|
document under the terms of the GNU Free Documentation |
||||||
|
License, Version 1.2 or any later version published by the |
||||||
|
--- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100 |
||||||
|
+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100 |
||||||
|
@@ -20,7 +20,9 @@ |
||||||
|
member functions for the library classes, finding out what is in a |
||||||
|
particular include file, looking at inheritance diagrams, etc. |
||||||
|
</p><p> |
||||||
|
- The API documentation, rendered into HTML, can be viewed online |
||||||
|
+ The API documentation, rendered into HTML, can be viewed locally |
||||||
|
+ <a class="link" href="api/index.html" target="_top">for the 7.2.1 release</a>, |
||||||
|
+ online |
||||||
|
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a> |
||||||
|
and |
||||||
|
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top"> |
@ -0,0 +1,27 @@ |
|||||||
|
libtool sucks. |
||||||
|
--- ltmain.sh.jj 2007-12-07 14:53:21.000000000 +0100 |
||||||
|
+++ ltmain.sh 2008-09-05 21:51:48.000000000 +0200 |
||||||
|
@@ -5394,6 +5394,7 @@ EOF |
||||||
|
rpath="$finalize_rpath" |
||||||
|
test "$mode" != relink && rpath="$compile_rpath$rpath" |
||||||
|
for libdir in $rpath; do |
||||||
|
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac |
||||||
|
if test -n "$hardcode_libdir_flag_spec"; then |
||||||
|
if test -n "$hardcode_libdir_separator"; then |
||||||
|
if test -z "$hardcode_libdirs"; then |
||||||
|
@@ -6071,6 +6072,7 @@ EOF |
||||||
|
rpath= |
||||||
|
hardcode_libdirs= |
||||||
|
for libdir in $compile_rpath $finalize_rpath; do |
||||||
|
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac |
||||||
|
if test -n "$hardcode_libdir_flag_spec"; then |
||||||
|
if test -n "$hardcode_libdir_separator"; then |
||||||
|
if test -z "$hardcode_libdirs"; then |
||||||
|
@@ -6120,6 +6122,7 @@ EOF |
||||||
|
rpath= |
||||||
|
hardcode_libdirs= |
||||||
|
for libdir in $finalize_rpath; do |
||||||
|
+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac |
||||||
|
if test -n "$hardcode_libdir_flag_spec"; then |
||||||
|
if test -n "$hardcode_libdir_separator"; then |
||||||
|
if test -z "$hardcode_libdirs"; then |
@ -0,0 +1,50 @@ |
|||||||
|
2010-02-08 Roland McGrath <roland@redhat.com> |
||||||
|
|
||||||
|
* config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the |
||||||
|
linker. |
||||||
|
* config/gnu-user.h (LINK_EH_SPEC): Likewise. |
||||||
|
* config/alpha/elf.h (LINK_EH_SPEC): Likewise. |
||||||
|
* config/ia64/linux.h (LINK_EH_SPEC): Likewise. |
||||||
|
|
||||||
|
--- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100 |
||||||
|
+++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100 |
||||||
|
@@ -165,5 +165,5 @@ extern int alpha_this_gpdisp_sequence_nu |
||||||
|
I imagine that other systems will catch up. In the meantime, it |
||||||
|
doesn't harm to make sure that the data exists to be used later. */ |
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR) |
||||||
|
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " |
||||||
|
+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} " |
||||||
|
#endif |
||||||
|
--- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100 |
||||||
|
+++ gcc/config/ia64/linux.h 2011-01-04 18:14:10.931874160 +0100 |
||||||
|
@@ -76,7 +76,7 @@ do { \ |
||||||
|
Signalize that because we have fde-glibc, we don't need all C shared libs |
||||||
|
linked against -lgcc_s. */ |
||||||
|
#undef LINK_EH_SPEC |
||||||
|
-#define LINK_EH_SPEC "" |
||||||
|
+#define LINK_EH_SPEC "--no-add-needed " |
||||||
|
|
||||||
|
#undef TARGET_INIT_LIBFUNCS |
||||||
|
#define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs |
||||||
|
--- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100 |
||||||
|
+++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100 |
||||||
|
@@ -82,7 +82,7 @@ see the files COPYING3 and COPYING.RUNTI |
||||||
|
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC |
||||||
|
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR) |
||||||
|
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " |
||||||
|
+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} " |
||||||
|
#endif |
||||||
|
|
||||||
|
#undef LINK_GCC_C_SEQUENCE_SPEC |
||||||
|
--- gcc/config/rs6000/sysv4.h.jj 2011-01-03 13:02:18.255994215 +0100 |
||||||
|
+++ gcc/config/rs6000/sysv4.h 2011-01-04 18:14:10.933888871 +0100 |
||||||
|
@@ -820,7 +820,7 @@ extern int fixuplabelno; |
||||||
|
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" |
||||||
|
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR) |
||||||
|
-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " |
||||||
|
+# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} " |
||||||
|
#endif |
||||||
|
|
||||||
|
#define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \ |
@ -0,0 +1,87 @@ |
|||||||
|
2005-11-28 Jakub Jelinek <jakub@redhat.com> |
||||||
|
|
||||||
|
* config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0, |
||||||
|
read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx |
||||||
|
instead of doing an extran indirection from frame_pointer_rtx. |
||||||
|
|
||||||
|
* gcc.dg/20051128-1.c: New test. |
||||||
|
|
||||||
|
--- gcc/config/rs6000/rs6000.c.jj 2005-11-26 14:38:01.000000000 +0100 |
||||||
|
+++ gcc/config/rs6000/rs6000.c 2005-11-28 20:32:18.000000000 +0100 |
||||||
|
@@ -20970,18 +20970,22 @@ rs6000_return_addr (int count, rtx frame |
||||||
|
if (count != 0 |
||||||
|
|| ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && flag_pic)) |
||||||
|
{ |
||||||
|
+ rtx x; |
||||||
|
cfun->machine->ra_needs_full_frame = 1; |
||||||
|
|
||||||
|
- return |
||||||
|
- gen_rtx_MEM |
||||||
|
- (Pmode, |
||||||
|
- memory_address |
||||||
|
- (Pmode, |
||||||
|
- plus_constant (Pmode, |
||||||
|
- copy_to_reg |
||||||
|
- (gen_rtx_MEM (Pmode, |
||||||
|
- memory_address (Pmode, frame))), |
||||||
|
- RETURN_ADDRESS_OFFSET))); |
||||||
|
+ if (count == 0) |
||||||
|
+ { |
||||||
|
+ gcc_assert (frame == frame_pointer_rtx); |
||||||
|
+ x = arg_pointer_rtx; |
||||||
|
+ } |
||||||
|
+ else |
||||||
|
+ { |
||||||
|
+ x = memory_address (Pmode, frame); |
||||||
|
+ x = copy_to_reg (gen_rtx_MEM (Pmode, x)); |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ x = plus_constant (Pmode, x, RETURN_ADDRESS_OFFSET); |
||||||
|
+ return gen_rtx_MEM (Pmode, memory_address (Pmode, x)); |
||||||
|
} |
||||||
|
|
||||||
|
cfun->machine->ra_need_lr = 1; |
||||||
|
--- gcc/testsuite/gcc.dg/20051128-1.c.jj 2005-10-10 11:21:41.096999000 +0200 |
||||||
|
+++ gcc/testsuite/gcc.dg/20051128-1.c 2005-11-28 12:30:57.000000000 +0100 |
||||||
|
@@ -0,0 +1,41 @@ |
||||||
|
+/* { dg-do run } */ |
||||||
|
+/* { dg-options "-O2 -fpic" } */ |
||||||
|
+ |
||||||
|
+extern void exit (int); |
||||||
|
+extern void abort (void); |
||||||
|
+ |
||||||
|
+int b; |
||||||
|
+ |
||||||
|
+struct A |
||||||
|
+{ |
||||||
|
+ void *pad[147]; |
||||||
|
+ void *ra, *h; |
||||||
|
+ long o; |
||||||
|
+}; |
||||||
|
+ |
||||||
|
+void |
||||||
|
+__attribute__((noinline)) |
||||||
|
+foo (struct A *a, void *x) |
||||||
|
+{ |
||||||
|
+ __builtin_memset (a, 0, sizeof (a)); |
||||||
|
+ if (!b) |
||||||
|
+ exit (0); |
||||||
|
+} |
||||||
|
+ |
||||||
|
+void |
||||||
|
+__attribute__((noinline)) |
||||||
|
+bar (void) |
||||||
|
+{ |
||||||
|
+ struct A a; |
||||||
|
+ |
||||||
|
+ __builtin_unwind_init (); |
||||||
|
+ foo (&a, __builtin_return_address (0)); |
||||||
|
+} |
||||||
|
+ |
||||||
|
+int |
||||||
|
+main (void) |
||||||
|
+{ |
||||||
|
+ bar (); |
||||||
|
+ abort (); |
||||||
|
+ return 0; |
||||||
|
+} |
@ -0,0 +1,20 @@ |
|||||||
|
2014-07-23 Jonathan Wakely <jwakely@redhat.com> |
||||||
|
|
||||||
|
* testsuite/30_threads/condition_variable_any/rh1118870.cc: New test. |
||||||
|
|
||||||
|
--- libstdc++-v3/testsuite/30_threads/condition_variable_any/rh1118870.cc |
||||||
|
+++ libstdc++-v3/testsuite/30_threads/condition_variable_any/rh1118870.cc |
||||||
|
@@ -0,0 +1,13 @@ |
||||||
|
+// { dg-options " -std=gnu++11 -pthread" } |
||||||
|
+#include <condition_variable> |
||||||
|
+#include <cstring> |
||||||
|
+ |
||||||
|
+int main() |
||||||
|
+{ |
||||||
|
+ const size_t sz = sizeof(std::condition_variable_any); |
||||||
|
+ char garbage[sz]; |
||||||
|
+ memset(garbage, 0xff, sz); |
||||||
|
+ auto cond = new ((void*)garbage) std::condition_variable_any(); |
||||||
|
+ cond->notify_all(); |
||||||
|
+ cond->~condition_variable_any(); |
||||||
|
+} |
@ -0,0 +1,40 @@ |
|||||||
|
--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500 |
||||||
|
+++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500 |
||||||
|
@@ -2790,7 +2790,7 @@ sparc-*-rtems*) |
||||||
|
tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h" |
||||||
|
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems" |
||||||
|
;; |
||||||
|
-sparc-*-linux*) |
||||||
|
+sparc-*-linux* | sparcv9-*-linux*) |
||||||
|
tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h" |
||||||
|
extra_options="${extra_options} sparc/long-double-switch.opt" |
||||||
|
case ${target} in |
||||||
|
@@ -2844,7 +2844,7 @@ sparc64-*-rtems*) |
||||||
|
extra_options="${extra_options}" |
||||||
|
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64" |
||||||
|
;; |
||||||
|
-sparc64-*-linux*) |
||||||
|
+sparc64*-*-linux*) |
||||||
|
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h" |
||||||
|
extra_options="${extra_options} sparc/long-double-switch.opt" |
||||||
|
tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64" |
||||||
|
--- libgcc/config.host.jj 2008-04-24 15:46:19.000000000 -0500 |
||||||
|
+++ libgcc/config.host 2008-04-24 15:46:49.000000000 -0500 |
||||||
|
@@ -1002,7 +1002,7 @@ sparc-*-elf*) |
||||||
|
tmake_file="${tmake_file} t-fdpbit t-crtfm" |
||||||
|
extra_parts="$extra_parts crti.o crtn.o crtfastmath.o" |
||||||
|
;; |
||||||
|
-sparc-*-linux*) # SPARC's running GNU/Linux, libc6 |
||||||
|
+sparc-*-linux* | sparcv9-*-linux*) # SPARC's running GNU/Linux, libc6 |
||||||
|
tmake_file="${tmake_file} t-crtfm" |
||||||
|
if test "${host_address}" = 64; then |
||||||
|
tmake_file="$tmake_file sparc/t-linux64" |
||||||
|
@@ -1050,7 +1050,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd* |
||||||
|
tmake_file="$tmake_file t-crtfm" |
||||||
|
extra_parts="$extra_parts crtfastmath.o" |
||||||
|
;; |
||||||
|
-sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux |
||||||
|
+sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux |
||||||
|
extra_parts="$extra_parts crtfastmath.o" |
||||||
|
tmake_file="${tmake_file} t-crtfm sparc/t-linux" |
||||||
|
if test "${host_address}" = 64; then |
@ -0,0 +1,756 @@ |
|||||||
|
%global DATE 20170829 |
||||||
|
%global SVNREV 251415 |
||||||
|
%global gcc_version 7.2.1 |
||||||
|
%global gcc_major 7 |
||||||
|
# Note, gcc_release must be integer, if you want to add suffixes to |
||||||
|
# %{release}, append them after %{gcc_release} on Release: line. |
||||||
|
%global gcc_release 1 |
||||||
|
%global mpc_version 0.8.1 |
||||||
|
%global _unpackaged_files_terminate_build 0 |
||||||
|
%global multilib_64_archs sparc64 ppc64 s390x x86_64 |
||||||
|
%ifarch s390x |
||||||
|
%global multilib_32_arch s390 |
||||||
|
%endif |
||||||
|
%ifarch sparc64 |
||||||
|
%global multilib_32_arch sparcv9 |
||||||
|
%endif |
||||||
|
%ifarch ppc64 |
||||||
|
%global multilib_32_arch ppc |
||||||
|
%endif |
||||||
|
%ifarch x86_64 |
||||||
|
%global multilib_32_arch i686 |
||||||
|
%endif |
||||||
|
%ifarch %{ix86} x86_64 ia64 |
||||||
|
%global build_libquadmath 1 |
||||||
|
%else |
||||||
|
%global build_libquadmath 0 |
||||||
|
%endif |
||||||
|
%ifarch %{ix86} x86_64 |
||||||
|
%global build_libcilkrts 1 |
||||||
|
%else |
||||||
|
%global build_libcilkrts 0 |
||||||
|
%endif |
||||||
|
%ifarch aarch64 |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
%global build_libatomic 1 |
||||||
|
%else |
||||||
|
%global build_libatomic 0 |
||||||
|
%endif |
||||||
|
%endif |
||||||
|
%ifnarch aarch64 |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
%global build_libatomic 0 |
||||||
|
%else |
||||||
|
%global build_libatomic 1 |
||||||
|
%endif |
||||||
|
%endif |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
%global build_libitm 0 |
||||||
|
%else |
||||||
|
%global build_libitm 1 |
||||||
|
%endif |
||||||
|
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} |
||||||
|
%global attr_ifunc 1 |
||||||
|
%else |
||||||
|
%global attr_ifunc 0 |
||||||
|
%endif |
||||||
|
Summary: GCC runtime libraries |
||||||
|
Name: gcc-libraries |
||||||
|
Provides: libatomic libitm libcilkrts libgfortran4 |
||||||
|
Obsoletes: libitm |
||||||
|
|
||||||
|
Version: %{gcc_version} |
||||||
|
Release: %{gcc_release}.1.1%{?dist} |
||||||
|
# libgcc, libgfortran, libmudflap, libgomp, libstdc++ and crtstuff have |
||||||
|
# GCC Runtime Exception. |
||||||
|
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD |
||||||
|
Group: System Environment/Libraries |
||||||
|
# The source for this package was pulled from upstream's vcs. Use the |
||||||
|
# following commands to generate the tarball: |
||||||
|
# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-7-branch@%{SVNREV} gcc-%{version}-%{DATE} |
||||||
|
# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2 |
||||||
|
Source0: gcc-%{version}-%{DATE}.tar.bz2 |
||||||
|
Source1: http://www.multiprecision.org/mpc/download/mpc-%{mpc_version}.tar.gz |
||||||
|
URL: http://gcc.gnu.org |
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) |
||||||
|
# Need binutils with -pie support >= 2.14.90.0.4-4 |
||||||
|
# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4 |
||||||
|
# Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2 |
||||||
|
# Need binutils which support .weakref >= 2.16.91.0.3-1 |
||||||
|
# Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7 |
||||||
|
# Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8 |
||||||
|
# Need binutils which support --build-id >= 2.17.50.0.17-3 |
||||||
|
# Need binutils which support %gnu_unique_object >= 2.19.51.0.14 |
||||||
|
# Need binutils which support .cfi_sections >= 2.19.51.0.14-33 |
||||||
|
# Need binutils which support --no-add-needed >= 2.20.51.0.2-12 |
||||||
|
# Need binutils which support -plugin |
||||||
|
BuildRequires: binutils >= 2.24 |
||||||
|
# While gcc doesn't include statically linked binaries, during testing |
||||||
|
# -static is used several times. |
||||||
|
BuildRequires: glibc-static |
||||||
|
BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils |
||||||
|
BuildRequires: /usr/bin/pod2man |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
BuildRequires: texinfo-tex |
||||||
|
%endif |
||||||
|
# For VTA guality testing |
||||||
|
BuildRequires: gdb |
||||||
|
# Make sure pthread.h doesn't contain __thread tokens |
||||||
|
# Make sure glibc supports stack protector |
||||||
|
# Make sure glibc supports DT_GNU_HASH |
||||||
|
BuildRequires: glibc-devel >= 2.4.90-13 |
||||||
|
BuildRequires: elfutils-devel >= 0.147 |
||||||
|
BuildRequires: elfutils-libelf-devel >= 0.147 |
||||||
|
%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha |
||||||
|
# Make sure glibc supports TFmode long double |
||||||
|
BuildRequires: glibc >= 2.3.90-35 |
||||||
|
%endif |
||||||
|
%ifarch %{multilib_64_archs} sparcv9 ppc |
||||||
|
# Ensure glibc{,-devel} is installed for both multilib arches |
||||||
|
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so |
||||||
|
%endif |
||||||
|
%ifarch ia64 |
||||||
|
BuildRequires: libunwind >= 0.98 |
||||||
|
%endif |
||||||
|
# Need .eh_frame ld optimizations |
||||||
|
# Need proper visibility support |
||||||
|
# Need -pie support |
||||||
|
# Need --as-needed/--no-as-needed support |
||||||
|
# On ppc64, need omit dot symbols support and --non-overlapping-opd |
||||||
|
# Need binutils that owns /usr/bin/c++filt |
||||||
|
# Need binutils that support .weakref |
||||||
|
# Need binutils that supports --hash-style=gnu |
||||||
|
# Need binutils that support mffgpr/mftgpr |
||||||
|
# Need binutils that support --build-id |
||||||
|
# Need binutils that support %gnu_unique_object |
||||||
|
# Need binutils that support .cfi_sections |
||||||
|
# Need binutils that support --no-add-needed |
||||||
|
# Need binutils that support -plugin |
||||||
|
Requires: binutils >= 2.24 |
||||||
|
# Make sure gdb will understand DW_FORM_strp |
||||||
|
Conflicts: gdb < 5.1-2 |
||||||
|
Requires: glibc-devel >= 2.2.90-12 |
||||||
|
%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha |
||||||
|
# Make sure glibc supports TFmode long double |
||||||
|
Requires: glibc >= 2.3.90-35 |
||||||
|
%endif |
||||||
|
Requires: libgcc >= 4.1.2-43 |
||||||
|
Requires: libgomp >= 4.4.4-13 |
||||||
|
BuildRequires: gmp-devel >= 4.1.2-8 |
||||||
|
BuildRequires: mpfr-devel >= 2.2.1 |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
BuildRequires: libmpc-devel >= 0.8.1 |
||||||
|
%endif |
||||||
|
Requires(post): /sbin/install-info |
||||||
|
Requires(preun): /sbin/install-info |
||||||
|
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390 s390x aarch64 |
||||||
|
|
||||||
|
%global oformat %{nil} |
||||||
|
%global oformat2 %{nil} |
||||||
|
%ifarch %{ix86} |
||||||
|
%global oformat OUTPUT_FORMAT(elf32-i386) |
||||||
|
%endif |
||||||
|
%ifarch x86_64 |
||||||
|
%global oformat OUTPUT_FORMAT(elf64-x86-64) |
||||||
|
%global oformat2 OUTPUT_FORMAT(elf32-i386) |
||||||
|
%endif |
||||||
|
%ifarch ppc |
||||||
|
%global oformat OUTPUT_FORMAT(elf32-powerpc) |
||||||
|
%global oformat2 OUTPUT_FORMAT(elf64-powerpc) |
||||||
|
%endif |
||||||
|
%ifarch ppc64 |
||||||
|
%global oformat OUTPUT_FORMAT(elf64-powerpc) |
||||||
|
%global oformat2 OUTPUT_FORMAT(elf32-powerpc) |
||||||
|
%endif |
||||||
|
%ifarch s390 |
||||||
|
%global oformat OUTPUT_FORMAT(elf32-s390) |
||||||
|
%endif |
||||||
|
%ifarch s390x |
||||||
|
%global oformat OUTPUT_FORMAT(elf64-s390) |
||||||
|
%global oformat2 OUTPUT_FORMAT(elf32-s390) |
||||||
|
%endif |
||||||
|
%ifarch ia64 |
||||||
|
%global oformat OUTPUT_FORMAT(elf64-ia64-little) |
||||||
|
%endif |
||||||
|
%ifarch ppc64le |
||||||
|
%global oformat OUTPUT_FORMAT(elf64-powerpcle) |
||||||
|
%endif |
||||||
|
|
||||||
|
Patch0: gcc7-hack.patch |
||||||
|
Patch1: gcc7-ppc32-retaddr.patch |
||||||
|
Patch2: gcc7-i386-libgomp.patch |
||||||
|
Patch3: gcc7-sparc-config-detection.patch |
||||||
|
Patch4: gcc7-libgomp-omp_h-multilib.patch |
||||||
|
Patch5: gcc7-libtool-no-rpath.patch |
||||||
|
Patch6: gcc7-isl-dl.patch |
||||||
|
Patch7: gcc7-libstdc++-docs.patch |
||||||
|
Patch8: gcc7-no-add-needed.patch |
||||||
|
Patch9: gcc7-aarch64-async-unw-tables.patch |
||||||
|
Patch10: gcc7-foffload-default.patch |
||||||
|
Patch11: gcc7-Wno-format-security.patch |
||||||
|
|
||||||
|
Patch1002: gcc7-alt-compat-test.patch |
||||||
|
Patch1005: gcc7-rh1118870.patch |
||||||
|
Patch1100: gcc7-htm-in-asm.patch |
||||||
|
|
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
%global nonsharedver 48 |
||||||
|
%else |
||||||
|
%global nonsharedver 44 |
||||||
|
%endif |
||||||
|
|
||||||
|
%global _gnu %{nil} |
||||||
|
%ifarch sparcv9 |
||||||
|
%global gcc_target_platform sparc64-%{_vendor}-%{_target_os}%{?_gnu} |
||||||
|
%endif |
||||||
|
%ifarch ppc |
||||||
|
%global gcc_target_platform ppc64-%{_vendor}-%{_target_os}%{?_gnu} |
||||||
|
%endif |
||||||
|
%ifnarch sparcv9 ppc |
||||||
|
%global gcc_target_platform %{_target_platform} |
||||||
|
%endif |
||||||
|
|
||||||
|
%description |
||||||
|
This package contains various GCC runtime libraries, such as libatomic, |
||||||
|
or libitm. |
||||||
|
|
||||||
|
%package -n libitm |
||||||
|
Summary: The GNU Transactional Memory library |
||||||
|
Group: System Environment/Libraries |
||||||
|
Requires(post): /sbin/install-info |
||||||
|
Requires(preun): /sbin/install-info |
||||||
|
|
||||||
|
%description -n libitm |
||||||
|
This package contains the GNU Transactional Memory library |
||||||
|
which is a GCC transactional memory support runtime library. |
||||||
|
|
||||||
|
%package -n libatomic |
||||||
|
Summary: The GNU Atomic library |
||||||
|
Group: System Environment/Libraries |
||||||
|
Requires(post): /sbin/install-info |
||||||
|
Requires(preun): /sbin/install-info |
||||||
|
|
||||||
|
%description -n libatomic |
||||||
|
This package contains the GNU Atomic library |
||||||
|
which is a GCC support runtime library for atomic operations not supported |
||||||
|
by hardware. |
||||||
|
|
||||||
|
%package -n libcilkrts |
||||||
|
Summary: The Cilk+ runtime library |
||||||
|
Group: System Environment/Libraries |
||||||
|
Requires(post): /sbin/install-info |
||||||
|
Requires(preun): /sbin/install-info |
||||||
|
|
||||||
|
%description -n libcilkrts |
||||||
|
This package contains the Cilk+ runtime library. |
||||||
|
|
||||||
|
%package -n libmpx |
||||||
|
Summary: The Memory Protection Extensions runtime libraries |
||||||
|
Group: System Environment/Libraries |
||||||
|
Requires(post): /sbin/install-info |
||||||
|
Requires(preun): /sbin/install-info |
||||||
|
|
||||||
|
%description -n libmpx |
||||||
|
This package contains the Memory Protection Extensions runtime libraries |
||||||
|
which is used for -fcheck-pointer-bounds -mmpx instrumented programs. |
||||||
|
|
||||||
|
%package -n libgfortran4 |
||||||
|
Summary: Fortran runtime |
||||||
|
Group: System Environment/Libraries |
||||||
|
Autoreq: true |
||||||
|
%if %{build_libquadmath} |
||||||
|
Requires: libquadmath |
||||||
|
%endif |
||||||
|
%if "%{version}" != "%{gcc_version}" |
||||||
|
Provides: libgfortran = %{gcc_provides} |
||||||
|
%endif |
||||||
|
|
||||||
|
%description -n libgfortran4 |
||||||
|
This package contains Fortran shared library which is needed to run |
||||||
|
Fortran dynamically linked programs. |
||||||
|
|
||||||
|
%prep |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
%setup -q -n gcc-%{version}-%{DATE} |
||||||
|
%else |
||||||
|
%setup -q -n gcc-%{version}-%{DATE} -a 1 |
||||||
|
%endif |
||||||
|
%patch0 -p0 -b .hack~ |
||||||
|
%patch1 -p0 -b .ppc32-retaddr~ |
||||||
|
%patch2 -p0 -b .i386-libgomp~ |
||||||
|
%patch3 -p0 -b .sparc-config-detection~ |
||||||
|
%patch4 -p0 -b .libgomp-omp_h-multilib~ |
||||||
|
%patch5 -p0 -b .libtool-no-rpath~ |
||||||
|
%patch8 -p0 -b .no-add-needed~ |
||||||
|
%patch9 -p0 -b .aarch64-async-unw-tables~ |
||||||
|
%patch10 -p0 -b .foffload-default~ |
||||||
|
%patch11 -p0 -b .Wno-format-security~ |
||||||
|
|
||||||
|
sed -i -e 's/ -Wl,-z,nodlopen//g' gcc/ada/gcc-interface/Makefile.in |
||||||
|
|
||||||
|
%ifarch %{ix86} x86_64 |
||||||
|
%if 0%{?rhel} < 7 |
||||||
|
# On i?86/x86_64 there are some incompatibilities in _Decimal* as well as |
||||||
|
# aggregates containing larger vector passing. |
||||||
|
%patch1002 -p0 -b .alt-compat-test~ |
||||||
|
%endif |
||||||
|
%endif |
||||||
|
|
||||||
|
%patch1005 -p0 -b .rh1118870~ |
||||||
|
%patch1100 -p0 -b .gcc6-htm-in-asm~ |
||||||
|
|
||||||
|
%if 0%{?rhel} == 6 |
||||||
|
# Default to -gdwarf-3 rather than -gdwarf-4 |
||||||
|
sed -i '/UInteger Var(dwarf_version)/s/Init(4)/Init(3)/' gcc/common.opt |
||||||
|
sed -i 's/\(may be either 2, 3 or 4; the default version is \)4\./\13./' gcc/doc/invoke.texi |
||||||
|
%endif |
||||||
|
|
||||||
|
cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h |
||||||
|
cp -a libstdc++-v3/config/cpu/i{4,3}86/opt |
||||||
|
|
||||||
|
./contrib/gcc_update --touch |
||||||
|
|
||||||
|
LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi |
||||||
|
|
||||||
|
sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt |
||||||
|
|
||||||
|
%ifarch ppc |
||||||
|
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then |
||||||
|
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64 |
||||||
|
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{,64/}baseline_symbols.txt |
||||||
|
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{32/,}baseline_symbols.txt |
||||||
|
rm -rf libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32 |
||||||
|
fi |
||||||
|
%endif |
||||||
|
%build |
||||||
|
|
||||||
|
# Undo the broken autoconf change in recent Fedora versions |
||||||
|
export CONFIG_SITE=NONE |
||||||
|
|
||||||
|
rm -fr obj-%{gcc_target_platform} |
||||||
|
mkdir obj-%{gcc_target_platform} |
||||||
|
cd obj-%{gcc_target_platform} |
||||||
|
|
||||||
|
|
||||||
|
%if 0%{?rhel} < 7 |
||||||
|
mkdir mpc mpc-install |
||||||
|
cd mpc |
||||||
|
../../mpc-%{mpc_version}/configure --disable-shared \ |
||||||
|
CFLAGS="${CFLAGS:-%optflags} -fPIC" CXXFLAGS="${CXXFLAGS:-%optflags} -fPIC" \ |
||||||
|
--prefix=`cd ..; pwd`/mpc-install |
||||||
|
make %{?_smp_mflags} |
||||||
|
make install |
||||||
|
cd .. |
||||||
|
%endif |
||||||
|
|
||||||
|
CC=gcc |
||||||
|
CXX=g++ |
||||||
|
OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'` |
||||||
|
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` |
||||||
|
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'` |
||||||
|
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'` |
||||||
|
%ifarch sparc |
||||||
|
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'` |
||||||
|
%endif |
||||||
|
%ifarch %{ix86} |
||||||
|
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'` |
||||||
|
%endif |
||||||
|
%ifarch sparc64 |
||||||
|
cat > gcc64 <<"EOF" |
||||||
|
#!/bin/sh |
||||||
|
exec /usr/bin/gcc -m64 "$@" |
||||||
|
EOF |
||||||
|
chmod +x gcc64 |
||||||
|
CC=`pwd`/gcc64 |
||||||
|
cat > g++64 <<"EOF" |
||||||
|
#!/bin/sh |
||||||
|
exec /usr/bin/g++ -m64 "$@" |
||||||
|
EOF |
||||||
|
chmod +x g++64 |
||||||
|
CXX=`pwd`/g++64 |
||||||
|
%endif |
||||||
|
%ifarch ppc64 ppc64le ppc64p7 |
||||||
|
if gcc -m64 -xc -S /dev/null -o - > /dev/null 2>&1; then |
||||||
|
cat > gcc64 <<"EOF" |
||||||
|
#!/bin/sh |
||||||
|
exec /usr/bin/gcc -m64 "$@" |
||||||
|
EOF |
||||||
|
chmod +x gcc64 |
||||||
|
CC=`pwd`/gcc64 |
||||||
|
cat > g++64 <<"EOF" |
||||||
|
#!/bin/sh |
||||||
|
exec /usr/bin/g++ -m64 "$@" |
||||||
|
EOF |
||||||
|
chmod +x g++64 |
||||||
|
CXX=`pwd`/g++64 |
||||||
|
fi |
||||||
|
%endif |
||||||
|
OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'` |
||||||
|
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ |
||||||
|
CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g'`" \ |
||||||
|
XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ |
||||||
|
GCJFLAGS="$OPT_FLAGS" \ |
||||||
|
../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ |
||||||
|
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap \ |
||||||
|
--enable-shared --enable-threads=posix --enable-checking=release \ |
||||||
|
--enable-multilib --disable-libsanitizer \ |
||||||
|
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \ |
||||||
|
--enable-gnu-unique-object \ |
||||||
|
--enable-linker-build-id \ |
||||||
|
--enable-languages=c,c++,lto,fortran \ |
||||||
|
--enable-plugin --with-linker-hash-style=gnu \ |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
--enable-initfini-array \ |
||||||
|
%else |
||||||
|
--disable-initfini-array \ |
||||||
|
%endif |
||||||
|
--disable-libgcj \ |
||||||
|
--without-ppl --without-cloog \ |
||||||
|
%if 0%{?rhel} < 7 |
||||||
|
--with-mpc=`pwd`/mpc-install \ |
||||||
|
%endif |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
%if %{attr_ifunc} |
||||||
|
--enable-gnu-indirect-function \ |
||||||
|
%endif |
||||||
|
%endif |
||||||
|
%ifarch %{arm} |
||||||
|
--disable-sjlj-exceptions \ |
||||||
|
%endif |
||||||
|
%ifarch ppc ppc64 ppc64le ppc64p7 |
||||||
|
--enable-secureplt \ |
||||||
|
%endif |
||||||
|
%ifarch sparc sparcv9 sparc64 ppc ppc64 ppc64le ppc64p7 s390 s390x alpha |
||||||
|
--with-long-double-128 \ |
||||||
|
%endif |
||||||
|
%ifarch sparc |
||||||
|
--disable-linux-futex \ |
||||||
|
%endif |
||||||
|
%ifarch sparc64 |
||||||
|
--with-cpu=ultrasparc \ |
||||||
|
%endif |
||||||
|
%ifarch sparc sparcv9 |
||||||
|
--host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7 |
||||||
|
%endif |
||||||
|
%ifarch ppc ppc64 ppc64le ppc64p7 |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
--with-cpu-32=power7 --with-tune-32=power7 --with-cpu-64=power7 --with-tune-64=power7 \ |
||||||
|
%else |
||||||
|
--with-cpu-32=power4 --with-tune-32=power6 --with-cpu-64=power4 --with-tune-64=power6 \ |
||||||
|
%endif |
||||||
|
%endif |
||||||
|
%ifarch ppc |
||||||
|
--build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32 |
||||||
|
%endif |
||||||
|
%ifarch %{ix86} x86_64 |
||||||
|
--with-tune=generic \ |
||||||
|
%endif |
||||||
|
%ifarch %{ix86} |
||||||
|
--with-arch=i686 \ |
||||||
|
%endif |
||||||
|
%ifarch x86_64 |
||||||
|
--with-arch_32=i686 \ |
||||||
|
%endif |
||||||
|
%ifarch s390 s390x |
||||||
|
--with-arch=z9-109 --with-tune=z10 --enable-decimal-float \ |
||||||
|
%endif |
||||||
|
%ifnarch sparc sparcv9 ppc |
||||||
|
--build=%{gcc_target_platform} |
||||||
|
%endif |
||||||
|
|
||||||
|
GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" |
||||||
|
|
||||||
|
# Copy various doc files here and there |
||||||
|
cd .. |
||||||
|
mkdir -p rpm.doc/gfortran rpm.doc/libatomic rpm.doc/libitm rpm.doc/libcilkrts rpm.doc/libmpx |
||||||
|
|
||||||
|
(cd libgfortran; for i in ChangeLog*; do |
||||||
|
cp -p $i ../rpm.doc/gfortran/$i.libgfortran |
||||||
|
done) |
||||||
|
|
||||||
|
%if %{build_libitm} |
||||||
|
(cd libitm; for i in ChangeLog*; do |
||||||
|
cp -p $i ../rpm.doc/libitm/$i.libitm |
||||||
|
done) |
||||||
|
%endif |
||||||
|
|
||||||
|
%if %{build_libatomic} |
||||||
|
(cd libatomic; for i in ChangeLog*; do |
||||||
|
cp -p $i ../rpm.doc/libatomic/$i.libatomic |
||||||
|
done) |
||||||
|
%endif |
||||||
|
|
||||||
|
%if %{build_libcilkrts} |
||||||
|
(cd libcilkrts; for i in ChangeLog*; do |
||||||
|
cp -p $i ../rpm.doc/libcilkrts/$i.libcilkrts |
||||||
|
done) |
||||||
|
%endif |
||||||
|
|
||||||
|
rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9] |
||||||
|
find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9 |
||||||
|
|
||||||
|
%install |
||||||
|
rm -fr %{buildroot} |
||||||
|
|
||||||
|
cd obj-%{gcc_target_platform} |
||||||
|
|
||||||
|
# Make sure libcilkrts can use system libgcc_s.so.1. |
||||||
|
rm -f gcc/libgcc_s.so |
||||||
|
echo '/* GNU ld script |
||||||
|
Use the shared library, but some functions are only in |
||||||
|
the static library, so try that secondarily. */ |
||||||
|
%{oformat} |
||||||
|
GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > gcc/libgcc_s.so |
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_prefix}/%{_lib} |
||||||
|
mkdir -p %{buildroot}%{_infodir} |
||||||
|
|
||||||
|
# Use make install DESTDIR trick to avoid bogus RPATHs. |
||||||
|
%if %{build_libitm} |
||||||
|
cd %{gcc_target_platform}/libitm/ |
||||||
|
mkdir temp |
||||||
|
make install DESTDIR=`pwd`/temp |
||||||
|
cp -a temp/usr/%{_lib}/libitm.so.1* %{buildroot}%{_prefix}/%{_lib}/ |
||||||
|
cp -a libitm.info %{buildroot}%{_infodir}/ |
||||||
|
cd ../.. |
||||||
|
%endif |
||||||
|
|
||||||
|
%if %{build_libatomic} |
||||||
|
cd %{gcc_target_platform}/libatomic/ |
||||||
|
mkdir temp |
||||||
|
make install DESTDIR=`pwd`/temp |
||||||
|
cp -a temp/usr/%{_lib}/libatomic.so.1* %{buildroot}%{_prefix}/%{_lib}/ |
||||||
|
cd ../.. |
||||||
|
%endif |
||||||
|
|
||||||
|
%if %{build_libcilkrts} |
||||||
|
cd %{gcc_target_platform}/libcilkrts/ |
||||||
|
mkdir temp |
||||||
|
make install DESTDIR=`pwd`/temp |
||||||
|
cp -a temp/usr/%{_lib}/libcilkrts.so.5* %{buildroot}%{_prefix}/%{_lib}/ |
||||||
|
cd ../.. |
||||||
|
%endif |
||||||
|
|
||||||
|
%if %{build_libquadmath} |
||||||
|
cd %{gcc_target_platform}/libquadmath/ |
||||||
|
mkdir temp |
||||||
|
make install DESTDIR=`pwd`/temp |
||||||
|
cp -a temp/usr/%{_lib}/libquadmath.so.0* %{buildroot}%{_prefix}/%{_lib}/ |
||||||
|
cd ../.. |
||||||
|
%endif |
||||||
|
|
||||||
|
cd %{gcc_target_platform}/libgfortran/ |
||||||
|
mkdir temp |
||||||
|
%if %{build_libquadmath} |
||||||
|
# It needs to find libquadmath.so. |
||||||
|
export LIBRARY_PATH=`pwd`/../../%{gcc_target_platform}/libquadmath/temp/usr/%{_lib} |
||||||
|
%endif |
||||||
|
make install DESTDIR=`pwd`/temp |
||||||
|
cp -a temp/usr/%{_lib}/libgfortran.so.4* %{buildroot}%{_prefix}/%{_lib}/ |
||||||
|
cd ../.. |
||||||
|
|
||||||
|
|
||||||
|
# Remove binaries we will not be including, so that they don't end up in |
||||||
|
# gcc-libraries-debuginfo. |
||||||
|
%if 0%{?rhel} >= 7 |
||||||
|
rm -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.so* |
||||||
|
%endif |
||||||
|
|
||||||
|
rm -f gcc/libgcc_s.so |
||||||
|
ln -sf libgcc_s.so.1 gcc/libgcc_s.so |
||||||
|
|
||||||
|
%check |
||||||
|
cd obj-%{gcc_target_platform} |
||||||
|
|
||||||
|
# run the tests. |
||||||
|
%ifnarch ppc64le |
||||||
|
make %{?_smp_mflags} -k check RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || : |
||||||
|
%else |
||||||
|
make %{?_smp_mflags} -k check || : |
||||||
|
%endif |
||||||
|
( LC_ALL=C ../contrib/test_summary -t || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' > testresults |
||||||
|
echo ====================TESTING========================= |
||||||
|
cat testresults |
||||||
|
echo ====================TESTING END===================== |
||||||
|
mkdir testlogs-%{_target_platform}-%{version}-%{release} |
||||||
|
for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do |
||||||
|
ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || : |
||||||
|
done |
||||||
|
tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \ |
||||||
|
| uuencode testlogs-%{_target_platform}.tar.bz2 || : |
||||||
|
rm -rf testlogs-%{_target_platform}-%{version}-%{release} |
||||||
|
|
||||||
|
%clean |
||||||
|
rm -rf %{buildroot} |
||||||
|
|
||||||
|
%post -n libitm |
||||||
|
/sbin/ldconfig |
||||||
|
if [ -f %{_infodir}/libitm.info.gz ]; then |
||||||
|
/sbin/install-info \ |
||||||
|
--info-dir=%{_infodir} %{_infodir}/libitm.info.gz || : |
||||||
|
fi |
||||||
|
|
||||||
|
%post -n libatomic |
||||||
|
/sbin/ldconfig |
||||||
|
if [ -f %{_infodir}/libatomic.info.gz ]; then |
||||||
|
/sbin/install-info \ |
||||||
|
--info-dir=%{_infodir} %{_infodir}/libatomic.info.gz || : |
||||||
|
fi |
||||||
|
|
||||||
|
%post -n libcilkrts |
||||||
|
/sbin/ldconfig |
||||||
|
if [ -f %{_infodir}/libcilkrts.info.gz ]; then |
||||||
|
/sbin/install-info \ |
||||||
|
--info-dir=%{_infodir} %{_infodir}/libcilkrts.info.gz || : |
||||||
|
fi |
||||||
|
|
||||||
|
%post -n libgfortran4 |
||||||
|
/sbin/ldconfig |
||||||
|
if [ -f %{_infodir}/libgfortran.info.gz ]; then |
||||||
|
/sbin/install-info \ |
||||||
|
--info-dir=%{_infodir} %{_infodir}/libgfortran.info.gz || : |
||||||
|
fi |
||||||
|
|
||||||
|
%post -n libmpx -p /sbin/ldconfig |
||||||
|
|
||||||
|
%preun -n libitm |
||||||
|
if [ $1 = 0 -a -f %{_infodir}/libitm.info.gz ]; then |
||||||
|
/sbin/install-info --delete \ |
||||||
|
--info-dir=%{_infodir} %{_infodir}/libitm.info.gz || : |
||||||
|
fi |
||||||
|
|
||||||
|
%preun -n libatomic |
||||||
|
if [ $1 = 0 -a -f %{_infodir}/libatomic.info.gz ]; then |
||||||
|
/sbin/install-info --delete \ |
||||||
|
--info-dir=%{_infodir} %{_infodir}/libatomic.info.gz || : |
||||||
|
fi |
||||||
|
|
||||||
|
%preun -n libgfortran4 |
||||||
|
if [ $1 = 0 -a -f %{_infodir}/libgfortran.info.gz ]; then |
||||||
|
/sbin/install-info --delete \ |
||||||
|
--info-dir=%{_infodir} %{_infodir}/libgfortran.info.gz || : |
||||||
|
fi |
||||||
|
|
||||||
|
%preun -n libcilkrts |
||||||
|
if [ $1 = 0 -a -f %{_infodir}/libcilkrts.info.gz ]; then |
||||||
|
/sbin/install-info --delete \ |
||||||
|
--info-dir=%{_infodir} %{_infodir}/libcilkrts.info.gz || : |
||||||
|
fi |
||||||
|
|
||||||
|
%postun -n libitm -p /sbin/ldconfig |
||||||
|
|
||||||
|
%postun -n libatomic -p /sbin/ldconfig |
||||||
|
|
||||||
|
%postun -n libcilkrts -p /sbin/ldconfig |
||||||
|
|
||||||
|
%postun -n libgfortran4 -p /sbin/ldconfig |
||||||
|
|
||||||
|
%postun -n libmpx -p /sbin/ldconfig |
||||||
|
|
||||||
|
%if %{build_libitm} |
||||||
|
%files -n libitm |
||||||
|
%defattr(-,root,root,-) |
||||||
|
%{_prefix}/%{_lib}/libitm.so.1* |
||||||
|
%{_infodir}/libitm.info* |
||||||
|
|
||||||
|
%doc gcc/COPYING3 COPYING.RUNTIME rpm.doc/libitm/* |
||||||
|
%endif |
||||||
|
|
||||||
|
%if %{build_libatomic} |
||||||
|
%files -n libatomic |
||||||
|
%defattr(-,root,root,-) |
||||||
|
%{_prefix}/%{_lib}/libatomic.so.1* |
||||||
|
|
||||||
|
%doc gcc/COPYING3 COPYING.RUNTIME rpm.doc/libatomic/* |
||||||
|
%endif |
||||||
|
|
||||||
|
%if %{build_libcilkrts} |
||||||
|
%files -n libcilkrts |
||||||
|
%defattr(-,root,root,-) |
||||||
|
%{_prefix}/%{_lib}/libcilkrts.so.5* |
||||||
|
|
||||||
|
%doc gcc/COPYING3 COPYING.RUNTIME rpm.doc/libcilkrts/* |
||||||
|
%endif |
||||||
|
|
||||||
|
%files -n libgfortran4 |
||||||
|
%defattr(-,root,root,-) |
||||||
|
%{_prefix}/%{_lib}/libgfortran.so.4* |
||||||
|
|
||||||
|
%doc gcc/COPYING3 COPYING.RUNTIME rpm.doc/gfortran/* |
||||||
|
|
||||||
|
%changelog |
||||||
|
* Thu Oct 19 2017 Marek Polacek <polacek@redhat.com> 7.2.1-1.1.1 |
||||||
|
- update from gcc-7.2.1-1 (#1477224) |
||||||
|
|
||||||
|
* Tue Jun 20 2017 Marek Polacek <polacek@redhat.com> 7.1.1-2.2.1 |
||||||
|
- don't run make check with -fstack-protector on ppc64le |
||||||
|
|
||||||
|
* Thu Jun 15 2017 Marek Polacek <polacek@redhat.com> 7.1.1-2.1.1 |
||||||
|
- bump gcc_release (DTS7 gcc-gfortran requires libgfortran4 >= 7.1.1-2) |
||||||
|
|
||||||
|
* Mon Jun 12 2017 Marek Polacek <polacek@redhat.com> 7.1.1-1.2.1 |
||||||
|
- remove libquadmath.so.* so that it doesn't end up in debuginfo |
||||||
|
|
||||||
|
* Mon Jun 5 2017 Marek Polacek <polacek@redhat.com> 7.1.1-1.1.1 |
||||||
|
- rename libgfortran2 to libgfortran4 |
||||||
|
- update from Fedora gcc-7.1.1-2.fc27 |
||||||
|
|
||||||
|
* Wed May 24 2017 Marek Polacek <polacek@redhat.com> 7.0.1-4.2.1 |
||||||
|
- also build on ppc64le |
||||||
|
|
||||||
|
* Mon Mar 20 2017 Marek Polacek <polacek@redhat.com> 7.0.1-4.1.1 |
||||||
|
- also build on aarch64 |
||||||
|
- drop libitm |
||||||
|
- only enable libatomic for aarch64 |
||||||
|
|
||||||
|
* Fri Mar 17 2017 Marek Polacek <polacek@redhat.com> 7.0.1-3.1.1 |
||||||
|
- drop libquadmath and rename libgfortran to libgfortran2 |
||||||
|
|
||||||
|
* Wed Mar 15 2017 Marek Polacek <polacek@redhat.com> 7.0.1-2.1.1 |
||||||
|
- also include the libquadmath subpackage |
||||||
|
|
||||||
|
* Tue Mar 14 2017 Marek Polacek <polacek@redhat.com> 7.0.1-1.1.1 |
||||||
|
- update from Fedora 7.0.1-0.12.fc26 (#1412815) |
||||||
|
- add the libgfortran subpackage |
||||||
|
|
||||||
|
* Wed Oct 19 2016 Marek Polacek <polacek@redhat.com> 6.2.1-1.1.1 |
||||||
|
- update from DTS 6.2.1 (#1265255) |
||||||
|
|
||||||
|
* Tue Oct 18 2016 Marek Polacek <polacek@redhat.com> 5.3.1-1.1.1 |
||||||
|
- update from DTS 5.3.1 (#1265255) |
||||||
|
- run the whole testsuite (because of Cilk+) |
||||||
|
|
||||||
|
* Tue Dec 15 2015 Marek Polacek <polacek@redhat.com> 5.2.1-2.1.1 |
||||||
|
- update from DTS 5.2.1-2 (#1265253) |
||||||
|
- drop libmpx (#1275357) |
||||||
|
|
||||||
|
* Fri Apr 10 2015 Marek Polacek <polacek@redhat.com> 5.0.0-1.1.1 |
||||||
|
- update from Fedora gcc-5.0.0-0.21.fc22 |
||||||
|
- add libmpx subpackage on x86 |
||||||
|
|
||||||
|
* Mon Jun 02 2014 Marek Polacek <polacek@redhat.com> 4.9.0-6.1.1 |
||||||
|
- make sure libcilkrts can use system libgcc_s.so.1 (#1101277) |
||||||
|
- update from DTS gcc-4.9.0-6 |
||||||
|
|
||||||
|
* Fri May 23 2014 Marek Polacek <polacek@redhat.com> 4.9.0-5.2.1 |
||||||
|
- prevent bogus RPATHs |
||||||
|
|
||||||
|
* Wed May 14 2014 Marek Polacek <polacek@redhat.com> 4.9.0-5.1.1 |
||||||
|
- update from DTS gcc-4.9.0-5 |
||||||
|
- add libcilkrts |
||||||
|
|
||||||
|
* Mon Apr 28 2014 Marek Polacek <polacek@redhat.com> 4.8.2-12.1.1 |
||||||
|
- update from DTS gcc-4.8.2-12 |
||||||
|
|
||||||
|
* Wed Aug 14 2013 Marek Polacek <polacek@redhat.com> 4.8.1-4.2.1 |
||||||
|
- always build HTM bits in libitm (#996683, #996682) |
||||||
|
|
||||||
|
* Fri Jul 19 2013 Marek Polacek <polacek@redhat.com> 4.8.1-4.1.1 |
||||||
|
- update from DTS gcc-4.8.1-4 |
||||||
|
|
||||||
|
* Wed May 29 2013 Marek Polacek <polacek@redhat.com> 4.8.0-5.1.1 |
||||||
|
- update from DTS gcc-4.8.0-5 |
||||||
|
- build libitm even for s390{,x} |
||||||
|
|
||||||
|
* Thu May 02 2013 Marek Polacek <polacek@redhat.com> 4.8.0-3.1.1 |
||||||
|
- new package |
Loading…
Reference in new issue