On 7/9/19 11:14 PM, Jason Merrill wrote:
> On 7/9/19 1:48 PM, Nathan Sidwell wrote:
>> On 7/9/19 9:00 AM, Martin Liška wrote:
>>> On 7/9/19 1:41 PM, Nathan Sidwell wrote:
>>>> On 7/9/19 6:39 AM, Richard Biener wrote:
>>>>> On Mon, Jul 8, 2019 at 2:04 PM Martin Liška <mli...@suse.cz> wrote:
>>>>>>
>>>>
>>>>>>
>>>>>> Same happens also for GCC7. It does 17 iteration (#define MAX_ITERATIONS 
>>>>>> 17) and
>>>>>> apparently 17 is not enough to resolve all symbols. And it's really slow.
>>>>>
>>>>> Ouch.
>>>>
>>>> hm, 17 is a magic number.  in C++98 it was the maximum depth of template 
>>>> instantiations that implementations needed to support.  Portable code 
>>>> could not expect more.  So the worst case -frepo behaviour would be 17 
>>>> iterations.
>>>>
>>>> That's not true any more, it's been 1024 since C++11.
>>>>
>>>> Has a bug been filed about this frepo problem?
>>>
>>> I create a new one:
>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91125
>>>
>>>> If not, it suggest those using frepo are not compiling modern C++.
>>>>
>>>>>> That said, I would recommend to remove it :)
>>>>>
>>>>> In the end it's up to the C++ FE maintainers but the above clearly
>>>>> doesn't look promising
>>>>> (not sure if it keeps re-compiling _all_ repo-triggered templates or
>>>>> just incrementally adds
>>>>> them to new object files).
>>>>
>>>>> I'm not opposed to removing -frepo from GCC 10 but then I would start
>>>>> noting it is obsolete
>>>>> on the GCC 9 branch at least.
>>>>
>>>> I concur.  frepo's serial reinvocation of the compiler is not compatible 
>>>> with modern C++ code bases.
>>>
>>> Great. Then I'm sending patch that does the functionality removal.
>>>
>>> Ready to be installed after proper testing & bootstrap?
>>
>> I'd like Jason to render an opinion, and we should mark it obsolete in the 
>> gcc 9 branch (how much runway would that give people?)
> 
> I haven't noticed any responses to my earlier question: Are there any targets 
> without COMDAT support that we still care about?
> 
> But given the observation above about the 17 limit, even if there are such 
> targets it wouldn't be very useful for modern code.  And if people want to 
> compile old code for old platforms, they might as well continue to use an old 
> compiler.
> 
> So I'm OK with deprecating with a warning for the next GCC 9 release, to see 
> if anyone complains, and removing in 10.

Great, thank you.

There's a patch for deprecating of the option in GCC 9 changes.

May I install the patch right now or should I wait?

Thanks,
Martin

> 
> Jason

diff --git a/htdocs/gcc-9/changes.html b/htdocs/gcc-9/changes.html
index bf9f6db..bec4754 100644
--- a/htdocs/gcc-9/changes.html
+++ b/htdocs/gcc-9/changes.html
@@ -57,6 +57,11 @@ You may also want to check out our
       announcement</a>.</li>
     </ul>
   </li>
+  <li>
+      The automatic template instantiation at link time (<a href="https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-frepo";><code>-frepo</code></a>) has been deprecated and
+    will be removed in a future release.
+  </li>
+
 </ul>
 
 

Reply via email to