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