<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-1160</id>
	<title>Nabble - gcc - patches</title>
	<updated>2009-12-18T02:26:58Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/gcc---patches-f1160.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/gcc---patches-f1160.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26841682</id>
	<title>Re: 4.5 release notes for target-specific improvements</title>
	<published>2009-12-18T02:26:58Z</published>
	<updated>2009-12-18T02:26:58Z</updated>
	<author>
		<name>Gerald Pfeifer</name>
	</author>
	<content type="html">On Tue, 8 Dec 2009, Joseph S. Myers wrote:
&lt;br&gt;&amp;gt; I've applied this patch to add 4.5 release notes for various 
&lt;br&gt;&amp;gt; target-specific improvements for ARM, M68K/ColdFire, MIPS and PowerPC. &amp;nbsp;
&lt;br&gt;&lt;br&gt;Very nice, thanks a lot, Joseph!
&lt;br&gt;&lt;br&gt;&amp;gt; I'm sure there are more such improvements, both for these targets and 
&lt;br&gt;&amp;gt; for other targets; target maintainers need to look at changes for their 
&lt;br&gt;&amp;gt; targets and add release notes as appropriate.
&lt;br&gt;&lt;br&gt;Ping. :-)
&lt;br&gt;&lt;br&gt;Gerald
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/4.5-release-notes-for-target-specific-improvements-tp26697625p26841682.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26841224</id>
	<title>Re: Reduce libstdc++-v3 locale::locale() lock contention</title>
	<published>2009-12-18T01:48:15Z</published>
	<updated>2009-12-18T01:48:15Z</updated>
	<author>
		<name>Paolo Carlini-3</name>
	</author>
	<content type="html">On 12/17/2009 09:11 PM, Jimmy Guo wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Yes you are right. &amp;nbsp;Cannot do this without ABI breakage. &amp;nbsp;The old object
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; handling destruction will cause problem.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; Yeah, I also think so, unfortunately :( Would improve the performance a
&lt;br&gt;&amp;gt;&amp;gt; lot, eh? Any idea how much?
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; Indeed a lot ... so tempted to apply this to my custom gcc and ask all of
&lt;br&gt;&amp;gt; our affected projects to rebuild their libraries ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; a. Current:
&lt;br&gt;&amp;gt; nthreads = 1: 1585
&lt;br&gt;&amp;gt; nthreads = 2: 4501
&lt;br&gt;&amp;gt; nthreads = 4: 26203
&lt;br&gt;&amp;gt; nthreads = 8: 31745
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; b. locale::locale() lock contention reduction:
&lt;br&gt;&amp;gt; nthreads = 1: 1237
&lt;br&gt;&amp;gt; nthreads = 2: 2028
&lt;br&gt;&amp;gt; nthreads = 4: 8371
&lt;br&gt;&amp;gt; nthreads = 8: 21262
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; c. 'b' + C locale ref counting removal:
&lt;br&gt;&amp;gt; nthreads = 1: 1159
&lt;br&gt;&amp;gt; nthreads = 2: 1523
&lt;br&gt;&amp;gt; nthreads = 4: 1742
&lt;br&gt;&amp;gt; nthreads = 8: 1902
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;I see, grunt.
&lt;/div&gt;&lt;br&gt;For now I committed the below (tested x86_64-linux multilib) which will
&lt;br&gt;probably remain our main improvement for 4.5.0, we'll see...
&lt;br&gt;&lt;br&gt;Thanks again,
&lt;br&gt;Paolo.
&lt;br&gt;&lt;br&gt;////////////////////
&lt;br&gt;&lt;br /&gt;2009-12-18 &amp;nbsp;Jimmy Guo &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841224&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jguo@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR libstdc++/40088
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * src/locale_init.cc (locale::locale()): Optimize the common case
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where _S_global still points to _S_classic.
&lt;br&gt;&lt;br /&gt;Index: src/locale_init.cc
&lt;br&gt;===================================================================
&lt;br&gt;--- src/locale_init.cc	(revision 155309)
&lt;br&gt;+++ src/locale_init.cc	(working copy)
&lt;br&gt;@@ -208,9 +208,25 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;locale::locale() throw() : _M_impl(0)
&lt;br&gt;&amp;nbsp; &amp;nbsp;{ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;_S_initialize();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;__gnu_cxx::__scoped_lock sentry(get_locale_mutex());
&lt;br&gt;- &amp;nbsp; &amp;nbsp;_S_global-&amp;gt;_M_add_reference();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// Checked locking to optimize the common case where _S_global
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// still points to _S_classic (locale::_S_initialize_once()):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// - If they are the same, just increment the reference count and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; we are done. &amp;nbsp;This effectively constructs a C locale object
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; identical to the static c_locale.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// - Otherwise, _S_global can and may be destroyed due to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; locale::global() call on another thread, in which case we
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; fall back to lock protected access to both _S_global and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; its reference count.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;_M_impl = _S_global;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (_M_impl == _S_classic)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;_M_impl-&amp;gt;_M_add_reference();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;__gnu_cxx::__scoped_lock sentry(get_locale_mutex());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_S_global-&amp;gt;_M_add_reference();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_M_impl = _S_global;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;locale
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Reduce-libstdc%2B%2B-v3-locale%3A%3Alocale%28%29-lock-contention-tp26820369p26841224.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26841228</id>
	<title>Re: Reduce libstdc++-v3 locale::locale() lock contention</title>
	<published>2009-12-18T01:47:33Z</published>
	<updated>2009-12-18T01:47:33Z</updated>
	<author>
		<name>Paolo Carlini-3</name>
	</author>
	<content type="html">On 12/17/2009 09:11 PM, Jimmy Guo wrote:
&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Yes you are right. &amp;nbsp;Cannot do this without ABI breakage. &amp;nbsp;The old object
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; handling destruction will cause problem.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; Yeah, I also think so, unfortunately :( Would improve the performance a
&lt;br&gt;&amp;gt;&amp;gt; lot, eh? Any idea how much?
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; Indeed a lot ... so tempted to apply this to my custom gcc and ask all of
&lt;br&gt;&amp;gt; our affected projects to rebuild their libraries ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; a. Current:
&lt;br&gt;&amp;gt; nthreads = 1: 1585
&lt;br&gt;&amp;gt; nthreads = 2: 4501
&lt;br&gt;&amp;gt; nthreads = 4: 26203
&lt;br&gt;&amp;gt; nthreads = 8: 31745
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; b. locale::locale() lock contention reduction:
&lt;br&gt;&amp;gt; nthreads = 1: 1237
&lt;br&gt;&amp;gt; nthreads = 2: 2028
&lt;br&gt;&amp;gt; nthreads = 4: 8371
&lt;br&gt;&amp;gt; nthreads = 8: 21262
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; c. 'b' + C locale ref counting removal:
&lt;br&gt;&amp;gt; nthreads = 1: 1159
&lt;br&gt;&amp;gt; nthreads = 2: 1523
&lt;br&gt;&amp;gt; nthreads = 4: 1742
&lt;br&gt;&amp;gt; nthreads = 8: 1902
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;I see, grunt.
&lt;/div&gt;&lt;br&gt;For now I committed the below (tested x86_64-linux multilib) which will
&lt;br&gt;probably remain our main improvement for 4.5.0, we'll see...
&lt;br&gt;&lt;br&gt;Thanks again,
&lt;br&gt;Paolo.
&lt;br&gt;&lt;br&gt;////////////////////
&lt;br&gt;&lt;br /&gt;2009-12-18 &amp;nbsp;Jimmy Guo &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841228&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jguo@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR libstdc++/40088
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * src/locale_init.cc (locale::locale()): Optimize the common case
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where _S_global still points to _S_classic.
&lt;br&gt;&lt;br /&gt;Index: src/locale_init.cc
&lt;br&gt;===================================================================
&lt;br&gt;--- src/locale_init.cc	(revision 155309)
&lt;br&gt;+++ src/locale_init.cc	(working copy)
&lt;br&gt;@@ -208,9 +208,25 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;locale::locale() throw() : _M_impl(0)
&lt;br&gt;&amp;nbsp; &amp;nbsp;{ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;_S_initialize();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;__gnu_cxx::__scoped_lock sentry(get_locale_mutex());
&lt;br&gt;- &amp;nbsp; &amp;nbsp;_S_global-&amp;gt;_M_add_reference();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// Checked locking to optimize the common case where _S_global
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// still points to _S_classic (locale::_S_initialize_once()):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// - If they are the same, just increment the reference count and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; we are done. &amp;nbsp;This effectively constructs a C locale object
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; identical to the static c_locale.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// - Otherwise, _S_global can and may be destroyed due to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; locale::global() call on another thread, in which case we
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; fall back to lock protected access to both _S_global and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// &amp;nbsp; its reference count.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;_M_impl = _S_global;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (_M_impl == _S_classic)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;_M_impl-&amp;gt;_M_add_reference();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;__gnu_cxx::__scoped_lock sentry(get_locale_mutex());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_S_global-&amp;gt;_M_add_reference();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_M_impl = _S_global;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;locale
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Reduce-libstdc%2B%2B-v3-locale%3A%3Alocale%28%29-lock-contention-tp26820369p26841228.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26841211</id>
	<title>New Chinese (simplified) PO file for 'gcc' (version 4.5-b20091203)</title>
	<published>2009-12-18T01:47:17Z</published>
	<updated>2009-12-18T01:47:17Z</updated>
	<author>
		<name>Translation Project Robot-2</name>
	</author>
	<content type="html">Hello, gentle maintainer.
&lt;br&gt;&lt;br&gt;This is a message from the Translation Project robot.
&lt;br&gt;&lt;br&gt;A revised PO file for textual domain 'gcc' has been submitted
&lt;br&gt;by the Chinese (simplified) team of translators. &amp;nbsp;The file is available at:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://translationproject.org/latest/gcc/zh_CN.po&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://translationproject.org/latest/gcc/zh_CN.po&lt;/a&gt;&lt;br&gt;&lt;br&gt;(This file, 'gcc-4.5-b20091203.zh_CN.po', has just now been sent to you in
&lt;br&gt;a separate email.)
&lt;br&gt;&lt;br&gt;All other PO files for your package are available in:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://translationproject.org/latest/gcc/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://translationproject.org/latest/gcc/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Please consider including all of these in your next release, whether
&lt;br&gt;official or a pretest.
&lt;br&gt;&lt;br&gt;Whenever you have a new distribution with a new version number ready,
&lt;br&gt;containing a newer POT file, please send the URL of that distribution
&lt;br&gt;tarball to the address below. &amp;nbsp;The tarball may be just a pretest or a
&lt;br&gt;snapshot, it does not even have to compile. &amp;nbsp;It is just used by the
&lt;br&gt;translators when they need some extra translation context.
&lt;br&gt;&lt;br&gt;The following HTML page has been updated:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://translationproject.org/domain/gcc.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://translationproject.org/domain/gcc.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;If any question arises, please contact the translation coordinator.
&lt;br&gt;&lt;br&gt;Thank you for all your work,
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; The Translation Project robot, in the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name of your translation coordinator.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841211&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;coordinator@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/New-Chinese-%28simplified%29-PO-file-for-%27gcc%27-%28version-4.5-b20091203%29-tp26841211p26841211.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26841149</id>
	<title>Re: [wwwdocs] Buildstat update for 4.3</title>
	<published>2009-12-18T01:41:04Z</published>
	<updated>2009-12-18T01:41:04Z</updated>
	<author>
		<name>Gerald Pfeifer</name>
	</author>
	<content type="html">On Fri, 4 Dec 2009, Tom G. Christensen wrote:
&lt;br&gt;&amp;gt; Just a single result posted in the last 6 weeks.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Testresults for 4.3.4:
&lt;br&gt;&amp;gt; &amp;nbsp; hppa-unknown-linux-gnu
&lt;br&gt;&lt;br&gt;Thanks, Tom. &amp;nbsp;I applied the patch, sorry for the delay.
&lt;br&gt;&lt;br&gt;Gerald
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-wwwdocs--Buildstat-update-for-4.3-tp26644124p26841149.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26840981</id>
	<title>Re: [PATCH,Cygwin] Add -tsaware linker flag to Cygwin linker specs.</title>
	<published>2009-12-18T01:24:51Z</published>
	<updated>2009-12-18T01:24:51Z</updated>
	<author>
		<name>Dave Korn-6</name>
	</author>
	<content type="html">Kai Tietz wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Ok, for trunk. If you like to merge this fix back to 4.4 branch, it is
&lt;br&gt;&amp;gt; fine for me, too.
&lt;br&gt;&lt;br&gt;&amp;nbsp; Since we had just missed a release, I wasn't in any hurry about this, but
&lt;br&gt;I've now finally checked it into the branch. &amp;nbsp;JFTR.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; cheers,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DaveK
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-PATCH%2CCygwin--Add--tsaware-linker-flag-to-Cygwin-linker-specs.-tp25949230p26840981.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26840455</id>
	<title>Re: [wwwdocs] Buildstat update for 4.4</title>
	<published>2009-12-18T00:25:36Z</published>
	<updated>2009-12-18T00:25:36Z</updated>
	<author>
		<name>Gerald Pfeifer</name>
	</author>
	<content type="html">On Fri, 4 Dec 2009, Tom G. Christensen wrote:
&lt;br&gt;&amp;gt; Testresults for 4.4.2:
&lt;br&gt;&amp;gt; &amp;nbsp; hppa1.1-hp-hpux10.20
&lt;br&gt;&amp;gt; &amp;nbsp; hppa2.0w-hp-hpux11.00
&lt;br&gt;&amp;gt; &amp;nbsp; hppa2.0w-hp-hpux11.11
&lt;br&gt;&amp;gt; &amp;nbsp; hppa64-hp-hpux11.11
&lt;br&gt;&amp;gt; &amp;nbsp; i386-pc-solaris2.11
&lt;br&gt;&lt;br&gt;Thanks, Tom. &amp;nbsp;I applied this on your behalf.
&lt;br&gt;&lt;br&gt;Gerald
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-wwwdocs--Buildstat-update-for-4.4-tp26644064p26840455.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26839604</id>
	<title>[patch][graphite] Fix PR42221 and PR42205</title>
	<published>2009-12-17T22:10:20Z</published>
	<updated>2009-12-17T22:10:20Z</updated>
	<author>
		<name>Sebastian Pop-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I have committed the attached two patches to the graphite branch for
&lt;br&gt;further test.
&lt;br&gt;They fix two PRs as follows:
&lt;br&gt;&lt;br&gt;2009-12-17 &amp;nbsp;Sebastian Pop &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839604&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.pop@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR middle-end/42205
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * graphite-sese-to-poly.c (translate_scalar_reduction_to_array_for_stmt):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Insert the reduction copy in the same block as the phi node.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (follow_ssa_with_commutative_ops): Handle GIMPLE_NOPs.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * testsuite/gcc.dg/graphite/pr42205-1.c: New.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * testsuite/gcc.dg/graphite/pr42205-2.c: New.
&lt;br&gt;&lt;br&gt;2009-12-17 &amp;nbsp;Sebastian Pop &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839604&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.pop@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR middle-end/42221
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * sese.c (expand_scalar_variables_expr): Follow the SSA links into
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; the array indexing of ADDR_EXPRs.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * testsuite/gcc.dg/graphite/pr42221.c: New.
&lt;br&gt;&lt;br&gt;I will commit these two patches to trunk after the graphite auto testers
&lt;br&gt;will report no regressions.
&lt;br&gt;&lt;br&gt;Sebastian
&lt;br&gt;&lt;br /&gt;&lt;tt&gt;[0001-Fix-PR42221.patch]&lt;/tt&gt;&lt;br /&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;tt&gt;From 8eff928a8bf4e24be1445b041649f0be796c7ce9 Mon Sep 17 00:00:00 2001
&lt;br&gt;From: spop &amp;lt;spop@138bc75d-0d04-0410-961f-82ee72b054a4&amp;gt;
&lt;br&gt;Date: Fri, 18 Dec 2009 05:30:56 +0000
&lt;br&gt;Subject: [PATCH] Fix PR42221.
&lt;br&gt;&lt;br&gt;2009-12-17 &amp;nbsp;Sebastian Pop &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839604&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.pop@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR middle-end/42221
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * sese.c (expand_scalar_variables_expr): Follow the SSA links into
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; the array indexing of ADDR_EXPRs.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * testsuite/gcc.dg/graphite/pr42221.c: New.
&lt;br&gt;&lt;br&gt;git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/graphite@155333 138bc75d-0d04-0410-961f-82ee72b054a4
&lt;br&gt;---
&lt;br&gt;&amp;nbsp;gcc/ChangeLog.graphite &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;8 ++++++++
&lt;br&gt;&amp;nbsp;gcc/graphite-clast-to-gimple.c &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;2 +-
&lt;br&gt;&amp;nbsp;gcc/sese.c &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; 15 ++++++++++++++-
&lt;br&gt;&amp;nbsp;gcc/testsuite/gcc.dg/graphite/pr42221.c | &amp;nbsp; 24 ++++++++++++++++++++++++
&lt;br&gt;&amp;nbsp;4 files changed, 47 insertions(+), 2 deletions(-)
&lt;br&gt;&amp;nbsp;create mode 100644 gcc/testsuite/gcc.dg/graphite/pr42221.c
&lt;br&gt;&lt;br&gt;diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
&lt;br&gt;index c9ab283..33d3579 100644
&lt;br&gt;--- a/gcc/ChangeLog.graphite
&lt;br&gt;+++ b/gcc/ChangeLog.graphite
&lt;br&gt;@@ -1,5 +1,13 @@
&lt;br&gt;&amp;nbsp;2009-12-17 &amp;nbsp;Sebastian Pop &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839604&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.pop@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+	PR middle-end/42221
&lt;br&gt;+	* sese.c (expand_scalar_variables_expr): Follow the SSA links into
&lt;br&gt;+	the array indexing of ADDR_EXPRs.
&lt;br&gt;+
&lt;br&gt;+	* testsuite/gcc.dg/graphite/pr42221.c: New.
&lt;br&gt;+
&lt;br&gt;+2009-12-17 &amp;nbsp;Sebastian Pop &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839604&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.pop@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;	PR middle-end/42178
&lt;br&gt;&amp;nbsp;	PR middle-end/42334
&lt;br&gt;&amp;nbsp;	* graphite-interchange.c (lst_try_interchange): Do not modify OUTER
&lt;br&gt;diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c
&lt;br&gt;index 93138b6..c8ffd19 100644
&lt;br&gt;--- a/gcc/graphite-clast-to-gimple.c
&lt;br&gt;+++ b/gcc/graphite-clast-to-gimple.c
&lt;br&gt;@@ -931,7 +931,7 @@ translate_clast_guard (sese region, struct clast_guard *stmt, edge next_e,
&lt;br&gt;&amp;nbsp;static edge
&lt;br&gt;&amp;nbsp;translate_clast (sese region, struct clast_stmt *stmt,
&lt;br&gt;&amp;nbsp;		 edge next_e, htab_t rename_map, VEC (tree, heap) **newivs,
&lt;br&gt;-		 htab_t newivs_index, htab_t bb_pbb_mapping, 
&lt;br&gt;+		 htab_t newivs_index, htab_t bb_pbb_mapping,
&lt;br&gt;&amp;nbsp;		 htab_t params_index)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp;if (!stmt)
&lt;br&gt;diff --git a/gcc/sese.c b/gcc/sese.c
&lt;br&gt;index 2c03393..4450a11 100644
&lt;br&gt;--- a/gcc/sese.c
&lt;br&gt;+++ b/gcc/sese.c
&lt;br&gt;@@ -874,7 +874,20 @@ expand_scalar_variables_expr (tree type, tree op0, enum tree_code code,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return expand_scalar_variables_ssa_name (op0, bb, region, map, gsi);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;if (code == ADDR_EXPR)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return op0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;tree op00 = TREE_OPERAND (op0, 0);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (handled_component_p (op00)
&lt;br&gt;+	 &amp;nbsp;&amp;&amp; TREE_CODE (op00) == ARRAY_REF)
&lt;br&gt;+	{
&lt;br&gt;+	 &amp;nbsp;tree e = expand_scalar_variables_expr (TREE_TYPE (op00), op00,
&lt;br&gt;+						 TREE_CODE (op00),
&lt;br&gt;+						 NULL, bb, region, map, gsi);
&lt;br&gt;+	 &amp;nbsp;return fold_build1 (code, TREE_TYPE (op0), e);
&lt;br&gt;+	}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return op0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;gcc_unreachable ();
&lt;br&gt;&amp;nbsp; &amp;nbsp;return NULL;
&lt;br&gt;diff --git a/gcc/testsuite/gcc.dg/graphite/pr42221.c b/gcc/testsuite/gcc.dg/graphite/pr42221.c
&lt;br&gt;new file mode 100644
&lt;br&gt;index 0000000..da8daa1
&lt;br&gt;--- /dev/null
&lt;br&gt;+++ b/gcc/testsuite/gcc.dg/graphite/pr42221.c
&lt;br&gt;@@ -0,0 +1,24 @@
&lt;br&gt;+/* { dg-options &amp;quot;-Os -fgraphite-identity&amp;quot; } */
&lt;br&gt;+
&lt;br&gt;+static void b2w(unsigned int *out, const unsigned char *in, unsigned int len)
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp;const unsigned char *bpend = in + len;
&lt;br&gt;+ &amp;nbsp;for (; in != bpend; in += 4, ++out)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;*out = (unsigned int) (in[0] ) |
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(unsigned int) (in[3] &amp;lt;&amp;lt; 24);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;+static void md4step(unsigned int state[4], const unsigned char *data)
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp;unsigned int A, X[16];
&lt;br&gt;+ &amp;nbsp;b2w(X, data, 64);
&lt;br&gt;+ &amp;nbsp;state[0] += A;
&lt;br&gt;+}
&lt;br&gt;+void md4sum(void)
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp;unsigned char final[128];
&lt;br&gt;+ &amp;nbsp;unsigned int state[4];
&lt;br&gt;+ &amp;nbsp;md4step(state, final);
&lt;br&gt;+ &amp;nbsp;md4step(state, final + 64);
&lt;br&gt;+}
&lt;br&gt;-- 
&lt;br&gt;1.6.0.4
&lt;br&gt;&lt;br&gt;&lt;/tt&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;br /&gt;&lt;tt&gt;[0002-Fix-PR42205.patch]&lt;/tt&gt;&lt;br /&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;tt&gt;From 99bec941a113ff91465defb98ce11ff0bc549d86 Mon Sep 17 00:00:00 2001
&lt;br&gt;From: Sebastian Pop &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839604&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebpop@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Date: Thu, 17 Dec 2009 23:56:59 -0600
&lt;br&gt;Subject: [PATCH] Fix PR42205.
&lt;br&gt;&lt;br&gt;2009-12-17 &amp;nbsp;Sebastian Pop &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839604&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.pop@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR middle-end/42205
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * graphite-sese-to-poly.c (translate_scalar_reduction_to_array_for_stmt):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Insert the reduction copy in the same block as the phi node.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (follow_ssa_with_commutative_ops): Handle GIMPLE_NOPs.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * testsuite/gcc.dg/graphite/pr42205-1.c: New.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * testsuite/gcc.dg/graphite/pr42205-2.c: New.
&lt;br&gt;---
&lt;br&gt;&amp;nbsp;gcc/ChangeLog.graphite &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; 10 ++++++++++
&lt;br&gt;&amp;nbsp;gcc/graphite-sese-to-poly.c &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp;7 +++++--
&lt;br&gt;&amp;nbsp;gcc/testsuite/gcc.dg/graphite/pr42205-1.c | &amp;nbsp; 17 +++++++++++++++++
&lt;br&gt;&amp;nbsp;gcc/testsuite/gcc.dg/graphite/pr42205-2.c | &amp;nbsp; 11 +++++++++++
&lt;br&gt;&amp;nbsp;4 files changed, 43 insertions(+), 2 deletions(-)
&lt;br&gt;&amp;nbsp;create mode 100644 gcc/testsuite/gcc.dg/graphite/pr42205-1.c
&lt;br&gt;&amp;nbsp;create mode 100644 gcc/testsuite/gcc.dg/graphite/pr42205-2.c
&lt;br&gt;&lt;br&gt;diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
&lt;br&gt;index 33d3579..1f527a1 100644
&lt;br&gt;--- a/gcc/ChangeLog.graphite
&lt;br&gt;+++ b/gcc/ChangeLog.graphite
&lt;br&gt;@@ -1,5 +1,15 @@
&lt;br&gt;&amp;nbsp;2009-12-17 &amp;nbsp;Sebastian Pop &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839604&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.pop@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+	PR middle-end/42205
&lt;br&gt;+	* graphite-sese-to-poly.c (translate_scalar_reduction_to_array_for_stmt):
&lt;br&gt;+	Insert the reduction copy in the same block as the phi node.
&lt;br&gt;+	(follow_ssa_with_commutative_ops): Handle GIMPLE_NOPs.
&lt;br&gt;+
&lt;br&gt;+	* testsuite/gcc.dg/graphite/pr42205-1.c: New.
&lt;br&gt;+	* testsuite/gcc.dg/graphite/pr42205-2.c: New.
&lt;br&gt;+
&lt;br&gt;+2009-12-17 &amp;nbsp;Sebastian Pop &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839604&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sebastian.pop@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;	PR middle-end/42221
&lt;br&gt;&amp;nbsp;	* sese.c (expand_scalar_variables_expr): Follow the SSA links into
&lt;br&gt;&amp;nbsp;	the array indexing of ADDR_EXPRs.
&lt;br&gt;diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
&lt;br&gt;index 1eb0696..f921da9 100644
&lt;br&gt;--- a/gcc/graphite-sese-to-poly.c
&lt;br&gt;+++ b/gcc/graphite-sese-to-poly.c
&lt;br&gt;@@ -2493,6 +2493,9 @@ follow_ssa_with_commutative_ops (tree arg, tree lhs)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;stmt = SSA_NAME_DEF_STMT (arg);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;if (gimple_code (stmt) == GIMPLE_NOP)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return NULL;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp;if (gimple_code (stmt) == GIMPLE_PHI)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (phi_contains_arg (stmt, lhs))
&lt;br&gt;@@ -2666,13 +2669,13 @@ static void
&lt;br&gt;&amp;nbsp;translate_scalar_reduction_to_array_for_stmt (tree red, gimple stmt,
&lt;br&gt;&amp;nbsp;					 &amp;nbsp; &amp;nbsp; &amp;nbsp;gimple loop_phi)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp;basic_block bb = gimple_bb (stmt);
&lt;br&gt;- &amp;nbsp;gimple_stmt_iterator insert_gsi = gsi_after_labels (bb);
&lt;br&gt;+ &amp;nbsp;gimple_stmt_iterator insert_gsi = gsi_after_labels (gimple_bb (loop_phi));
&lt;br&gt;&amp;nbsp; &amp;nbsp;tree res = gimple_phi_result (loop_phi);
&lt;br&gt;&amp;nbsp; &amp;nbsp;gimple assign = gimple_build_assign (res, red);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;gsi_insert_before (&amp;insert_gsi, assign, GSI_SAME_STMT);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;insert_gsi = gsi_after_labels (gimple_bb (stmt));
&lt;br&gt;&amp;nbsp; &amp;nbsp;assign = gimple_build_assign (red, gimple_assign_lhs (stmt));
&lt;br&gt;&amp;nbsp; &amp;nbsp;insert_gsi = gsi_for_stmt (stmt);
&lt;br&gt;&amp;nbsp; &amp;nbsp;gsi_insert_after (&amp;insert_gsi, assign, GSI_SAME_STMT);
&lt;br&gt;diff --git a/gcc/testsuite/gcc.dg/graphite/pr42205-1.c b/gcc/testsuite/gcc.dg/graphite/pr42205-1.c
&lt;br&gt;new file mode 100644
&lt;br&gt;index 0000000..413b9f7
&lt;br&gt;--- /dev/null
&lt;br&gt;+++ b/gcc/testsuite/gcc.dg/graphite/pr42205-1.c
&lt;br&gt;@@ -0,0 +1,17 @@
&lt;br&gt;+/* { dg-options &amp;quot;-O1 -ffast-math -floop-interchange&amp;quot; } */
&lt;br&gt;+
&lt;br&gt;+int adler32(int adler, char *buf, int n)
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp;int sum = 0;
&lt;br&gt;+ &amp;nbsp;do {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; adler += buf[0];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; sum += adler;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; adler += buf[1];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; sum += adler;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; adler += buf[2];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; sum += adler;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; adler += buf[3];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; sum += adler;
&lt;br&gt;+ &amp;nbsp;} while (--n);
&lt;br&gt;+ &amp;nbsp;return adler | (sum &amp;lt;&amp;lt; 16);
&lt;br&gt;+}
&lt;br&gt;diff --git a/gcc/testsuite/gcc.dg/graphite/pr42205-2.c b/gcc/testsuite/gcc.dg/graphite/pr42205-2.c
&lt;br&gt;new file mode 100644
&lt;br&gt;index 0000000..595cedb
&lt;br&gt;--- /dev/null
&lt;br&gt;+++ b/gcc/testsuite/gcc.dg/graphite/pr42205-2.c
&lt;br&gt;@@ -0,0 +1,11 @@
&lt;br&gt;+/* { dg-options &amp;quot;-O1 -funsafe-math-optimizations -floop-interchange&amp;quot; } */
&lt;br&gt;+
&lt;br&gt;+double f(double x)
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp;double y = 0.0;
&lt;br&gt;+ &amp;nbsp;int i;
&lt;br&gt;+ &amp;nbsp;for (i = 0; i &amp;lt; 8; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;y += x * i;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;return y;
&lt;br&gt;+}
&lt;br&gt;-- 
&lt;br&gt;1.6.0.4
&lt;br&gt;&lt;br&gt;&lt;/tt&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-patch--graphite--Fix-PR42221-and-PR42205-tp26839604p26839604.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26838557</id>
	<title>Re: [PATCH] GCC symdb</title>
	<published>2009-12-17T19:16:48Z</published>
	<updated>2009-12-17T19:16:48Z</updated>
	<author>
		<name>yunfeng zhang</name>
	</author>
	<content type="html">&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Gcc symbol database (symdb)
&lt;br&gt;&lt;br&gt;The patch is used to collect gcc internal data (cpp token, tree node etc.) and
&lt;br&gt;outputting them into database for further usage.
&lt;br&gt;&lt;br&gt;Untar the attachment, go symdb.txt for more. The patch is applied to recent
&lt;br&gt;gcc 4.5 trunk.
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;symdb.tbz&lt;/strong&gt; (35K) &lt;a href=&quot;http://old.nabble.com/attachment/26838557/0/symdb.tbz&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-PATCH--GCC-symdb-tp26489408p26838557.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26836374</id>
	<title>PATCH PING, objc: silence unused warning</title>
	<published>2009-12-17T14:46:45Z</published>
	<updated>2009-12-17T14:46:45Z</updated>
	<author>
		<name>Ben Elliston</name>
	</author>
	<content type="html">Ping?
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://gcc.gnu.org/ml/gcc-patches/2009-12/msg00687.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/ml/gcc-patches/2009-12/msg00687.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Ben
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/PATCH-PING%2C-objc%3A-silence-unused-warning-tp26836374p26836374.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26835755</id>
	<title>Re: [PATCH] Use DW_OP_addr for constant addresses in debuginfo (take  2)</title>
	<published>2009-12-17T14:01:39Z</published>
	<updated>2009-12-17T14:01:39Z</updated>
	<author>
		<name>Jason Merrill</name>
	</author>
	<content type="html">OK.
&lt;br&gt;&lt;br&gt;Jason
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-PATCH--Use-DW_OP_addr-for-constant-addresses-in-debuginfo-tp26785634p26835755.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26835202</id>
	<title>[patch, testsuite] refers PR42348</title>
	<published>2009-12-17T13:22:56Z</published>
	<updated>2009-12-17T13:22:56Z</updated>
	<author>
		<name>IainS</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;The problem reported in PR42348 revealed several underlying problems:
&lt;br&gt;&lt;br&gt;1/ that target supports are non-functional for ObjC/C++ when the &amp;nbsp;
&lt;br&gt;runtime flags are used (e.g. -fgnu-runtime).
&lt;br&gt;This is because those flags cause a warning from cc1 or cc1plus.
&lt;br&gt;&lt;br&gt;This patch resolves this by changing the file suffix to .m or .mm when &amp;nbsp;
&lt;br&gt;the tool under test is ObjC or ObjC++ respectively.
&lt;br&gt;&lt;br&gt;2/ there is no support for detection of whether a target can support &amp;nbsp;
&lt;br&gt;OBJC2 or NeXT runtime.,
&lt;br&gt;The patch adds &amp;nbsp;support for detection of __OBJC2__ and next_runtime &amp;nbsp;
&lt;br&gt;which are needed if we are to tidy up the number of failing ObjC/C++ &amp;nbsp;
&lt;br&gt;tests.
&lt;br&gt;&lt;br&gt;3/ The tests for the gnu-runtime library usage are failing in &amp;nbsp;
&lt;br&gt;testsuite/lib/objc.exp and obj-c++.exp.
&lt;br&gt;&amp;nbsp; [they only detect if -fgnu-runtime is placed in the dg-options, &amp;nbsp;
&lt;br&gt;rather than also checking the multilib options].
&lt;br&gt;&lt;br&gt;the patch modifies gcc/testsuite/lib/objc.exp and gcc/testsuite/lib/ 
&lt;br&gt;obj-c++.exp to detect the runtime in force after all the options are &amp;nbsp;
&lt;br&gt;processed.
&lt;br&gt;&lt;br&gt;with these patches a more controlled skip-if can be applied [example &amp;nbsp;
&lt;br&gt;in the PR]
&lt;br&gt;(which should enable a lot of cleaning up of spurious fails for &amp;nbsp;
&lt;br&gt;darwin9/10).
&lt;br&gt;&lt;br&gt;cheers,
&lt;br&gt;Iain
&lt;br&gt;&lt;br&gt;2009-12-17 Iain Sandoe &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26835202&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;iain.sandoe@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR testsuite/42348
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *gcc/testsuite/lib/target-supports.exp: Add support for ObjC and ObjC+ 
&lt;br&gt;+ tools in standard tests,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (check_effective_target_objc2) New proc.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (check_effective_target_next_runtime) New proc.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *gcc/testsuite/lib/objc.exp: Walk through the gnu/next runtime flags &amp;nbsp;
&lt;br&gt;to determine which is actually in force, attach the appropriate &amp;nbsp;
&lt;br&gt;includes accordingly.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *gcc/testsuite/lib/obj-c++.exp: Ditto
&lt;br&gt;&lt;br&gt;===
&lt;br&gt;&lt;br /&gt;Index: gcc/testsuite/lib/target-supports.exp
&lt;br&gt;===================================================================
&lt;br&gt;--- gcc/testsuite/lib/target-supports.exp	(revision 155320)
&lt;br&gt;+++ gcc/testsuite/lib/target-supports.exp	(working copy)
&lt;br&gt;@@ -29,10 +29,17 @@
&lt;br&gt;&amp;nbsp;# If ARGS is not empty, its first element is a string that
&lt;br&gt;&amp;nbsp;# should be added to the command line.
&lt;br&gt;&amp;nbsp;#
&lt;br&gt;-# Assume by default that CONTENTS is C code. &amp;nbsp;C++ code should contain
&lt;br&gt;-# &amp;quot;// C++&amp;quot; and Fortran code should contain &amp;quot;! Fortran&amp;quot;.
&lt;br&gt;+# Assume by default that CONTENTS is C code. &amp;nbsp;
&lt;br&gt;+# Otherwise, code should contain:
&lt;br&gt;+# &amp;quot;// C++&amp;quot; for c++,
&lt;br&gt;+# &amp;quot;! Fortran&amp;quot; for Fortran code,
&lt;br&gt;+# &amp;quot;/* ObjC&amp;quot;, for ObjC
&lt;br&gt;+# and &amp;quot;// ObjC++&amp;quot; for ObjC++
&lt;br&gt;+# if the tool is ObjC/ObjC++ then we overide the extension to .m, .mm to allow for ObjC/ObjC++ 
&lt;br&gt;+# specific flags.
&lt;br&gt;&amp;nbsp;proc check_compile {basename type contents args} {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global tool
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;verbose &amp;quot;check_compile tool: $tool for $basename&amp;quot; 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { [llength $args] &amp;gt; 0 } {
&lt;br&gt;&amp;nbsp;	set options [list &amp;quot;additional_flags=[lindex $args 0]&amp;quot;]
&lt;br&gt;@@ -42,8 +49,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;switch -glob -- $contents {
&lt;br&gt;&amp;nbsp;	&amp;quot;*! Fortran*&amp;quot; { set src ${basename}[pid].f90 }
&lt;br&gt;&amp;nbsp;	&amp;quot;*// C++*&amp;quot; { set src ${basename}[pid].cc }
&lt;br&gt;-	default { set src ${basename}[pid].c }
&lt;br&gt;+	&amp;quot;*// ObjC++*&amp;quot; { set src ${basename}[pid].mm }
&lt;br&gt;+	&amp;quot;*/* ObjC*&amp;quot; { set src ${basename}[pid].m }
&lt;br&gt;+	default {
&lt;br&gt;+	 &amp;nbsp;switch -- $tool {
&lt;br&gt;+	 &amp;nbsp;&amp;quot;objc&amp;quot; { set src ${basename}[pid].m }
&lt;br&gt;+	 &amp;nbsp;&amp;quot;obj-c++&amp;quot; { set src ${basename}[pid].mm }
&lt;br&gt;+	 &amp;nbsp;default { set src ${basename}[pid].c }
&lt;br&gt;+	 &amp;nbsp;}
&lt;br&gt;+	 &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set compile_type $type
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;switch -glob $type {
&lt;br&gt;&amp;nbsp;	assembly { set output ${basename}[pid].s }
&lt;br&gt;@@ -1188,7 +1204,26 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}]
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+proc check_effective_target_objc2 { } {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return [check_no_compiler_messages objc2 object {
&lt;br&gt;+	#ifdef __OBJC2__
&lt;br&gt;+	int dummy[1];
&lt;br&gt;+	#else
&lt;br&gt;+	#fail
&lt;br&gt;+	#endif 
&lt;br&gt;+	}]
&lt;br&gt;+}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+proc check_effective_target_next_runtime { } {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return [check_no_compiler_messages objc2 object {
&lt;br&gt;+	#ifdef __NEXT_RUNTIME__
&lt;br&gt;+	int dummy[1];
&lt;br&gt;+	#else
&lt;br&gt;+	#fail
&lt;br&gt;+	#endif 
&lt;br&gt;+	}]
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;# Return 1 if we're generating 32-bit code using default options, 0
&lt;br&gt;&amp;nbsp;# otherwise.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;Index: gcc/testsuite/lib/objc.exp
&lt;br&gt;===================================================================
&lt;br&gt;--- gcc/testsuite/lib/objc.exp	(revision 155320)
&lt;br&gt;+++ gcc/testsuite/lib/objc.exp	(working copy)
&lt;br&gt;@@ -141,10 +141,46 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global ld_library_path
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global objc_libgcc_s_path
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global shlib_ext
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;set shlib_ext [get_shlib_extension]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;set ld_library_path &amp;quot;.:${objc_libgcc_s_path}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# we have to figure out which runtime will be used on darwin - because we
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# need to add the include path for the gnu runtime if that is in effect.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# first set the default...
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if { [istarget &amp;quot;*-*-darwin*&amp;quot;] } {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;set nextruntime 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;set nextruntime 0
&lt;br&gt;+	}
&lt;br&gt;+	verbose &amp;quot;initial next runtime state : $nextruntime&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# next see if we define the option in dg-options...
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;foreach opt $options {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	if [regexp &amp;quot;.*-fnext-runtime.*&amp;quot; $opt] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 		set nextruntime 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	if [regexp &amp;quot;.*-fgnu-runtime.*&amp;quot; $opt] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 		set nextruntime 0
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ 	verbose &amp;quot;next runtime state after dg opts: $nextruntime&amp;quot; 
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;set tgt [target_info name]
&lt;br&gt;+	if [board_info $tgt exists multilib_flags] {
&lt;br&gt;+	set lb [board_info $tgt multilib_flags]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;verbose &amp;quot;board multilib_flags $lb&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;foreach opt $lb {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	if [regexp &amp;quot;.*-fnext-runtime.*&amp;quot; $opt] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 		set nextruntime 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	if [regexp &amp;quot;.*-fgnu-runtime.*&amp;quot; $opt] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 		set nextruntime 0
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+	}
&lt;br&gt;+	verbose &amp;quot;next runtime state after any multilib opts: $nextruntime&amp;quot; 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;set ld_library_path &amp;quot;.:${objc_libgcc_s_path}&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;lappend options &amp;quot;libs=-lobjc&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;set shlib_ext [get_shlib_extension]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;verbose &amp;quot;shared lib extension: $shlib_ext&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { [target_info needs_status_wrapper]!=&amp;quot;&amp;quot; &amp;&amp; [info exists gluefile] } {
&lt;br&gt;@@ -167,37 +203,38 @@
&lt;br&gt;&amp;nbsp;	set options [concat &amp;quot;{additional_flags=$TOOL_OPTIONS}&amp;quot; $options]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;# If we have built libobjc along with the compiler (which usually
&lt;br&gt;- &amp;nbsp; &amp;nbsp;# _is not_ the case on Mac OS X systems), point the test harness
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# If we have built libobjc along with the compiler, point the test harness
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# at it (and associated headers).
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set objcpath &amp;quot;[get_multilibs]&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.a]
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;verbose &amp;quot;see if we have -fgnu-runtime in options&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if [regexp &amp;quot;.*-fgnu-runtime.*&amp;quot; &amp;quot;${options}&amp;quot;] {
&lt;br&gt;-	set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;# Now check if we have a shared only build.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; set libobjc_dir \
&lt;br&gt;-	 [lookfor_file ${objcpath} libobjc/.libs/libobjc.${shlib_ext}]
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;-	verbose &amp;quot;see if we have -fgnu-runtime in options&amp;quot;
&lt;br&gt;-	if [regexp &amp;quot;.*-fgnu-runtime.*&amp;quot; &amp;quot;${options}&amp;quot;] {
&lt;br&gt;-	 set libobjc_dir \
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.${shlib_ext}]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot; } {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;# on darwin there is a gnu runtime too.
&lt;br&gt;+	 &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;+	# perhaps we didn't build static libs
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot; } {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.${shlib_ext}]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;# on darwin there is a gnu runtime too.
&lt;br&gt;+	 &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot; } {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.${shlib_ext}]
&lt;br&gt;+	 &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir != &amp;quot;&amp;quot; } {
&lt;br&gt;-	set objc_include_dir &amp;quot;${srcdir}/../../libobjc&amp;quot;
&lt;br&gt;-	lappend options &amp;quot;additional_flags=-I${objc_include_dir}&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;# if we are using the gnu runtime - add its includes
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if { $nextruntime == 0 } {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;set objc_include_dir &amp;quot;${srcdir}/../../libobjc&amp;quot;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;lappend options &amp;quot;additional_flags=-I${objc_include_dir}&amp;quot;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;verbose &amp;quot;adding gnu runtime include dir: $objc_include_dir &amp;quot;
&lt;br&gt;+	 &amp;nbsp;}
&lt;br&gt;&amp;nbsp;	set libobjc_dir [file dirname ${libobjc_dir}]
&lt;br&gt;-	set objc_link_flags &amp;quot;-L${libobjc_dir}&amp;quot;
&lt;br&gt;+	# allow for %s spec substitutions..
&lt;br&gt;+	set objc_link_flags &amp;quot; -B${libobjc_dir} &amp;quot;
&lt;br&gt;&amp;nbsp;	lappend options &amp;quot;additional_flags=${objc_link_flags}&amp;quot;
&lt;br&gt;+	set objc_link_flags &amp;quot; -L${libobjc_dir} &amp;quot;
&lt;br&gt;+	lappend options &amp;quot;additional_flags=${objc_link_flags}&amp;quot;
&lt;br&gt;&amp;nbsp;	append ld_library_path &amp;quot;:${libobjc_dir}&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { $type == &amp;quot;precompiled_header&amp;quot; } {
&lt;br&gt;Index: gcc/testsuite/lib/obj-c++.exp
&lt;br&gt;===================================================================
&lt;br&gt;--- gcc/testsuite/lib/obj-c++.exp	(revision 155320)
&lt;br&gt;+++ gcc/testsuite/lib/obj-c++.exp	(working copy)
&lt;br&gt;@@ -115,50 +115,54 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append ld_library_path &amp;quot;:${gccpath}/lib&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if [file exists &amp;quot;${gccpath}/libg++/libg++.a&amp;quot;] {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot;-L${gccpath}/libg++ &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot; -L${gccpath}/libg++ &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append ld_library_path &amp;quot;:${gccpath}/libg++&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if [file exists &amp;quot;${gccpath}/libstdc++/libstdc++.a&amp;quot;] {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot;-L${gccpath}/libstdc++ &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot; -L${gccpath}/libstdc++ &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append ld_library_path &amp;quot;:${gccpath}/libstdc++&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if [file exists &amp;quot;${gccpath}/libstdc++-v3/src/.libs/libstdc++.a&amp;quot;] {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot; -L${gccpath}/libstdc++-v3/src/.libs &amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append ld_library_path &amp;quot;:${gccpath}/libstdc++-v3/src/.libs&amp;quot;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;# allow for %s spec substitutions
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;append flags &amp;quot; -B${gccpath}/libstdc++-v3/src/.libs &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot; -L${gccpath}/libstdc++-v3/src/.libs &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append ld_library_path &amp;quot;:${gccpath}/libstdc++-v3/src/.libs&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# Look for libstdc++.${shlib_ext}.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if [file exists &amp;quot;${gccpath}/libstdc++-v3/src/.libs/libstdc++.${shlib_ext}&amp;quot;] {
&lt;br&gt;+	 &amp;nbsp;# allow for %s spec substitutions
&lt;br&gt;+	 &amp;nbsp;append flags &amp;quot; -B${gccpath}/libstdc++-v3/src/.libs &amp;quot;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;append flags &amp;quot; -L${gccpath}/libstdc++-v3/src/.libs &amp;quot;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;append ld_library_path &amp;quot;:${gccpath}/libstdc++-v3/src/.libs&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if [file exists &amp;quot;${gccpath}/libiberty/libiberty.a&amp;quot;] {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot;-L${gccpath}/libiberty &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot; -L${gccpath}/libiberty &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if [file exists &amp;quot;${gccpath}/librx/librx.a&amp;quot;] {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot;-L${gccpath}/librx &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot; -L${gccpath}/librx &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set objcpath &amp;quot;[get_multilibs]&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.a]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;-	 &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# Now check if we have a shared only build.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;-	 &amp;nbsp;set libobjc_dir \
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp;[lookfor_file ${objcpath} libobjc/.libs/libobjc.${shlib_ext}]
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;-	 &amp;nbsp;set libobjc_dir \
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp;[lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.${shlib_ext}]
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.${shlib_ext}]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.${shlib_ext}]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;verbose &amp;quot;libobjc_dir: $libobjc_dir&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir != &amp;quot;&amp;quot; } {
&lt;br&gt;-	 &amp;nbsp;set libobjc_dir [file dirname ${libobjc_dir}]
&lt;br&gt;-	 &amp;nbsp;append flags &amp;quot;-L${libobjc_dir}&amp;quot;
&lt;br&gt;-	 &amp;nbsp;append ld_library_path &amp;quot;:${libobjc_dir}&amp;quot;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;set libobjc_dir [file dirname ${libobjc_dir}]
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;# allow for %s spec substitutions
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;append flags &amp;quot; -B${libobjc_dir} &amp;quot;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;append flags &amp;quot; -L${libobjc_dir} &amp;quot;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;append ld_library_path &amp;quot;:${libobjc_dir}&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append ld_library_path \
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;[gcc-set-multilib-library-path $OBJCXX_UNDER_TEST]
&lt;br&gt;@@ -284,43 +288,73 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global OBJCXX_UNDER_TEST
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global shlib_ext
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;lappend options &amp;quot;libs=-lobjc&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set shlib_ext [get_shlib_extension]
&lt;br&gt;- &amp;nbsp; &amp;nbsp;verbose &amp;quot;shared lib extension: $shlib_ext&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;verbose &amp;quot;input-options: $options&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# we have to figure out which runtime will be used on darwin - because we
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# need to add the include path for the gnu runtime if that is in effect.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# first set the default...
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if { [istarget &amp;quot;*-*-darwin*&amp;quot;] } {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;set nextruntime 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;set nextruntime 0
&lt;br&gt;+	}
&lt;br&gt;+	verbose &amp;quot;initial next runtime state : $nextruntime&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# next see if we define the option in dg-options...
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;foreach opt $options {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	if [regexp &amp;quot;.*-fnext-runtime.*&amp;quot; $opt] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 		set nextruntime 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	if [regexp &amp;quot;.*-fgnu-runtime.*&amp;quot; $opt] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 		set nextruntime 0
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ 	verbose &amp;quot;next runtime state after dg opts: $nextruntime&amp;quot; 
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;set tgt [target_info name]
&lt;br&gt;+	if [board_info $tgt exists multilib_flags] {
&lt;br&gt;+	set lb [board_info $tgt multilib_flags]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;verbose &amp;quot;board multilib_flags $lb&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;foreach opt $lb {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	if [regexp &amp;quot;.*-fnext-runtime.*&amp;quot; $opt] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 		set nextruntime 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	if [regexp &amp;quot;.*-fgnu-runtime.*&amp;quot; $opt] {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 		set nextruntime 0
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+	}
&lt;br&gt;+	verbose &amp;quot;next runtime state after any multilib opts: $nextruntime&amp;quot; 
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;lappend options &amp;quot;libs=-lobjc&amp;quot;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { [target_info needs_status_wrapper] != &amp;quot;&amp;quot; &amp;&amp; [info exists gluefile] } {
&lt;br&gt;&amp;nbsp;	lappend options &amp;quot;libs=${gluefile}&amp;quot;
&lt;br&gt;&amp;nbsp;	lappend options &amp;quot;ldflags=${wrap_flags}&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;# If we have built libobjc along with the compiler (which usually
&lt;br&gt;- &amp;nbsp; &amp;nbsp;# _is not_ the case on Mac OS X systems), point the test harness
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# If we have built libobjc along with the compiler, point the test harness
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# at it (and associated headers).
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set objcpath &amp;quot;[get_multilibs]&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.a]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;verbose &amp;quot;see if we have -fgnu-runtime in options&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if [regexp &amp;quot;.*-fgnu-runtime.*&amp;quot; &amp;quot;${options}&amp;quot; ] {
&lt;br&gt;-	 &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;-	set libobjc_dir \
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;[lookfor_file ${objcpath} libobjc/.libs/libobjc.${shlib_ext}]
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;-	verbose &amp;quot;see if we have -fgnu-runtime in options&amp;quot;
&lt;br&gt;-	if [regexp &amp;quot;.*-fgnu-runtime.*&amp;quot; &amp;quot;${options}&amp;quot;] {
&lt;br&gt;-	 set libobjc_dir \
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.${shlib_ext}]
&lt;br&gt;+	 &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.${shlib_ext}]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir == &amp;quot;&amp;quot;} {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.${shlib_ext}]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { $libobjc_dir != &amp;quot;&amp;quot; } {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;# if we are using the gnu runtime - add its includes
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if { $nextruntime == 0 } {
&lt;br&gt;&amp;nbsp;	set objc_include_dir &amp;quot;${srcdir}/../../libobjc&amp;quot;
&lt;br&gt;&amp;nbsp;	lappend options &amp;quot;additional_flags=-I${objc_include_dir}&amp;quot;
&lt;br&gt;+	 &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;lappend options &amp;quot;additional_flags=[libio_include_flags]&amp;quot;
&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-patch%2C-testsuite--refers-PR42348-tp26835202p26835202.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26834965</id>
	<title>Re: [PATCH c/40885] Fix build_indirect_ref i18n problems.</title>
	<published>2009-12-17T13:07:37Z</published>
	<updated>2009-12-17T13:07:37Z</updated>
	<author>
		<name>David Edelsohn-3</name>
	</author>
	<content type="html">On Thu, Dec 17, 2009 at 6:43 AM, Shujing Zhao &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26834965&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pearly.zhao@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; Hi David and all,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In order to avoid more error report for my old commit r155304. I have
&lt;br&gt;&amp;gt; committed this trivial patch. It is only make RO_NULL is known to that file.
&lt;br&gt;&lt;br&gt;Okay.
&lt;br&gt;&lt;br&gt;Thanks, David
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-PATCH-c-40885--Fix-build_indirect_ref-i18n-problems.-tp26790125p26834965.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26834718</id>
	<title>[patch, target] fix PR41605</title>
	<published>2009-12-17T12:48:24Z</published>
	<updated>2009-12-17T12:48:24Z</updated>
	<author>
		<name>IainS</name>
	</author>
	<content type="html">Hello,
&lt;br&gt;&lt;br&gt;This patch is approved in the PR thread by Mike Stump - subject to a &amp;nbsp;
&lt;br&gt;review of the testsuite changes by Janis.
&lt;br&gt;&lt;br&gt;cheers,
&lt;br&gt;Iain
&lt;br&gt;&lt;br&gt;&lt;br&gt;2009-12-17 Iain Sandoe &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26834718&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;iain.sandoe@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR target/41605
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *gcc/config/darwin.h(LINK_COMMAND_SPEC): Resolve fopenmp specifically &amp;nbsp;
&lt;br&gt;for target
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(LINK_SPEC): replace dynamic libraries by static equivalents where &amp;nbsp;
&lt;br&gt;necessary
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *gcc/config/darwin9.h(LINK_COMMAND_SPEC): Resolve fopenmp &amp;nbsp;
&lt;br&gt;specifically for target
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;Index: gcc/config/darwin.h
&lt;br&gt;===================================================================
&lt;br&gt;--- gcc/config/darwin.h	(revision 155320)
&lt;br&gt;+++ gcc/config/darwin.h	(working copy)
&lt;br&gt;@@ -272,9 +272,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{A} %{e*} %{m} %{r} %{x} \
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{o*}%{!o:-o a.out} \
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{!A:%{!nostdlib:%{!nostartfiles:%S}}} \
&lt;br&gt;- &amp;nbsp; &amp;nbsp;%{L*} %{fopenmp:%:include(libgomp.spec)%(link_gomp)} &amp;nbsp; \
&lt;br&gt;- &amp;nbsp; &amp;nbsp;%(link_libgcc) %o %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \
&lt;br&gt;- &amp;nbsp; &amp;nbsp;%{!nostdlib:%{!nodefaultlibs:%(link_ssp) %G %L}} \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;%{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate|coverage:-lgcov} \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;%{fopenmp|ftree-parallelize-loops=*: \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;%{static|static-libgcc|static-libstdc++|static-libgfortran: libgomp.a%s; : -lgomp } } \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;%{!nostdlib:%{!nodefaultlibs: %(link_ssp) %G %L }} \
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}\n\
&lt;br&gt;&amp;nbsp;%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \
&lt;br&gt;@@ -293,8 +294,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; so put a * after their names so all of them get passed. &amp;nbsp;*/
&lt;br&gt;&amp;nbsp;#define LINK_SPEC &amp;nbsp;\
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;quot;%{static}%{!static:-dynamic} \
&lt;br&gt;- &amp;nbsp; %{fgnu-runtime:%:replace-outfile(-lobjc -lobjc-gnu)}\
&lt;br&gt;- &amp;nbsp; %{static|static-libgfortran:%:replace-outfile(-lgfortran libgfortran.a%s)}\
&lt;br&gt;+ &amp;nbsp; %{fgnu-runtime: %{static|static-libgcc: \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %:replace-outfile(-lobjc libobjc-gnu.a%s); \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:%:replace-outfile(-lobjc -lobjc-gnu ) } }\
&lt;br&gt;+ &amp;nbsp; %{static|static-libgcc|static-libgfortran:%:replace-outfile(-lgfortran libgfortran.a%s)}\
&lt;br&gt;+ &amp;nbsp; %{static|static-libgcc|static-libstdc++|static-libgfortran:%:replace-outfile(-lgomp libgomp.a%s)}\
&lt;br&gt;+ &amp;nbsp; %{static|static-libgcc|static-libstdc++:%:replace-outfile(-lstdc++ libstdc++.a%s)}\
&lt;br&gt;&amp;nbsp; &amp;nbsp; %{!Zdynamiclib: \
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; %{Zforce_cpusubtype_ALL:-arch %(darwin_arch) -force_cpusubtype_ALL} \
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; %{!Zforce_cpusubtype_ALL:-arch %(darwin_subarch)} \
&lt;br&gt;Index: gcc/config/darwin9.h
&lt;br&gt;===================================================================
&lt;br&gt;--- gcc/config/darwin9.h	(revision 155320)
&lt;br&gt;+++ gcc/config/darwin9.h	(working copy)
&lt;br&gt;@@ -31,9 +31,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{A} %{e*} %{m} %{r} %{x} \
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{o*}%{!o:-o a.out} \
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{!A:%{!nostdlib:%{!nostartfiles:%S}}} \
&lt;br&gt;- &amp;nbsp; &amp;nbsp;%{L*} %{fopenmp:%:include(libgomp.spec)%(link_gomp)} &amp;nbsp; \
&lt;br&gt;- &amp;nbsp; &amp;nbsp;%(link_libgcc) %o %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \
&lt;br&gt;- &amp;nbsp; &amp;nbsp;%{!nostdlib:%{!nodefaultlibs:%(link_ssp) %G %L}} \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;%{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate|coverage:-lgcov} \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;%{fopenmp|ftree-parallelize-loops=*: \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;%{static|static-libgcc|static-libstdc++|static-libgfortran: libgomp.a%s; : -lgomp } } \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;%{!nostdlib:%{!nodefaultlibs: &amp;nbsp;%(link_ssp) %G %L }} \
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}\n\
&lt;br&gt;&amp;nbsp;%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;%{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \
&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *gcc/testsuite/lib/g++.exp: Provide -B options to allow for link spec &amp;nbsp;
&lt;br&gt;%s substitutions for static libraries.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *libstdc++-v3/testsuite/libstdc++-abi/abi.exp: Ditto
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *libstdc++-v3/testsuite/lib/libstdc++.exp: Ditto
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *libgomp/testsuite/lib/libgomp.exp: Ditto
&lt;br&gt;&lt;br&gt;&lt;br /&gt;Index: gcc/testsuite/lib/g++.exp
&lt;br&gt;===================================================================
&lt;br&gt;--- gcc/testsuite/lib/g++.exp	(revision 155320)
&lt;br&gt;+++ gcc/testsuite/lib/g++.exp	(working copy)
&lt;br&gt;@@ -125,6 +125,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if [file exists &amp;quot;${gccpath}/libstdc++-v3/src/.libs/libstdc++.a&amp;quot;] {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot; -L${gccpath}/libstdc++-v3/src/.libs &amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# Some targets use libstdc++.a%s in their specs, so they need a -B option
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# for uninstalled testing.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append flags &amp;quot; -B${gccpath}/libstdc++-v3/src/.libs &amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;append ld_library_path &amp;quot;:${gccpath}/libstdc++-v3/src/.libs&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# Look for libstdc++.${shlib_ext}.
&lt;br&gt;Index: libstdc++-v3/testsuite/libstdc++-abi/abi.exp
&lt;br&gt;===================================================================
&lt;br&gt;--- libstdc++-v3/testsuite/libstdc++-abi/abi.exp	(revision 155320)
&lt;br&gt;+++ libstdc++-v3/testsuite/libstdc++-abi/abi.exp	(working copy)
&lt;br&gt;@@ -18,7 +18,12 @@
&lt;br&gt;&amp;nbsp;# this test. Or, hey, if we don't support this kind of symbol
&lt;br&gt;&amp;nbsp;# versioning test: don't run it.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-set lib $blddir/src/.libs/libstdc++.so
&lt;br&gt;+if { [string match &amp;quot;*-*-darwin*&amp;quot; $target_triplet] } {
&lt;br&gt;+	set lib $blddir/src/.libs/libstdc++.dylib
&lt;br&gt;+} else { 
&lt;br&gt;+	set lib $blddir/src/.libs/libstdc++.so
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;set baseline_subdir &amp;quot;[eval exec $cxx --print-multi-dir]&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;# Build the support objects.
&lt;br&gt;Index: libstdc++-v3/testsuite/lib/libstdc++.exp
&lt;br&gt;===================================================================
&lt;br&gt;--- libstdc++-v3/testsuite/lib/libstdc++.exp	(revision 155320)
&lt;br&gt;+++ libstdc++-v3/testsuite/lib/libstdc++.exp	(working copy)
&lt;br&gt;@@ -91,6 +91,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global target_triplet
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global flags_file
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global tool_timeout
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;global DEFAULT_CXXFLAGS
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;global STATIC_LIBCXXFLAGS
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# We set LC_ALL and LANG to C so that we get the same error
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# messages as expected.
&lt;br&gt;@@ -106,6 +108,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set blddir [lookfor_file [get_multilibs] libstdc++-v3]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set flags_file &amp;quot;${blddir}/scripts/testsuite_flags&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;set shlib_ext [get_shlib_extension]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;v3track flags_file 2
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# If a test doesn't have special options, use DEFAULT_CXXFLAGS.
&lt;br&gt;@@ -114,7 +117,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# &amp;nbsp; 2) might need to be negated 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# In particular, some tests have to be run without precompiled
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# headers, or without assertions.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;global DEFAULT_CXXFLAGS
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if ![info exists DEFAULT_CXXFLAGS] then {
&lt;br&gt;&amp;nbsp;	set DEFAULT_CXXFLAGS &amp;quot;&amp;quot;
&lt;br&gt;&amp;nbsp;	# Host specific goo here.
&lt;br&gt;@@ -145,7 +148,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# Locate libgomp. This is only required for parallel mode.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set v3-libgomp 0
&lt;br&gt;- &amp;nbsp; &amp;nbsp;set libgompdir [lookfor_file $blddir/../libgomp .libs/libgomp.so]
&lt;br&gt;+	set libgompdir [lookfor_file $blddir/../libgomp .libs/libgomp.$shlib_ext]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if {$libgompdir != &amp;quot;&amp;quot;} {
&lt;br&gt;&amp;nbsp;	set v3-libgomp 1
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set libgompdir [file dirname $libgompdir]
&lt;br&gt;@@ -156,7 +159,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# Locate libstdc++ shared library. (ie libstdc++.so.)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set v3-sharedlib 0
&lt;br&gt;- &amp;nbsp; &amp;nbsp;set sharedlibdir [lookfor_file $blddir src/.libs/libstdc++.so]
&lt;br&gt;+	set sharedlibdir [lookfor_file $blddir src/.libs/libstdc++.$shlib_ext]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if {$sharedlibdir != &amp;quot;&amp;quot;} {
&lt;br&gt;&amp;nbsp;	if { [string match &amp;quot;*-*-linux*&amp;quot; $target_triplet] &amp;&amp; [isnative] } {
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;set v3-sharedlib 1
&lt;br&gt;@@ -165,6 +168,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;v3track v3-sharedlib 3
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+	set STATIC_LIBCXXFLAGS &amp;quot;&amp;quot;
&lt;br&gt;+	set staticlibdir [lookfor_file $blddir src/.libs/libstdc++.a]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if {$staticlibdir != &amp;quot;&amp;quot;} {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	set staticlibdir [file dirname $staticlibdir]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# Some targets use libstdc++.a%s in their specs, so they need a -B option
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# for uninstalled testing.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set STATIC_LIBCXXFLAGS &amp;quot; -B${staticlibdir} &amp;quot;
&lt;br&gt;+	}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# Compute what needs to be added to the existing LD_LIBRARY_PATH.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if {$gccdir != &amp;quot;&amp;quot;} {
&lt;br&gt;&amp;nbsp;	set compiler ${gccdir}/g++
&lt;br&gt;@@ -403,6 +415,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global cxxflags
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global cxxldflags
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global includes
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;global STATIC_LIBCXXFLAGS
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { [target_info needs_status_wrapper] != &amp;quot;&amp;quot; &amp;&amp; [info exists gluefile] } {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lappend options &amp;quot;libs=${gluefile}&amp;quot;
&lt;br&gt;@@ -412,6 +425,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cxx_final $cxx
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cxxlibglossflags &amp;nbsp;[libgloss_link_flags]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cxx_final [concat $cxx_final $cxxlibglossflags]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;set cxx_final [concat $cxx_final $STATIC_LIBCXXFLAGS]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cxx_final [concat $cxx_final $cxxflags]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cxx_final [concat $cxx_final $includes]
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -443,6 +457,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global blddir
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global cc
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global cxxflags
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;global STATIC_LIBCXXFLAGS
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { [target_info needs_status_wrapper] != &amp;quot;&amp;quot; &amp;&amp; [info exists gluefile] } {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lappend options &amp;quot;libs=${gluefile}&amp;quot;
&lt;br&gt;@@ -453,6 +468,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cc_final $cc
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cxxlibglossflags [libgloss_link_flags]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cc_final [concat $cc_final $cxxlibglossflags]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;set cc_final [concat $cc_final $STATIC_LIBCXXFLAGS]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cc_final [concat $cc_final $cxxflags]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set cc_final [concat $cc_final $includes]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;regsub -all {\s[-]nostdinc[+][+]} $cc_final &amp;quot;&amp;quot; cc_final
&lt;br&gt;Index: libgomp/testsuite/lib/libgomp.exp
&lt;br&gt;===================================================================
&lt;br&gt;--- libgomp/testsuite/lib/libgomp.exp	(revision 155320)
&lt;br&gt;+++ libgomp/testsuite/lib/libgomp.exp	(working copy)
&lt;br&gt;@@ -130,6 +130,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;set ALWAYS_CFLAGS &amp;quot;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if { $blddir != &amp;quot;&amp;quot; } {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lappend ALWAYS_CFLAGS &amp;quot;additional_flags=-B${blddir}/&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# targets that use libgomp.a%s in their specs need a -B option
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# for uninstalled testing.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lappend ALWAYS_CFLAGS &amp;quot;additional_flags=-B${blddir}/.libs&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lappend ALWAYS_CFLAGS &amp;quot;additional_flags=-I${blddir}&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lappend ALWAYS_CFLAGS &amp;quot;ldflags=-L${blddir}/.libs&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-patch%2C-target--fix-PR41605-tp26834718p26834718.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26834532</id>
	<title>[patch, testsuite,  libgomp.fortran] darwin no longer requires static linkage to access TLS.</title>
	<published>2009-12-17T12:33:25Z</published>
	<updated>2009-12-17T12:33:25Z</updated>
	<author>
		<name>IainS</name>
	</author>
	<content type="html">Hi All,
&lt;br&gt;&lt;br&gt;As discussed on IRC last night, Darwin targets no longer need -static- 
&lt;br&gt;libgcc to provide TLS. &amp;nbsp;Consequently, the two tests that force this &amp;nbsp;
&lt;br&gt;(libgomp.fortran/crayptr2.f90 and libgomp.fortran/pr32550.f90) can be &amp;nbsp;
&lt;br&gt;tidied.
&lt;br&gt;&lt;br&gt;in each case:
&lt;br&gt;-! { dg-options &amp;quot;-static-libgcc&amp;quot; { target *-*-darwin* } }
&lt;br&gt;+! { dg-require-effective-target tls_runtime }
&lt;br&gt;&lt;br&gt;this is (IMO) the correct situation in any event - it seems misleading &amp;nbsp;
&lt;br&gt;to force non-standard options to make a target pass a few tests.
&lt;br&gt;checked on darwin9 ppc/i686 and darwin10 (thanks to Dominique).
&lt;br&gt;&lt;br&gt;cheers,
&lt;br&gt;Iain
&lt;br&gt;&lt;br&gt;====
&lt;br&gt;&lt;br&gt;&lt;br&gt;2009-12-17 Iain Sandoe &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26834532&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;iain.sandoe@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *libgomp/testsuite/libgomp.fortran/crayptr2.f90 remove forced static &amp;nbsp;
&lt;br&gt;linkage for darwin, protect the test with require-effective-target &amp;nbsp;
&lt;br&gt;tls_runtime
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *libgomp/testsuite/libgomp.fortran/pr32550.f90 remove forced static &amp;nbsp;
&lt;br&gt;linkage for darwin, protect the test with require-effective-target &amp;nbsp;
&lt;br&gt;tls_runtime
&lt;br&gt;&lt;br&gt;====
&lt;br&gt;&lt;br&gt;&lt;br /&gt;Index: libgomp/testsuite/libgomp.fortran/crayptr2.f90
&lt;br&gt;===================================================================
&lt;br&gt;--- libgomp/testsuite/libgomp.fortran/crayptr2.f90	(revision 155320)
&lt;br&gt;+++ libgomp/testsuite/libgomp.fortran/crayptr2.f90	(working copy)
&lt;br&gt;@@ -1,6 +1,6 @@
&lt;br&gt;&amp;nbsp;! { dg-do run }
&lt;br&gt;&amp;nbsp;! { dg-options &amp;quot;-fopenmp -fcray-pointer&amp;quot; }
&lt;br&gt;-! { dg-options &amp;quot;-fopenmp -fcray-pointer -static-libgcc&amp;quot; { target *-*-darwin* } }
&lt;br&gt;+! { dg-require-effective-target tls_runtime }
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;use omp_lib
&lt;br&gt;&amp;nbsp; &amp;nbsp;integer :: a, b, c, d, p
&lt;br&gt;Index: libgomp/testsuite/libgomp.fortran/pr32550.f90
&lt;br&gt;===================================================================
&lt;br&gt;--- libgomp/testsuite/libgomp.fortran/pr32550.f90	(revision 155320)
&lt;br&gt;+++ libgomp/testsuite/libgomp.fortran/pr32550.f90	(working copy)
&lt;br&gt;@@ -1,6 +1,6 @@
&lt;br&gt;&amp;nbsp;! PR fortran/32550
&lt;br&gt;&amp;nbsp;! { dg-do run }
&lt;br&gt;-! { dg-options &amp;quot;-static-libgcc&amp;quot; { target *-*-darwin* } }
&lt;br&gt;+! { dg-require-effective-target tls_runtime }
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;integer, pointer, save :: ptr
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;integer, target :: targ
&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-patch%2C-testsuite%2C--libgomp.fortran--darwin-no-longer-requires-static-linkage-to-access-TLS.-tp26834532p26834532.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26834344</id>
	<title>[ping, Patch, driver gcc/g++] updated patch for PR41594, 41596</title>
	<published>2009-12-17T12:20:21Z</published>
	<updated>2009-12-17T12:20:21Z</updated>
	<author>
		<name>IainS</name>
	</author>
	<content type="html">&lt;br&gt;following discussion on this, I've updated the patch that deals with &amp;nbsp;
&lt;br&gt;suppression of library commands when making PCH.
&lt;br&gt;(whitespace issues kindly noted by Dave, have been mopped up)
&lt;br&gt;&lt;br&gt;The only change is that &amp;quot;-static-libstdc++&amp;quot; is now re-written for all &amp;nbsp;
&lt;br&gt;targets, including those that have -Bstatic/dynamic - thus allowing &amp;nbsp;
&lt;br&gt;all the option of spec substitution.
&lt;br&gt;&lt;br&gt;Bootstrapped on powerpc-apple-darwin9.
&lt;br&gt;&lt;br&gt;====
&lt;br&gt;&lt;br&gt;&lt;br&gt;2009-10-05 Iain Sandoe &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26834344&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;iain.sandoe@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR driver/41594
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *gcc/gcc.c: Add -static-libstdc++ to list of recognized options.
&lt;br&gt;&lt;br&gt;&lt;br /&gt;Index: gcc/gcc.c
&lt;br&gt;===================================================================
&lt;br&gt;--- gcc/gcc.c	(revision 155320)
&lt;br&gt;+++ gcc/gcc.c	(working copy)
&lt;br&gt;@@ -4551,12 +4551,14 @@
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;switches[n_switches].validated = 0;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;switches[n_switches].ordering = 0;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;/* These are always valid, since gcc.c itself understands the
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; first four and gfortranspec.c understands -static-libgfortran. &amp;nbsp;*/
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; first four, gfortranspec.c understands -static-libgfortran
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; and g++spec.c understands -static-libstdc++ */
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;if (!strcmp (p, &amp;quot;save-temps&amp;quot;)
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp;|| !strcmp (p, &amp;quot;static-libgcc&amp;quot;)
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp;|| !strcmp (p, &amp;quot;shared-libgcc&amp;quot;)
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp;|| !strcmp (p, &amp;quot;pipe&amp;quot;)
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp;|| !strcmp (p, &amp;quot;static-libgfortran&amp;quot;))
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;|| !strcmp (p, &amp;quot;static-libgfortran&amp;quot;)
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;|| !strcmp (p, &amp;quot;static-libstdc++&amp;quot;))
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;switches[n_switches].validated = 1;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;else
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;2009-12-17 Iain Sandoe &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26834344&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;iain.sandoe@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR driver/41596
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *gcc/cp/g++spec.c(lang_specific_driver): Do not insert -lstdc++ &amp;nbsp;
&lt;br&gt;unless we really need it.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; re-write '-static-libstdc++' to the CL to allow for spec substitution.
&lt;br&gt;&lt;br&gt;&lt;br /&gt;Index: gcc/cp/g++spec.c
&lt;br&gt;===================================================================
&lt;br&gt;--- gcc/cp/g++spec.c	(revision 155320)
&lt;br&gt;+++ gcc/cp/g++spec.c	(working copy)
&lt;br&gt;@@ -60,10 +60,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;int saw_profile_flag = 0;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* What do with libstdc++:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; -1 means we should not link in libstdc++
&lt;br&gt;- &amp;nbsp; &amp;nbsp; 0 &amp;nbsp;means we should link in libstdc++ if it is needed
&lt;br&gt;- &amp;nbsp; &amp;nbsp; 1 &amp;nbsp;means libstdc++ is needed and should be linked in.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; 2 &amp;nbsp;means libstdc++ is needed and should be linked statically. &amp;nbsp;*/
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; -1 means a forced &amp;quot;don't link&amp;quot; libstdc++,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; 0 &amp;nbsp;means we don't need libstdc++,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; bit 0 = 1 means libstdc++ is needed and should be linked in.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; bit 1 = 1 means when libstdc++ is needed it should be linked statically. 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; during re-writing the args the -1 case is set to 0.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp;int library = 0;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* The number of arguments being added to what's in argv, other than
&lt;br&gt;@@ -160,19 +162,19 @@
&lt;br&gt;&amp;nbsp;		quote = arg = argv[i+1];
&lt;br&gt;&amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp;else &amp;nbsp;/* Error condition, message will be printed later. &amp;nbsp;*/
&lt;br&gt;&amp;nbsp;		arg = &amp;quot;&amp;quot;;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp;if (library == 0
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;if (library &amp;gt;= 0
&lt;br&gt;&amp;nbsp;		 &amp;nbsp;&amp;&amp; (strcmp (arg, &amp;quot;c++&amp;quot;) == 0
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp; &amp;nbsp;|| strcmp (arg, &amp;quot;c++-cpp-output&amp;quot;) == 0
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp; &amp;nbsp;|| strcmp (arg, &amp;quot;objective-c++&amp;quot;) == 0
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp; &amp;nbsp;|| strcmp (arg, &amp;quot;objective-c++-cpp-output&amp;quot;) == 0))
&lt;br&gt;-		library = 1;
&lt;br&gt;+		library |= 1;
&lt;br&gt;&amp;nbsp;		
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp;saw_speclang = 1;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;else if (strcmp (argv[i], &amp;quot;-ObjC++&amp;quot;) == 0)
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;{
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp;if (library == 0)
&lt;br&gt;-		library = 1;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;if (library &amp;gt;= 0)
&lt;br&gt;+		library |= 1;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp;saw_speclang = 1;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;/* Arguments that go directly to the linker might be .o files,
&lt;br&gt;@@ -180,14 +182,14 @@
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;else if (strcmp (argv[i], &amp;quot;-Xlinker&amp;quot;) == 0)
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp;quote = argv[i];
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp;if (library == 0)
&lt;br&gt;-		library = 1;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;if (library &amp;gt;= 0)
&lt;br&gt;+		library |= 1;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;else if (strncmp (argv[i], &amp;quot;-Wl,&amp;quot;, 4) == 0)
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;library = (library == 0) ? 1 : library;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;library |= (library &amp;gt;= 0) ? 1 : library;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;/* Unrecognized libraries (e.g. -lfoo) may require libstdc++. &amp;nbsp;*/
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;else if (strncmp (argv[i], &amp;quot;-l&amp;quot;, 2) == 0)
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;library = (library == 0) ? 1 : library;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;library |= (library &amp;gt;= 0) ? 1 : library;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;else if (((argv[i][2] == '\0'
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp; &amp;&amp; strchr (&amp;quot;bBVDUoeTuIYmLiA&amp;quot;, argv[i][1]) != NULL)
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp;|| strcmp (argv[i], &amp;quot;-Tdata&amp;quot;) == 0))
&lt;br&gt;@@ -207,7 +209,7 @@
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;shared_libgcc = 0;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;else if (strcmp (argv[i], &amp;quot;-static-libstdc++&amp;quot;) == 0)
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;{
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp;library = library &amp;gt;= 0 ? 2 : library;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;library |= library &amp;gt;= 0 ? 2 : library;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp;args[i] |= SKIPOPT;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;else if (DEFAULT_WORD_SWITCH_TAKES_ARG (&amp;argv[i][1]))
&lt;br&gt;@@ -241,7 +243,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;/* If we don't know that this is a header file, we might
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; need to be linking in the libraries. &amp;nbsp;*/
&lt;br&gt;-	 &amp;nbsp;if (library == 0)
&lt;br&gt;+	 &amp;nbsp;if (library &amp;gt;= 0 &amp;&amp; (library &amp; 1) == 0)
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((len &amp;lt;= 2 || strcmp (argv[i] + (len - 2), &amp;quot;.H&amp;quot;) != 0)
&lt;br&gt;&amp;nbsp;		 &amp;nbsp;&amp;&amp; (len &amp;lt;= 2 || strcmp (argv[i] + (len - 2), &amp;quot;.h&amp;quot;) != 0)
&lt;br&gt;@@ -252,7 +254,7 @@
&lt;br&gt;&amp;nbsp;		 &amp;nbsp;&amp;&amp; (len &amp;lt;= 4 || strcmp (argv[i] + (len - 4), &amp;quot;.HPP&amp;quot;) != 0)
&lt;br&gt;&amp;nbsp;		 &amp;nbsp;&amp;&amp; (len &amp;lt;= 4 || strcmp (argv[i] + (len - 4), &amp;quot;.tcc&amp;quot;) != 0)
&lt;br&gt;&amp;nbsp;		 &amp;nbsp;&amp;&amp; (len &amp;lt;= 3 || strcmp (argv[i] + (len - 3), &amp;quot;.hh&amp;quot;) != 0))
&lt;br&gt;-		library = 1;
&lt;br&gt;+		library |= 1;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -260,6 +262,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;if (quote)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;fatal (&amp;quot;argument to '%s' missing\n&amp;quot;, quote);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;/* if library &amp;lt; 0 it means it was forced off, so don't include it */
&lt;br&gt;+ &amp;nbsp;if (library &amp;lt; 0)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;library = 0;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* There's no point adding -shared-libgcc if we don't have a shared
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; libgcc. &amp;nbsp;*/
&lt;br&gt;&amp;nbsp;#ifndef ENABLE_SHARED_LIBGCC
&lt;br&gt;@@ -284,13 +290,13 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Make sure -lstdc++ is before the math library, since libstdc++
&lt;br&gt;&amp;nbsp;	 itself uses those math routines. &amp;nbsp;*/
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!saw_math &amp;&amp; (args[i] &amp; MATHLIB) &amp;&amp; library &amp;gt; 0)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!saw_math &amp;&amp; (args[i] &amp; MATHLIB) &amp;&amp; (library &amp; 1) != 0)
&lt;br&gt;&amp;nbsp;	{
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;--j;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;saw_math = argv[i];
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!saw_libc &amp;&amp; (args[i] &amp; WITHLIBC) &amp;&amp; library &amp;gt; 0)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!saw_libc &amp;&amp; (args[i] &amp; WITHLIBC) &amp;&amp; (library &amp; 1) != 0)
&lt;br&gt;&amp;nbsp;	{
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;--j;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;saw_libc = argv[i];
&lt;br&gt;@@ -327,21 +333,23 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/* Add `-lstdc++' if we haven't already done so. &amp;nbsp;*/
&lt;br&gt;- &amp;nbsp;if (library &amp;gt; 0)
&lt;br&gt;+ &amp;nbsp;if ((library &amp; 1) != 0)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((library &amp; 2) &amp;&amp; !static_link)
&lt;br&gt;+	{
&lt;br&gt;+	 &amp;nbsp;arglist[j] = &amp;quot;-static-libstdc++&amp;quot;; /* allow for link spec substitution */
&lt;br&gt;+	 &amp;nbsp;j++;
&lt;br&gt;&amp;nbsp;#ifdef HAVE_LD_STATIC_DYNAMIC
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (library &amp;gt; 1 &amp;&amp; !static_link)
&lt;br&gt;-	{
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;arglist[j] = &amp;quot;-Wl,-Bstatic&amp;quot;;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;j++;
&lt;br&gt;+#endif
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;-#endif
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (arglist[j][0] != '-' || arglist[j][1] == 'l')
&lt;br&gt;&amp;nbsp;	added_libraries++;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;j++;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Add target-dependent static library, if necessary. &amp;nbsp;*/
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((static_link || library &amp;gt; 1) &amp;&amp; LIBSTDCXX_STATIC != NULL)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((static_link || (library &amp; 2)) &amp;&amp; LIBSTDCXX_STATIC != NULL)
&lt;br&gt;&amp;nbsp;	{
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;arglist[j] = LIBSTDCXX_STATIC;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;if (arglist[j][0] != '-' || arglist[j][1] == 'l')
&lt;br&gt;@@ -349,7 +357,7 @@
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;j++;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;#ifdef HAVE_LD_STATIC_DYNAMIC
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (library &amp;gt; 1 &amp;&amp; !static_link)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((library &amp; 2) &amp;&amp; !static_link)
&lt;br&gt;&amp;nbsp;	{
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;arglist[j] = &amp;quot;-Wl,-Bdynamic&amp;quot;;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;j++;
&lt;br&gt;@@ -358,7 +366,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;if (saw_math)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;arglist[j++] = saw_math;
&lt;br&gt;- &amp;nbsp;else if (library &amp;gt; 0 &amp;&amp; need_math)
&lt;br&gt;+ &amp;nbsp;else if ((library &amp; 1) &amp;&amp; need_math)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;arglist[j] = saw_profile_flag ? MATH_LIBRARY_PROFILE : MATH_LIBRARY;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (arglist[j][0] != '-' || arglist[j][1] == 'l')
&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;===</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-ping%2C-Patch%2C-driver-gcc-g%2B%2B--updated-patch-for-PR41594%2C-41596-tp26834344p26834344.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26833690</id>
	<title>[PATCH] Fix same_comdat_group handling in cgraph_remove_unreachable_nodes (PR c++/42386, take 2)</title>
	<published>2009-12-17T11:34:50Z</published>
	<updated>2009-12-17T11:34:50Z</updated>
	<author>
		<name>Jakub Jelinek</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 04:59:03PM -0500, Jakub Jelinek wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Wed, Dec 16, 2009 at 10:46:43PM +0100, Jan Hubicka wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; We shouldn't consider same_comdat_group links to make nodes reachable for
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; DECL_EXTERNAL nodes - for those whether they are in the same comdat group or
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; not doesn't matter.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; What is supposed semnatics of DECL_EXTERNAL nodes in comdat groups and
&lt;br&gt;&amp;gt; &amp;gt; how they differ from normal DECL_EXTERNAL functions? &amp;nbsp;It seems that we
&lt;br&gt;&amp;gt; &amp;gt; might not want to put them into the linkist at all.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; They don't differ, but whether some decl is emitted in the current TU or is
&lt;br&gt;&amp;gt; DECL_EXTERNAL is not necessarily finalized at the beginning. &amp;nbsp;While in this
&lt;br&gt;&amp;gt; PR's testcase already maybe_clone_body can know it, in some other cases it
&lt;br&gt;&amp;gt; doesn't know that and the FE only determines it much later (so
&lt;br&gt;&amp;gt; same_comdat_group links have to be set up). &amp;nbsp;And I wonder if
&lt;br&gt;&amp;gt; IPA/-fwhole-program can change that as well even later.
&lt;br&gt;&amp;gt; So having the links around, just not considering them for DECL_EXTERNAL
&lt;br&gt;&amp;gt; seems more robust to me, otherwise the FE during
&lt;br&gt;&amp;gt; cp_write_global_declarations will need to unlink the links if they stayed
&lt;br&gt;&amp;gt; really DECL_EXTERNAL, and possibly other places that might change
&lt;br&gt;&amp;gt; non-external into DECL_EXTERNAL as well.
&lt;/div&gt;&lt;br&gt;This is a patch variant that Honza preapproved on IRC and I've committed to
&lt;br&gt;trunk after bootstrapping/regtesting on x86_64-linux.
&lt;br&gt;&lt;br&gt;2009-12-17 &amp;nbsp;Jakub Jelinek &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26833690&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jakub@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR c++/42386
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * ipa.c (function_and_variable_visibility): Clear same_comdat_group
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; links of DECL_EXTERNAL nodes.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * g++.dg/opt/dtor3.C: New test.
&lt;br&gt;&lt;br&gt;--- gcc/ipa.c.jj	2009-12-17 15:05:58.000000000 +0100
&lt;br&gt;+++ gcc/ipa.c	2009-12-17 15:54:33.000000000 +0100
&lt;br&gt;@@ -370,6 +370,23 @@ function_and_variable_visibility (bool w
&lt;br&gt;&amp;nbsp;	 happy. &amp;nbsp;Clear the flag here to avoid confusion in middle-end. &amp;nbsp;*/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (DECL_COMDAT (node-&amp;gt;decl) &amp;&amp; !TREE_PUBLIC (node-&amp;gt;decl))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DECL_COMDAT (node-&amp;gt;decl) = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;/* For external decls stop tracking same_comdat_group, it doesn't matter
&lt;br&gt;+	 what comdat group they are in when they won't be emitted in this TU,
&lt;br&gt;+	 and simplifies later passes. &amp;nbsp;*/
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (node-&amp;gt;same_comdat_group &amp;&amp; DECL_EXTERNAL (node-&amp;gt;decl))
&lt;br&gt;+	{
&lt;br&gt;+	 &amp;nbsp;struct cgraph_node *n = node, *next;
&lt;br&gt;+	 &amp;nbsp;do
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;/* If at least one of same comdat group functions is external,
&lt;br&gt;+		 all of them have to be, otherwise it is a front-end bug. &amp;nbsp;*/
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;gcc_assert (DECL_EXTERNAL (n-&amp;gt;decl));
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;next = n-&amp;gt;same_comdat_group;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;n-&amp;gt;same_comdat_group = NULL;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp;n = next;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+	 &amp;nbsp;while (n != node);
&lt;br&gt;+	}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;gcc_assert ((!DECL_WEAK (node-&amp;gt;decl) &amp;&amp; !DECL_COMDAT (node-&amp;gt;decl))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| TREE_PUBLIC (node-&amp;gt;decl) || DECL_EXTERNAL (node-&amp;gt;decl));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (cgraph_externally_visible_p (node, whole_program))
&lt;br&gt;--- gcc/testsuite/g++.dg/opt/dtor3.C.jj	2009-12-16 18:08:11.000000000 +0100
&lt;br&gt;+++ gcc/testsuite/g++.dg/opt/dtor3.C	2009-12-16 18:06:36.000000000 +0100
&lt;br&gt;@@ -0,0 +1,11 @@
&lt;br&gt;+// PR c++/42386
&lt;br&gt;+// { dg-do compile }
&lt;br&gt;+// { dg-options &amp;quot;-O2&amp;quot; }
&lt;br&gt;+# 1 &amp;quot;A.h&amp;quot; 1
&lt;br&gt;+#pragma interface
&lt;br&gt;+struct D { virtual bool d () const; };
&lt;br&gt;+struct E { virtual ~E (); virtual void *e () const = 0; };
&lt;br&gt;+struct A : public D, public E { ~A () {} };
&lt;br&gt;+# 5 &amp;quot;dtor3.C&amp;quot; 1
&lt;br&gt;+struct F : public A { void *f () const; void *e () const; };
&lt;br&gt;+void *F::e () const { return __null; }
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Jakub
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-PATCH--Fix-same_comdat_group-handling-in-cgraph_remove_unreachable_nodes-%28PR-c%2B%2B-42386%29-tp26818325p26833690.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26832091</id>
	<title>Re: [PATCH] PR c++/42225</title>
	<published>2009-12-17T09:46:56Z</published>
	<updated>2009-12-17T09:46:56Z</updated>
	<author>
		<name>Jason Merrill</name>
	</author>
	<content type="html">On 12/17/2009 09:21 AM, Dodji Seketeli wrote:
&lt;br&gt;&amp;gt; Right now that DECL_CONTEXT is not set for template type parms. So the
&lt;br&gt;&amp;gt; patch below sets it.
&lt;br&gt;&lt;br&gt;Once we do that, perhaps structural_comptypes can compare the template 
&lt;br&gt;parms from the context of template type parms, so we don't need special 
&lt;br&gt;handling for typedefs at all?
&lt;br&gt;&lt;br&gt;Jason
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-PATCH--PR-c%2B%2B-42225-tp26626380p26832091.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26831961</id>
	<title>Re: [PATCH c++/31665] Move the fragments of conditional expressions  	to full sentences</title>
	<published>2009-12-17T09:39:11Z</published>
	<updated>2009-12-17T09:39:11Z</updated>
	<author>
		<name>Gabriel Dos Reis</name>
	</author>
	<content type="html">On Wed, Dec 16, 2009 at 8:31 PM, Shujing Zhao &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26831961&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;pearly.zhao@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On 12/16/2009 11:15 PM, Gabriel Dos Reis wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Wed, Dec 16, 2009 at 5:23 AM, Paolo Bonzini &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26831961&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;bonzini@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On 12/16/2009 10:55 AM, Shujing Zhao wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -3934,9 +3936,9 @@ check_tag_decl (cp_decl_specifier_seq *d
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;    {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;      if (declspecs-&amp;gt;specs[(int)ds_inline]
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;         || declspecs-&amp;gt;specs[(int)ds_virtual])
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -       error (&amp;quot;%qs can only be specified for functions&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -              declspecs-&amp;gt;specs[(int)ds_inline]
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -              ? &amp;quot;inline&amp;quot; : &amp;quot;virtual&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +       error (declspecs-&amp;gt;specs[(int)ds_inline]
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +              ? G_(&amp;quot;%&amp;lt;inline%&amp;gt; can only be specified for functions&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +               : G_(&amp;quot;%&amp;lt;virtual%&amp;gt; can only be specified for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; functions&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;      else if (saw_friend
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;              &amp;&amp; (!current_class_type
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;                  || current_scope () != current_class_type))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -19808,10 +19809,13 @@ static void
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  cp_parser_check_class_key (enum tag_types class_key, tree type)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;   if ((TREE_CODE (type) == UNION_TYPE) != (class_key == union_type))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -    permerror (input_location, &amp;quot;%qs tag used in naming %q#T&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -           class_key == union_type ? &amp;quot;union&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -            : class_key == record_type ? &amp;quot;struct&amp;quot; : &amp;quot;class&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -            type);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +    permerror (input_location,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +               class_key == union_type
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +               ? G_(&amp;quot;%&amp;lt;union%&amp;gt;  tag used in naming %q#T&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +               : class_key == record_type
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +                 ? G_(&amp;quot;%&amp;lt;struct%&amp;gt;  tag used in naming %q#T&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +                 : G_(&amp;quot;%&amp;lt;class%&amp;gt;  tag used in naming %q#T&amp;quot;),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +              type);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Pedantically these are not needed, because keywords are not translated
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; anyway (and it gives 3 more strings to translate).  However, I don't
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; think
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; this is a problem.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Paolo
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; yes, keyword should be left as such.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ok, the keyword conditional expressions are left.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Tested again on i686.
&lt;br&gt;&amp;gt; Is the revised patch ok for trunk?
&lt;/div&gt;&lt;br&gt;Yes.
&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;-- Gaby
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-PATCH-c%2B%2B-31665--Move-the-fragments-of-conditional-expressions-to--full-sentences-tp26808770p26831961.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26831606</id>
	<title>[PATCH, ARM] Fix problem with regrename on ARM</title>
	<published>2009-12-17T09:16:51Z</published>
	<updated>2009-12-17T09:16:51Z</updated>
	<author>
		<name>Richard Earnshaw</name>
	</author>
	<content type="html">The pic_load_tls_plus_eight pattern on ARM was somehow mistakenly added
&lt;br&gt;with a +r constraint when =r should have been used. &amp;nbsp;This caused
&lt;br&gt;reg-rename to think it was modifying a non-live value and thus that the
&lt;br&gt;result couldn't really matter either. &amp;nbsp;An unfortunate chain of events
&lt;br&gt;then lead to a critical insn being deleted that then caused assembly
&lt;br&gt;failure because we still had a reference to a label that was no-longer
&lt;br&gt;being generated.
&lt;br&gt;&lt;br&gt;Fixed by modifying the constraint. &amp;nbsp;Now everything is happy again.
&lt;br&gt;&lt;br&gt;R.
&lt;br&gt;2009-12-17 &amp;nbsp;Richard Earnshaw &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26831606&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rearnsha@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR target/42372
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * arm.md (pic_add_dot_plus_eight): Change output constraint from
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; update to write.
&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;tt&gt;[tls.patch]&lt;/tt&gt;&lt;br /&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;tt&gt;*** gcc/config/arm/arm.md	(revision 155323)
&lt;br&gt;--- gcc/config/arm/arm.md	(local)
&lt;br&gt;*************** (define_insn &amp;quot;pic_add_dot_plus_eight&amp;quot;
&lt;br&gt;*** 5292,5298 ****
&lt;br&gt;&amp;nbsp; )
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; (define_insn &amp;quot;tls_load_dot_plus_eight&amp;quot;
&lt;br&gt;! &amp;nbsp; [(set (match_operand:SI 0 &amp;quot;register_operand&amp;quot; &amp;quot;+r&amp;quot;)
&lt;br&gt;&amp;nbsp; 	(mem:SI (unspec:SI [(match_operand:SI 1 &amp;quot;register_operand&amp;quot; &amp;quot;r&amp;quot;)
&lt;br&gt;&amp;nbsp; 			 &amp;nbsp; &amp;nbsp;(const_int 8)
&lt;br&gt;&amp;nbsp; 			 &amp;nbsp; &amp;nbsp;(match_operand 2 &amp;quot;&amp;quot; &amp;quot;&amp;quot;)]
&lt;br&gt;--- 5292,5298 ----
&lt;br&gt;&amp;nbsp; )
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; (define_insn &amp;quot;tls_load_dot_plus_eight&amp;quot;
&lt;br&gt;! &amp;nbsp; [(set (match_operand:SI 0 &amp;quot;register_operand&amp;quot; &amp;quot;=r&amp;quot;)
&lt;br&gt;&amp;nbsp; 	(mem:SI (unspec:SI [(match_operand:SI 1 &amp;quot;register_operand&amp;quot; &amp;quot;r&amp;quot;)
&lt;br&gt;&amp;nbsp; 			 &amp;nbsp; &amp;nbsp;(const_int 8)
&lt;br&gt;&amp;nbsp; 			 &amp;nbsp; &amp;nbsp;(match_operand 2 &amp;quot;&amp;quot; &amp;quot;&amp;quot;)]
&lt;br&gt;&lt;/tt&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-PATCH%2C-ARM--Fix-problem-with-regrename-on-ARM-tp26831606p26831606.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26831070</id>
	<title>Re: unwind info for epilogues</title>
	<published>2009-12-17T08:43:31Z</published>
	<updated>2009-12-17T08:43:31Z</updated>
	<author>
		<name>H.J. Lu-30</name>
	</author>
	<content type="html">On Mon, Jun 29, 2009 at 1:54 PM, H.J. Lu &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26831070&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hjl.tools@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Sat, May 30, 2009 at 6:21 AM, H.J. Lu&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26831070&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hjl.tools@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; On Fri, May 29, 2009 at 5:42 PM, Richard Henderson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26831070&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rth@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Joseph S. Myers wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Wed, 6 May 2009, Richard Henderson wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Since the beginning, -fasynchronous-unwind-tables has not held correct
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; information for function epilogues.  This is an attempt at adding that.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; See also Nathan Froyd's patch (doing this for x86_64) described in his
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 2006 Summit paper.  I haven't compared the approaches (but fully support
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; adding this feature).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://gcc.gnu.org/ml/gcc-patches/2006-03/msg00426.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/ml/gcc-patches/2006-03/msg00426.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://gcc.gnu.org/ml/gcc-patches/2006-02/msg01091.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/ml/gcc-patches/2006-02/msg01091.html&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thanks for the pointers.  I did incorporate a few of Nathan's ideas into
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; this version of the patch -- primarily, when duplicating the epilogue,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; make sure the duplicated insns are also recorded as epilogue insns.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The other large change from the previous patch is the ability to have
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the eh_return epilogue from _Unwind_Resume (and friends) marked
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; properly.  This required the addition of an EH_RETURN rtx, so that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the middle-end could recognize when epilogue expansion should happen,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; rather than the add-hoc unspecs that ports had been using.  As it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; happens, only i386 and bfin implement eh_return via special epilogues;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; most ports only need to overwrite one or more registers before using
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; a normal epilogue.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Tested on x86_64, i686; committed.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; r~
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * cfgcleanup.c (try_crossjump_to_edge): Only skip past
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        NOTE_INSN_BASIC_BLOCK.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        Duplicate NOTE_INSN_EPILOGUE_BEG notes.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        to be deleted.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        add in_use field.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (add_cfi): Disable check redefining cfa away from drap.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (lookup_cfa_1): Add remember argument; handle remember/restore.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (lookup_cfa): Pass remember argument.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (cfa_remember): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (compute_barrier_args_size_1): Remove sibcall check.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dwarf2out_frame_debug_def_cfa): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dwarf2out_frame_debug_adjust_cfa): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dwarf2out_frame_debug_cfa_offset): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dwarf2out_frame_debug_cfa_register): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dwarf2out_frame_debug_cfa_restore): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dwarf2out_frame_debug): Handle REG_CFA_* notes.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dwarf2out_begin_epilogue): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dwarf2out_frame_debug_restore_state): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        DW_CFA_restore_state.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (output_cfi_directive): Likewise.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (convert_cfa_to_fb_loc_list): Likewise.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * dwarf2out.h: Update.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (copy_insn_1): Early out for null.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        and dwarf2out_frame_debug_restore_state.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * function.c (prologue, epilogue, sibcall_epilogue): Remove.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (prologue_insn_hash, epilogue_insn_hash): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (free_after_compilation): Adjust freeing accordingly.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (record_insns): Create hash table if needed; push insns into
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        hash instead of array.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (maybe_copy_epilogue_insn): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (contains): Search hash table instead of array.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (sibcall_epilogue_contains): Remove.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (thread_prologue_and_epilogue_insns): Split eh_return insns
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        and mark them as epilogues.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (reposition_prologue_and_epilogue_notes): Rewrite epilogue
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        scanning in terms of basic blocks.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * insn-notes.def (CFA_RESTORE_STATE): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * jump.c (returnjump_p_1): Accept EH_RETURN.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (eh_returnjump_p_1, eh_returnjump_p): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        CFA_REGISTER, CFA_RESTORE): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * rtl.def (EH_RETURN): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (eh_return_internal): Use eh_return rtx; split w/ epilogue.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * config/i386/i386.c (gen_push): Update cfa state.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        add a CFA_ADJUST_CFA note.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (ix86_dwarf_handle_frame_unspec): Remove.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (ix86_expand_prologue): Update cfa state.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (ix86_emit_restore_reg_using_pop): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (ix86_emit_restore_regs_using_pop): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (ix86_emit_leave): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (ix86_expand_epilogue): Add notes for unwinding the epilogue.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * config/i386/i386.h (struct machine_cfa_state): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (ix86_cfa_state): New.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        (eh_return_internal): Merge from eh_return_&amp;lt;mode&amp;gt;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;        use eh_return rtx, split w/ epilogue.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This breaks stack unwind on Linux/ia32:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40304&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40304&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This also breaks debug info for local variable on Linux/ia32:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;This also caused:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42396&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42396&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;H.J.
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/unwind-info-for-epilogues-tp23414735p26831070.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26830872</id>
	<title>Re: [www] Document GDB 7.0+ is needed to debug GCC 4.5 compiled code  	(PR other/41255)</title>
	<published>2009-12-17T08:32:05Z</published>
	<updated>2009-12-17T08:32:05Z</updated>
	<author>
		<name>Richard Guenther-2</name>
	</author>
	<content type="html">On Thu, Dec 17, 2009 at 4:57 PM, Jakub Jelinek &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26830872&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jakub@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; Hi!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Is this ok, or do you prefer some other wording?
&lt;br&gt;&lt;br&gt;Sounds good to me. &amp;nbsp;There is also
&lt;br&gt;&lt;a href=&quot;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41255&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41255&lt;/a&gt;&lt;br&gt;and we should recommend a gdb version in the Debuging Options section, maybe
&lt;br&gt;right at the beginning.
&lt;br&gt;&lt;br&gt;Richard.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; --- htdocs/gcc-4.5/changes.html.jj      2009-12-17 16:43:11.000000000 +0100
&lt;br&gt;&amp;gt; +++ htdocs/gcc-4.5/changes.html 2009-12-17 16:53:27.000000000 +0100
&lt;br&gt;&amp;gt; @@ -30,6 +30,15 @@
&lt;br&gt;&amp;gt;     &amp;lt;li&amp;gt;Support has been removed for tuning for Itanium1 (Merced) variants.
&lt;br&gt;&amp;gt;     Note that code tuned for Itanium2 should also run correctly on Itanium1.&amp;lt;/li&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; +    &amp;lt;li&amp;gt;GCC now generates unwind info also for epilogues.  DWARF debuginfo
&lt;br&gt;&amp;gt; +    generated by GCC now uses more features of DWARF3 than it used to
&lt;br&gt;&amp;gt; +    do and also some DWARF4 features.  GDB older than 7.0 is not able to
&lt;br&gt;&amp;gt; +    handle either of these, so to debug GCC 4.5 generated binaries or
&lt;br&gt;&amp;gt; +    libraries GDB 7.0 or later is needed.  You can disable use of DWARF4
&lt;br&gt;&amp;gt; +    features with &amp;lt;code&amp;gt;-gdwarf-3 -gstrict-dwarf&amp;lt;/code&amp;gt; options, or with
&lt;br&gt;&amp;gt; +    &amp;lt;code&amp;gt;-gdwarf-2 -gstrict-dwarf&amp;lt;/code&amp;gt; restrict GCC to just DWARF2
&lt;br&gt;&amp;gt; +    standard, but epilogue unwind info is emitted unconditionally whenever
&lt;br&gt;&amp;gt; +    unwind info is emitted.  &amp;lt;/li&amp;gt;
&lt;br&gt;&amp;gt;  &amp;lt;/ul&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;  &amp;lt;h2&amp;gt;General Optimizer Improvements&amp;lt;/h2&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;        Jakub
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-www--Document-GDB-7.0%2B-is-needed-to-debug-GCC-4.5-compiled-code-%28PR-other-41255%29-tp26830257p26830872.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26830257</id>
	<title>[www] Document GDB 7.0+ is needed to debug GCC 4.5 compiled code (PR other/41255)</title>
	<published>2009-12-17T07:57:36Z</published>
	<updated>2009-12-17T07:57:36Z</updated>
	<author>
		<name>Jakub Jelinek</name>
	</author>
	<content type="html">Hi!
&lt;br&gt;&lt;br&gt;Is this ok, or do you prefer some other wording?
&lt;br&gt;&lt;br&gt;--- htdocs/gcc-4.5/changes.html.jj	2009-12-17 16:43:11.000000000 +0100
&lt;br&gt;+++ htdocs/gcc-4.5/changes.html	2009-12-17 16:53:27.000000000 +0100
&lt;br&gt;@@ -30,6 +30,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;Support has been removed for tuning for Itanium1 (Merced) variants.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Note that code tuned for Itanium2 should also run correctly on Itanium1.&amp;lt;/li&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;GCC now generates unwind info also for epilogues. &amp;nbsp;DWARF debuginfo
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;generated by GCC now uses more features of DWARF3 than it used to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;do and also some DWARF4 features. &amp;nbsp;GDB older than 7.0 is not able to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;handle either of these, so to debug GCC 4.5 generated binaries or
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;libraries GDB 7.0 or later is needed. &amp;nbsp;You can disable use of DWARF4
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;features with &amp;lt;code&amp;gt;-gdwarf-3 -gstrict-dwarf&amp;lt;/code&amp;gt; options, or with
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;-gdwarf-2 -gstrict-dwarf&amp;lt;/code&amp;gt; restrict GCC to just DWARF2
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;standard, but epilogue unwind info is emitted unconditionally whenever
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;unwind info is emitted. &amp;nbsp;&amp;lt;/li&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;lt;/ul&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;h2&amp;gt;General Optimizer Improvements&amp;lt;/h2&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Jakub
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-www--Document-GDB-7.0%2B-is-needed-to-debug-GCC-4.5-compiled-code-%28PR-other-41255%29-tp26830257p26830257.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26830183</id>
	<title>[Docs patch, committed] clarify vec_select behavior</title>
	<published>2009-12-17T07:53:36Z</published>
	<updated>2009-12-17T07:53:36Z</updated>
	<author>
		<name>Sandra Loosemore</name>
	</author>
	<content type="html">I was confused by the description of vec_select in the internals manual and had 
&lt;br&gt;to look at various examples to understand what it returns. &amp;nbsp;Having figured it 
&lt;br&gt;out, it's now obvious :-) so I have checked in this patch to the docs.
&lt;br&gt;&lt;br&gt;-Sandra
&lt;br&gt;&lt;br&gt;2009-12-17 &amp;nbsp;Sandra Loosemore &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26830183&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;sandra@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; gcc/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * doc/rtl.texi (Vector Operations): Clarify vec_select result mode.
&lt;br&gt;&lt;br&gt;&lt;br /&gt;Index: gcc/doc/rtl.texi
&lt;br&gt;===================================================================
&lt;br&gt;--- gcc/doc/rtl.texi	(revision 155316)
&lt;br&gt;+++ gcc/doc/rtl.texi	(working copy)
&lt;br&gt;@@ -2614,9 +2614,12 @@ a set bit indicates it is taken from @va
&lt;br&gt;&amp;nbsp;@findex vec_select
&lt;br&gt;&amp;nbsp;@item (vec_select:@var{m} @var{vec1} @var{selection})
&lt;br&gt;&amp;nbsp;This describes an operation that selects parts of a vector. &amp;nbsp;@var{vec1} is
&lt;br&gt;-the source vector, @var{selection} is a @code{parallel} that contains a
&lt;br&gt;+the source vector, and @var{selection} is a @code{parallel} that contains a
&lt;br&gt;&amp;nbsp;@code{const_int} for each of the subparts of the result vector, giving the
&lt;br&gt;-number of the source subpart that should be stored into it.
&lt;br&gt;+number of the source subpart that should be stored into it. &amp;nbsp;
&lt;br&gt;+The result mode @var{m} is either the submode for a single element of
&lt;br&gt;+@var{vec1} (if only one subpart is selected), or another vector mode 
&lt;br&gt;+with that element submode (if multiple subparts are selected).
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;@findex vec_concat
&lt;br&gt;&amp;nbsp;@item (vec_concat:@var{m} @var{vec1} @var{vec2})
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Docs-patch%2C-committed--clarify-vec_select-behavior-tp26830183p26830183.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26830021</id>
	<title>Re: [Patch, Fortran] PR 42144: [OOP] deferred TBPs do not work</title>
	<published>2009-12-17T07:43:37Z</published>
	<updated>2009-12-17T07:43:37Z</updated>
	<author>
		<name>Janus Weil-3</name>
	</author>
	<content type="html">Hi Tobias,
&lt;br&gt;&lt;br&gt;&amp;gt; I have now merged the trunk into the fortran-dev branch
&lt;br&gt;&lt;br&gt;thanks a bunch.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (a) I ignored the trans-expr.c change as it does not apply
&lt;br&gt;&amp;gt; to the vtable.
&lt;br&gt;&lt;br&gt;Yes, that's correct.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (b) I have included the test case. Thus, you will
&lt;br&gt;&amp;gt; probably get a FAIL when regtesting the branch.
&lt;br&gt;&lt;br&gt;I don't think so. The vtable implementation should be able to handle
&lt;br&gt;deferred TBPs already.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Janus
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Patch%2C-Fortran--PR-42144%3A--OOP--deferred-TBPs-do-not-work-tp26817715p26830021.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26829913</id>
	<title>Re: Version script vs. mangled names on systems where size_type !=  unsigned  int</title>
	<published>2009-12-17T07:39:18Z</published>
	<updated>2009-12-17T07:39:18Z</updated>
	<author>
		<name>Dave Korn-6</name>
	</author>
	<content type="html">Paolo Carlini wrote:
&lt;br&gt;&amp;gt; On 12/17/2009 04:32 PM, Dave Korn wrote:
&lt;br&gt;&amp;gt;&amp;gt; Righto, I'll add the general comment as well as the two shorter ones. Did
&lt;br&gt;&amp;gt;&amp;gt; your abi_check complete OK?
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt; Sure, the entire regression suite actually. You are cleared to commit
&lt;br&gt;&amp;gt; and close the PR.
&lt;br&gt;&lt;br&gt;&amp;nbsp; Thanks, all done :)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; cheers,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DaveK
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Version-script-vs.-mangled-names-on-systems-where-size_type-%21%3D--unsigned--int-tp26827838p26829913.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26829922</id>
	<title>Re: [Patch, Fortran] PR 42353: [OOP] Bogus Error: Name 'vtype$...' at  	(1) is an ambiguous reference ...</title>
	<published>2009-12-17T07:38:35Z</published>
	<updated>2009-12-17T07:38:35Z</updated>
	<author>
		<name>Janus Weil-3</name>
	</author>
	<content type="html">&amp;gt; the attached patch fixes a small OOP problem, where under certain
&lt;br&gt;&amp;gt; circumstances one would get 'ambiguous reference' errors for the
&lt;br&gt;&amp;gt; vtypes. The easiest thing I could think of to fix this is to make the
&lt;br&gt;&amp;gt; vtypes private, which means that each module which uses a vtype will
&lt;br&gt;&amp;gt; have its own private copy (which in principle should not be a problem,
&lt;br&gt;&amp;gt; should it?).
&lt;br&gt;&lt;br&gt;In contrast to the patch I sent earlier, the version attached here
&lt;br&gt;also fixes the second error in the PR, which I almost forgot about
&lt;br&gt;(&amp;quot;Error: The element in the derived type constructor at (1), for
&lt;br&gt;pointer component '$extends', is DERIVED but should be DERIVED&amp;quot;).
&lt;br&gt;&lt;br&gt;Although the patch obviously works, I'm not sure if it may have any
&lt;br&gt;negative consequences and if it's the best thing to do. At least it
&lt;br&gt;fixes the test case and regtests cleanly.
&lt;br&gt;&lt;br&gt;Comments? Suggestions? Ok for trunk?
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Janus
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;pr42353_2.diff&lt;/strong&gt; (670 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26829922/0/pr42353_2.diff&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Patch%2C-Fortran--PR-42353%3A--OOP--Bogus-Error%3A-Name-%27vtype%24...%27-at-%281%29--%09is-an-ambiguous-reference-...-tp26770656p26829922.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26829901</id>
	<title>Re: [Patch, Fortran] PR 42144: [OOP] deferred TBPs do not work</title>
	<published>2009-12-17T07:37:41Z</published>
	<updated>2009-12-17T07:37:41Z</updated>
	<author>
		<name>Tobias Burnus</name>
	</author>
	<content type="html">On 12/17/2009 10:41 AM, Janus Weil wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The patch was regtested on x86_64-unknown-linux-gnu. Ok for trunk?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; OK for trunk.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; Thanks. Committed as r155305.
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;I have now merged the trunk into the fortran-dev branch; that means for
&lt;br&gt;this patch: (a) I ignored the trans-expr.c change as it does not apply
&lt;br&gt;to the vtable. (b) I have included the test case. Thus, you will
&lt;br&gt;probably get a FAIL when regtesting the branch. (And I did some
&lt;br&gt;renaming; as this patch's testfile name was the same as an existing one
&lt;br&gt;on the branch, I have renamed the branch one and updated
&lt;br&gt;ChangeLog.fortran-dev.)
&lt;br&gt;&lt;br&gt;Transmitting file data
&lt;br&gt;..........................................................................................................
&lt;br&gt;Committed revision 155317.
&lt;br&gt;&lt;br&gt;Tobias
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Patch%2C-Fortran--PR-42144%3A--OOP--deferred-TBPs-do-not-work-tp26817715p26829901.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26829584</id>
	<title>Re: Version script vs. mangled names on systems where size_type !=   unsigned  int</title>
	<published>2009-12-17T07:18:41Z</published>
	<updated>2009-12-17T07:18:41Z</updated>
	<author>
		<name>Paolo Carlini-3</name>
	</author>
	<content type="html">On 12/17/2009 04:32 PM, Dave Korn wrote:
&lt;br&gt;&amp;gt; Righto, I'll add the general comment as well as the two shorter ones. Did
&lt;br&gt;&amp;gt; your abi_check complete OK?
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;Sure, the entire regression suite actually. You are cleared to commit
&lt;br&gt;and close the PR.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Paolo.
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Version-script-vs.-mangled-names-on-systems-where-size_type-%21%3D--unsigned--int-tp26827838p26829584.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26829532</id>
	<title>Re: Version script vs. mangled names on systems where size_type !=  unsigned  int</title>
	<published>2009-12-17T07:16:25Z</published>
	<updated>2009-12-17T07:16:25Z</updated>
	<author>
		<name>Dave Korn-6</name>
	</author>
	<content type="html">Paolo Carlini wrote:
&lt;br&gt;&amp;gt; On 12/17/2009 04:23 PM, Dave Korn wrote:
&lt;br&gt;&amp;gt;&amp;gt; Do you mean something like this ...
&lt;br&gt;&amp;gt; Sure. A general comment like the one you posted before cannot hurt, but
&lt;br&gt;&amp;gt; really next time I have to write one of those patterns I want to be
&lt;br&gt;&amp;gt; reminded that 'x' and 'y' are also necessary in some cases (in the past,
&lt;br&gt;&amp;gt; if x86-64-linux multilib was fine I could consider a change more or less
&lt;br&gt;&amp;gt; safe from the linker script point of view, now isn't true anymore, and I
&lt;br&gt;&amp;gt; don't want to make mistakes)
&lt;br&gt;&lt;br&gt;&amp;nbsp; Righto, I'll add the general comment as well as the two shorter ones. &amp;nbsp;Did
&lt;br&gt;your abi_check complete OK?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; cheers,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DaveK
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Version-script-vs.-mangled-names-on-systems-where-size_type-%21%3D--unsigned--int-tp26827838p26829532.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26829506</id>
	<title>Re: PING [Patch, driver] PR41594 recognize -static-libstdc++ as a  valid option.</title>
	<published>2009-12-17T07:14:57Z</published>
	<updated>2009-12-17T07:14:57Z</updated>
	<author>
		<name>Dave Korn-6</name>
	</author>
	<content type="html">IainS wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On 17 Dec 2009, at 14:23, Dave Korn wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; IainS wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Although your patch resolves the issue of spec substitution - it &amp;nbsp;will
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; not resolve PR41596.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I believe my patch resolves both (and agreed is more complex because of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; that).
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;Yep, agreed; my patch only addresses the 41594 side of things, but I
&lt;br&gt;&amp;gt;&amp;gt; think
&lt;br&gt;&amp;gt;&amp;gt; if we used it rather than your one for that issue, you would only then
&lt;br&gt;&amp;gt;&amp;gt; need a
&lt;br&gt;&amp;gt;&amp;gt; much simpler patch on top to solve 41596, no?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I don't think I can make the solution to PR41596 simpler...
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; .. in fact, re-emitting the -static-libstdc++ flag without checking that
&lt;br&gt;&amp;gt; we really need to link will actually make the situation worse for cases
&lt;br&gt;&amp;gt; where we're compiling PCH.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; In order to solve PR41596 - one needs to detect that PCH generation is
&lt;br&gt;&amp;gt; happening and make sure that no library commands are emitted - since the
&lt;br&gt;&amp;gt; latter will cause a (redundant) invocation of collect2.
&lt;/div&gt;&lt;br&gt;&amp;nbsp; Ahh, tricky. &amp;nbsp;So I guess you really can't get away without removing it. &amp;nbsp;Hm.
&lt;br&gt;&lt;br&gt;&amp;gt; as I said, I'm happy to unwrap the re-emission so that it occurs for all
&lt;br&gt;&amp;gt; targets (if that's what people want).
&lt;br&gt;&lt;br&gt;&amp;nbsp; I certainly would like to see it appear on the command-line whenever a link
&lt;br&gt;is taking place (assuming it was specified by the user in the first place of
&lt;br&gt;course!).
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; cheers,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DaveK
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Patch%2C-driver--PR41594-recognize--static-libstdc%2B%2B-as-a-valid-option.-tp25757656p26829506.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26829484</id>
	<title>Re: Version script vs. mangled names on systems where size_type !=   unsigned  int</title>
	<published>2009-12-17T07:13:13Z</published>
	<updated>2009-12-17T07:13:13Z</updated>
	<author>
		<name>Paolo Carlini-3</name>
	</author>
	<content type="html">On 12/17/2009 04:23 PM, Dave Korn wrote:
&lt;br&gt;&amp;gt; Do you mean something like this ...
&lt;br&gt;Sure. A general comment like the one you posted before cannot hurt, but
&lt;br&gt;really next time I have to write one of those patterns I want to be
&lt;br&gt;reminded that 'x' and 'y' are also necessary in some cases (in the past,
&lt;br&gt;if x86-64-linux multilib was fine I could consider a change more or less
&lt;br&gt;safe from the linker script point of view, now isn't true anymore, and I
&lt;br&gt;don't want to make mistakes)
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Paolo.
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Version-script-vs.-mangled-names-on-systems-where-size_type-%21%3D--unsigned--int-tp26827838p26829484.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26829386</id>
	<title>Re: Version script vs. mangled names on systems where size_type !=  unsigned  int</title>
	<published>2009-12-17T07:07:32Z</published>
	<updated>2009-12-17T07:07:32Z</updated>
	<author>
		<name>Dave Korn-6</name>
	</author>
	<content type="html">Paolo Carlini wrote:
&lt;br&gt;&amp;gt; On 12/17/2009 03:28 PM, Dave Korn wrote:
&lt;br&gt;&amp;gt;&amp;gt; I'm not sure what first occurrence you mean or what goes before &amp;quot;...and
&lt;br&gt;&amp;gt;&amp;gt; below&amp;quot; in that sentence, but how about this instead:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt; The first occurrence of 'x' and 'y', what else? Just a one-line comment
&lt;br&gt;&amp;gt; before the first time you use 'x' and 'y', describing those, reminding
&lt;br&gt;&amp;gt; about LLP64 and finishing with something like &amp;quot;... and below&amp;quot;, to mean
&lt;br&gt;&amp;gt; that there are more 'x' and 'y' in the patterns below. I don't find that
&lt;br&gt;&amp;gt; so strange...
&lt;br&gt;&lt;br&gt;&amp;nbsp; Do you mean something like this ...
&lt;br&gt;&lt;br&gt;&amp;gt; @@ -167,20 +167,22 @@ GLIBCXX_3.4 {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;# Names not in an 'extern' block are mangled names.
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;# std::string
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp;_ZNSsC[12][EI][PRjmvN]*;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;# 'y' here and below represents 'unsigned long long'
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;# where it is used for size_type on LLP64 platforms.
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;_ZNSsC[12][EI][PRjmvyN]*;
&lt;br&gt;&lt;br&gt;... and this?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; @@ -342,7 +344,9 @@ GLIBCXX_3.4 {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;_ZNKSi[0-9][a-z]*;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;_ZNSi[0-9][a-h]*;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;_ZNSi[0-9][j-z]*;
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp;_ZNSi6ignoreE[il][il];
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;# 'x' here and below matches 'long long' where it
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;# is used for signed sizetypes on LLP64 platforms.
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;_ZNSi6ignoreE[ilx][ilx];
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;_ZNSirsE*[^g];
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; cheers,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DaveK
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Version-script-vs.-mangled-names-on-systems-where-size_type-%21%3D--unsigned--int-tp26827838p26829386.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26828879</id>
	<title>Re: Version script vs. mangled names on systems where size_type !=   unsigned  int</title>
	<published>2009-12-17T06:33:59Z</published>
	<updated>2009-12-17T06:33:59Z</updated>
	<author>
		<name>Paolo Carlini-3</name>
	</author>
	<content type="html">On 12/17/2009 03:28 PM, Dave Korn wrote:
&lt;br&gt;&amp;gt; I'm not sure what first occurrence you mean or what goes before &amp;quot;...and
&lt;br&gt;&amp;gt; below&amp;quot; in that sentence, but how about this instead:
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;The first occurrence of 'x' and 'y', what else? Just a one-line comment
&lt;br&gt;before the first time you use 'x' and 'y', describing those, reminding
&lt;br&gt;about LLP64 and finishing with something like &amp;quot;... and below&amp;quot;, to mean
&lt;br&gt;that there are more 'x' and 'y' in the patterns below. I don't find that
&lt;br&gt;so strange...
&lt;br&gt;&lt;br&gt;Paolo.
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Version-script-vs.-mangled-names-on-systems-where-size_type-%21%3D--unsigned--int-tp26827838p26828879.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26828807</id>
	<title>[PATCH] Fix PR42397</title>
	<published>2009-12-17T06:29:28Z</published>
	<updated>2009-12-17T06:29:28Z</updated>
	<author>
		<name>Richard Guenther-3</name>
	</author>
	<content type="html">&lt;br&gt;This fixes an ICE with an LTO testcase that uncovers a middle-end
&lt;br&gt;problem. &amp;nbsp;get_object_alignment does not properly handle &amp;CONST_DECL.
&lt;br&gt;&lt;br&gt;Fixed thus, bootstrapped and tested on x86_64-unknown-linux-gnu,
&lt;br&gt;committed to trunk.
&lt;br&gt;&lt;br&gt;Richard.
&lt;br&gt;&lt;br&gt;2009-12-17 &amp;nbsp;Richard Guenther &amp;nbsp;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26828807&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rguenther@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PR middle-end/42397
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * builtins.c (get_object_alignment): Properly deal with
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; a CONST_DECL base.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * expr.c (emit_block_move_hints): Assert the alignment makes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sense.
&lt;br&gt;&lt;br&gt;Index: gcc/builtins.c
&lt;br&gt;===================================================================
&lt;br&gt;*** gcc/builtins.c	(revision 155297)
&lt;br&gt;--- gcc/builtins.c	(working copy)
&lt;br&gt;*************** get_object_alignment (tree exp, unsigned
&lt;br&gt;*** 323,328 ****
&lt;br&gt;--- 323,330 ----
&lt;br&gt;&amp;nbsp; 	 &amp;nbsp;offset = next_offset;
&lt;br&gt;&amp;nbsp; 	}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; if (TREE_CODE (exp) == CONST_DECL)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; exp = DECL_INITIAL (exp);
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (DECL_P (exp))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; align = MIN (inner, DECL_ALIGN (exp));
&lt;br&gt;&amp;nbsp; #ifdef CONSTANT_ALIGNMENT
&lt;br&gt;Index: gcc/expr.c
&lt;br&gt;===================================================================
&lt;br&gt;*** gcc/expr.c	(revision 155297)
&lt;br&gt;--- gcc/expr.c	(working copy)
&lt;br&gt;*************** emit_block_move_hints (rtx x, rtx y, rtx
&lt;br&gt;*** 1194,1199 ****
&lt;br&gt;--- 1194,1200 ----
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; align = MIN (MEM_ALIGN (x), MEM_ALIGN (y));
&lt;br&gt;+ &amp;nbsp; gcc_assert (align &amp;gt;= BITS_PER_UNIT);
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; gcc_assert (MEM_P (x));
&lt;br&gt;&amp;nbsp; &amp;nbsp; gcc_assert (MEM_P (y));
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-PATCH--Fix-PR42397-tp26828807p26828807.html" />
</entry>

</feed>
