gcc: fix #12836: build on darwin
Patch is based on GCC Bug 66523: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66523
This commit is contained in:
parent
31ab7d38f2
commit
0fe58cade5
@ -71,8 +71,10 @@ let version = "4.9.3";
|
|||||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||||
# target libraries and tools.
|
# target libraries and tools.
|
||||||
++ optional langAda ../gnat-cflags.patch
|
++ optional langAda ../gnat-cflags.patch
|
||||||
++ optional langFortran ../gfortran-driving.patch;
|
++ optional langFortran ../gfortran-driving.patch
|
||||||
|
# The NXConstStr.patch can be removed at 4.9.4
|
||||||
|
++ optional stdenv.isDarwin ../gfortran-darwin-NXConstStr.patch;
|
||||||
|
|
||||||
javaEcj = fetchurl {
|
javaEcj = fetchurl {
|
||||||
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
|
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
|
||||||
# `configure' time.
|
# `configure' time.
|
||||||
|
@ -24,7 +24,7 @@ if test "$noSysDirs" = "1"; then
|
|||||||
# Figure out what extra flags to pass to the gcc compilers
|
# Figure out what extra flags to pass to the gcc compilers
|
||||||
# being generated to make sure that they use our glibc.
|
# being generated to make sure that they use our glibc.
|
||||||
extraFlags="$(cat $NIX_CC/nix-support/libc-cflags)"
|
extraFlags="$(cat $NIX_CC/nix-support/libc-cflags)"
|
||||||
extraLDFlags="$(cat $NIX_CC/nix-support/libc-ldflags) $(cat $NIX_CC/nix-support/libc-ldflags-before)"
|
extraLDFlags="$(cat $NIX_CC/nix-support/libc-ldflags) $(cat $NIX_CC/nix-support/libc-ldflags-before || true)"
|
||||||
|
|
||||||
# Use *real* header files, otherwise a limits.h is generated
|
# Use *real* header files, otherwise a limits.h is generated
|
||||||
# that does not include Glibc's limits.h (notably missing
|
# that does not include Glibc's limits.h (notably missing
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
From 82f81877458ea372176eabb5de36329431dce99b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Iain Sandoe <iain@codesourcery.com>
|
||||||
|
Date: Sat, 21 Dec 2013 00:30:18 +0000
|
||||||
|
Subject: [PATCH] don't try to mark local symbols as no-dead-strip
|
||||||
|
|
||||||
|
---
|
||||||
|
gcc/config/darwin.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
|
||||||
|
index 40804b8..0080299 100644
|
||||||
|
--- a/gcc/config/darwin.c
|
||||||
|
+++ b/gcc/config/darwin.c
|
||||||
|
@@ -1259,6 +1259,11 @@ darwin_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED)
|
||||||
|
void
|
||||||
|
darwin_mark_decl_preserved (const char *name)
|
||||||
|
{
|
||||||
|
+ /* Actually we shouldn't mark any local symbol this way, but for now
|
||||||
|
+ this only happens with ObjC meta-data. */
|
||||||
|
+ if (darwin_label_is_anonymous_local_objc_name (name))
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
fprintf (asm_out_file, "\t.no_dead_strip ");
|
||||||
|
assemble_name (asm_out_file, name);
|
||||||
|
fputc ('\n', asm_out_file);
|
||||||
|
--
|
||||||
|
2.2.1
|
Loading…
Reference in New Issue
Block a user