aboutsummaryrefslogtreecommitdiff
path: root/contrib/gcc/gcc.c
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2007-05-28 23:02:56 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2007-05-28 23:02:56 +0000
commit7a6bf861d6c49bee53dfe967b555a5abe8df5638 (patch)
tree6a65dd9728aa5462bf9b785419fcb40146f1aa3f /contrib/gcc/gcc.c
parent10faa568707403e7f72d9e20467c2d06b5517e43 (diff)
Disable shared libgcc use for profiled builds. GNU linker pulls symbols
out of libgcc_s.so.1 somehow and fails to record DT_NEEED dependency when linking with profiled libraries despite --ld-as-needed option.
Notes
Notes: svn path=/head/; revision=170077
Diffstat (limited to 'contrib/gcc/gcc.c')
-rw-r--r--contrib/gcc/gcc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/contrib/gcc/gcc.c b/contrib/gcc/gcc.c
index fa26bfcec8b0..ddf2f49205e6 100644
--- a/contrib/gcc/gcc.c
+++ b/contrib/gcc/gcc.c
@@ -1635,7 +1635,8 @@ init_gcc_specs (struct obstack *obstack, const char *shared_name,
{
char *buf;
- buf = concat ("%{static|static-libgcc:", static_name, " ", eh_name, "}"
+ buf = concat ("%{pg:", static_name, " ", eh_name, "} %{!pg:",
+ "%{static|static-libgcc|pg:", static_name, " ", eh_name, "}"
"%{!static:%{!static-libgcc:"
#if USE_LD_AS_NEEDED
"%{!shared-libgcc:",
@@ -1658,7 +1659,7 @@ init_gcc_specs (struct obstack *obstack, const char *shared_name,
"%{shared:", shared_name, "}"
#endif
#endif
- "}}", NULL);
+ "}}}", NULL);
obstack_grow (obstack, buf, strlen (buf));
free (buf);