Experience with g++ 4.8 and -frepo?

David Kastrup dak@gnu.org
Wed Aug 27 13:18:00 GMT 2014


David Kastrup <dak@gnu.org> writes:

> Jonathan Wakely <jwakely@redhat.com> writes:
>
>> On 27/08/14 14:18 +0200, David Kastrup wrote:
>>> At any rate, I need to tell all compilation units that a specialization
>>>exists, and of course I can only define it in one compilation unit.
>>
>> So declare it wherever needed (e.g. by putting it in a header):
>>
>> template <> const char * Smob_base<Grob>::type_p_name;
>>
>> And define it exactly once:
>>
>> template <> const char * Smob_base<Grob>::type_p_name = "ly:grob?";
>
> I'm pretty sure that that's just what I did last iteration around and it
> got me into more problems, consequently my question here.

[...]

> and the outcommented passage adding a declaration to the class
> definition itself went through a number of different iterations with
> different bad results.  I'm pretty sure I had your suggestion in it as
> well but I definitely will give it another round.

Fiddlesticks.  So much for the "I'm pretty sure" angle.  Yes, it would
have been the most obvious syntax to try, and yes, it indeed appears to
get through the build with the current code base at least when using the
non-const variant for specialization (while I arrived at a binary
previously, it crashed right in post-link stages of the build due to the
sketched initialization problem).

Ok, I'll now see whether the build works even when using const
qualifications in the initialization code.  But whether or not I may
find something there, libstdc++ clearly would seem off the list of
possible culprits for now.

Thanks for your help here, and particularly for the information that
-frepo is an option/technique on its way out.

-- 
David Kastrup



More information about the Libstdc++ mailing list