Follow-up to PR bootstrap/54820
Cary Coutant
ccoutant@google.com
Thu Dec 20 02:13:00 GMT 2012
Two test cases, debug_msg_so.err and debug_msg_ndebug.err, are still
broken by the original patch, because (a) debug_msg.so has a DT_NEEDED
entry for libstdc++.so, (b) the use of -static-libstdc++ means that
that DT_NEEDED entry is unknown when we link the executable, and (c)
the undefined symbols in debug_msg.so will not be printed.
The obvious solution would be to add an option to cancel
-static-libstdc++, but there doesn't seem to be one. (There is a
-shared-libgcc option, but no -shared-libstdc++.) I've tested two
alternatives that work:
(1) Force the issue by explicitly adding -Bdynamic -lstdc++ to the
link flags for debug_msg_so and debug_msg_ndebug.
(2) Remove the DT_NEEDED entry from debug_msg.so by linking it with
-static-libstdc++ also.
Which one seems preferable? Any better ideas?
-cary
On Tue, Oct 23, 2012 at 2:54 PM, Ian Lance Taylor <iant@google.com> wrote:
> On Tue, Oct 23, 2012 at 2:11 PM, Eric Botcazou <ebotcazou@adacore.com> wrote:
>>
>> 2012-10-23 Eric Botcazou <ebotcazou@adacore.com>
>>
>> PR bootstrap/54820
>> * configure.ac (have_static_libs): Force 'no' for GCC version < 4.5.
>> * configure: Regenerate.
>
> This is OK.
>
> Thanks.
>
> Ian
More information about the Gcc-patches
mailing list