summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2007-05-28 23:02:56 +0000
committerkan <kan@FreeBSD.org>2007-05-28 23:02:56 +0000
commit236631e30eace561bdebc39d2cf840bd0b3d9291 (patch)
tree6a65dd9728aa5462bf9b785419fcb40146f1aa3f
parent679d42f237374c91d66ede421e63e1579c98404a (diff)
downloadFreeBSD-src-236631e30eace561bdebc39d2cf840bd0b3d9291.zip
FreeBSD-src-236631e30eace561bdebc39d2cf840bd0b3d9291.tar.gz
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.
-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 fa26bfc..ddf2f49 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);
OpenPOWER on IntegriCloud