diff mbox

PR42554/49992: avoid use of '-c' flag with ranlib on darwin10 and later

Message ID 20110811232721.GA4474@bromo.med.uc.edu
State New
Headers show

Commit Message

Jack Howarth Aug. 11, 2011, 11:27 p.m. UTC
The following patch addresses http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42554#c15
by extending the logic used in...

Author: mrs
Date: Fri Mar 19 10:19:52 2010
New Revision: 157563

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157563
Log:
    PR ada/42554
    * configure.ac: Only pass -c to ranlib for darwin9 and earlier.
    * configure: Regenerate.

Modified:
    trunk/ChangeLog
    trunk/configure
    trunk/configure.ac

to gcc/configure. This eliminates the various bootstrap failures in PR49992, caused by duplicate
symbols between errors.c and diagnostic.c due to radar 6320843, "duplicate symbols from static libraries not
properly ignored". Since radar 6320843 only effects Xcode 3.2 and later, there is little
reason to change the logic as applied in r157563 of only inhibiting the use of the '-c' flag
with ranlib on darwin10 and later. Bootstrap and regression tested on x86_64-apple-darwin10.

http://gcc.gnu.org/ml/gcc-testresults/2011-08/msg01198.html

Okay for gcc trunk?
             Jack



2010-08-11  Jack Howarth <howarth@bromo.med.uc.edu>

	PR 42554/49992

	* gcc/configure.ac: Only pass -c to ranlib for darwin9 and earlier.
	* gcc/configure.ac: Regenerate.

Comments

Ralf Wildenhues Aug. 26, 2011, 10:27 a.m. UTC | #1
* Jack Howarth wrote on Fri, Aug 12, 2011 at 01:27:21AM CEST:
>    The following patch addresses http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42554#c15
> by extending the logic used in...

> URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157563
> Log:
>     PR ada/42554
>     * configure.ac: Only pass -c to ranlib for darwin9 and earlier.
>     * configure: Regenerate.

> Okay for gcc trunk?

OK with ...

> 2010-08-11  Jack Howarth <howarth@bromo.med.uc.edu>
> 
> 	PR 42554/49992
> 
> 	* gcc/configure.ac: Only pass -c to ranlib for darwin9 and earlier.
> 	* gcc/configure.ac: Regenerate.

... typo in file name fixed.

Thanks,
Ralf

> --- gcc/configure.ac	(revision 177684)
> +++ gcc/configure.ac	(working copy)
> @@ -821,11 +821,8 @@ gcc_AC_PROG_LN_S
>  ACX_PROG_LN($LN_S)
>  AC_PROG_RANLIB
>  case "${host}" in
> -*-*-darwin*)
> -  # By default, the Darwin ranlib will not treat common symbols as
> -  # definitions when  building the archive table of contents.  Other 
> -  # ranlibs do that; pass an option to the Darwin ranlib that makes
> -  # it behave similarly.
> +*-*-darwin[[3-9]]*)
> +  # ranlib before Darwin10 requires the -c flag to look at common symbols.
>    ranlib_flags="-c" 
>    ;;
>  *)
Iain Sandoe Aug. 26, 2011, 11:09 a.m. UTC | #2
On 26 Aug 2011, at 11:27, Ralf Wildenhues wrote:

> * Jack Howarth wrote on Fri, Aug 12, 2011 at 01:27:21AM CEST:
>>   The following patch addresses http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42554#c15
>> by extending the logic used in...
>
>> URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157563
>> Log:
>>    PR ada/42554
>>    * configure.ac: Only pass -c to ranlib for darwin9 and earlier.
>>    * configure: Regenerate.
>
>> Okay for gcc trunk?
>
> OK with ...
>
>> 2010-08-11  Jack Howarth <howarth@bromo.med.uc.edu>
>>
>> 	PR 42554/49992
>>
>> 	* gcc/configure.ac: Only pass -c to ranlib for darwin9 and earlier.
>> 	* gcc/configure.ac: Regenerate.
>
> ... typo in file name fixed.
>
> Thanks,
> Ralf
>
>> --- gcc/configure.ac	(revision 177684)
>> +++ gcc/configure.ac	(working copy)
>> @@ -821,11 +821,8 @@ gcc_AC_PROG_LN_S
>> ACX_PROG_LN($LN_S)
>> AC_PROG_RANLIB
>> case "${host}" in
>> -*-*-darwin*)
>> -  # By default, the Darwin ranlib will not treat common symbols as
>> -  # definitions when  building the archive table of contents.  Other
>> -  # ranlibs do that; pass an option to the Darwin ranlib that makes
>> -  # it behave similarly.
>> +*-*-darwin[[3-9]]*)
>> +  # ranlib before Darwin10 requires the -c flag to look at common  
>> symbols.
>>   ranlib_flags="-c"
>>   ;;
>> *)


I am still investigating this -- getting Ada bootstrapped on ppc has  
taken some time...

not objecting to the patch - but I think we can go further....
... as commented in the PR, I would say that we can likely remove the  
special casing of ranlib completely for all Darwin (some more testing  
on ppc/ada still under way).  So far OK on ppc/darwin8....x86_64/ 
darwin10 (incl. ada on *86*)

As things stand, darwin < 8 will not bootstrap GCC 4.6 or trunk with  
its native toolset; it requires the use of odcctools or similar to  
make use of newer versions of ld.  (thus, support of ancient  darwin  
is conditional on use of a toolset from at least darwin 8 era).

cheers
Iain
Jack Howarth Aug. 26, 2011, 12:50 p.m. UTC | #3
On Fri, Aug 26, 2011 at 12:09:53PM +0100, Iain Sandoe wrote:
>
> On 26 Aug 2011, at 11:27, Ralf Wildenhues wrote:
>
>> * Jack Howarth wrote on Fri, Aug 12, 2011 at 01:27:21AM CEST:
>>>   The following patch addresses http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42554#c15
>>> by extending the logic used in...
>>
>>> URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157563
>>> Log:
>>>    PR ada/42554
>>>    * configure.ac: Only pass -c to ranlib for darwin9 and earlier.
>>>    * configure: Regenerate.
>>
>>> Okay for gcc trunk?
>>
>> OK with ...
>>
>>> 2010-08-11  Jack Howarth <howarth@bromo.med.uc.edu>
>>>
>>> 	PR 42554/49992
>>>
>>> 	* gcc/configure.ac: Only pass -c to ranlib for darwin9 and earlier.
>>> 	* gcc/configure.ac: Regenerate.
>>
>> ... typo in file name fixed.
>>
>> Thanks,
>> Ralf
>>
>>> --- gcc/configure.ac	(revision 177684)
>>> +++ gcc/configure.ac	(working copy)
>>> @@ -821,11 +821,8 @@ gcc_AC_PROG_LN_S
>>> ACX_PROG_LN($LN_S)
>>> AC_PROG_RANLIB
>>> case "${host}" in
>>> -*-*-darwin*)
>>> -  # By default, the Darwin ranlib will not treat common symbols as
>>> -  # definitions when  building the archive table of contents.  Other
>>> -  # ranlibs do that; pass an option to the Darwin ranlib that makes
>>> -  # it behave similarly.
>>> +*-*-darwin[[3-9]]*)
>>> +  # ranlib before Darwin10 requires the -c flag to look at common  
>>> symbols.
>>>   ranlib_flags="-c"
>>>   ;;
>>> *)
>
>
> I am still investigating this -- getting Ada bootstrapped on ppc has  
> taken some time...

Iain,
   Why don't you take the path of least resistance and just post your
proposed patch to unconditionally drop "-c" from ranflags with a cc
to the AdaCore developers. They should already be configured to test
on darwin.
         Jack

>
> not objecting to the patch - but I think we can go further....
> ... as commented in the PR, I would say that we can likely remove the  
> special casing of ranlib completely for all Darwin (some more testing on 
> ppc/ada still under way).  So far OK on ppc/darwin8....x86_64/darwin10 
> (incl. ada on *86*)
>
> As things stand, darwin < 8 will not bootstrap GCC 4.6 or trunk with its 
> native toolset; it requires the use of odcctools or similar to make use 
> of newer versions of ld.  (thus, support of ancient  darwin is 
> conditional on use of a toolset from at least darwin 8 era).
>
> cheers
> Iain
diff mbox

Patch

Index: gcc/configure.ac
===================================================================
--- gcc/configure.ac	(revision 177684)
+++ gcc/configure.ac	(working copy)
@@ -821,11 +821,8 @@  gcc_AC_PROG_LN_S
 ACX_PROG_LN($LN_S)
 AC_PROG_RANLIB
 case "${host}" in
-*-*-darwin*)
-  # By default, the Darwin ranlib will not treat common symbols as
-  # definitions when  building the archive table of contents.  Other 
-  # ranlibs do that; pass an option to the Darwin ranlib that makes
-  # it behave similarly.
+*-*-darwin[[3-9]]*)
+  # ranlib before Darwin10 requires the -c flag to look at common symbols.
   ranlib_flags="-c" 
   ;;
 *)