From fa381cb2a157ab74bf8117938f3da5ba51095c2a Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 17 Feb 2011 18:35:41 +0000 Subject: [PATCH] re PR driver/47390 (Linking with -export-dynamic broken) PR driver/47390 * common.opt (export-dynamic): New Driver option. * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}. From-SVN: r170253 --- gcc/ChangeLog | 6 ++++++ gcc/common.opt | 7 +++++++ gcc/gcc.c | 1 + 3 files changed, 14 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2c41f1f8c77..40d80410b8e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-02-17 Joseph Myers + + PR driver/47390 + * common.opt (export-dynamic): New Driver option. + * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}. + 2011-02-17 Joseph Myers * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*. diff --git a/gcc/common.opt b/gcc/common.opt index 00c3f3343fd..1f24a3a67a0 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -712,6 +712,13 @@ Driver e Driver Joined Separate +; This option has historically been passed down to the linker by an +; accident of a %{e*} spec, so ensure it continues to be passed down +; as a single option. The supported option for this purpose is +; -rdynamic. See PR 47390. +export-dynamic +Driver Undocumented + ; The version of the C++ ABI in use. The following values are allowed: ; ; 0: The version of the ABI believed most conformant with the C++ ABI diff --git a/gcc/gcc.c b/gcc/gcc.c index 9b6f2fb368b..80a3ba60223 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -644,6 +644,7 @@ proper position among the other output files. */ directories. */ /* We pass any -flto flags on to the linker, which is expected to understand them. In practice, this means it had better be collect2. */ +/* %{e*} includes -export-dynamic; see comment in common.opt. */ #ifndef LINK_COMMAND_SPEC #define LINK_COMMAND_SPEC "\ %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\