public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Patch, Ada, Darwin] Remove use of "flat_namespace" linker flag.
@ 2011-09-07  8:13 Iain Sandoe
  2011-09-07 17:05 ` Mike Stump
  2011-09-14  8:51 ` Arnaud Charlet
  0 siblings, 2 replies; 4+ messages in thread
From: Iain Sandoe @ 2011-09-07  8:13 UTC (permalink / raw)
  To: GCC Patches; +Cc: Arnaud Charlet, Mike Stump

[-- Attachment #1: Type: text/plain, Size: 1385 bytes --]

The "-flat_namespace" linker flag defeats one of Darwin's nicer  
features (two-level library namespaces).

AFAIU, it was habitually applied to unix projects in the early  
versions of darwin to cater for assumptions about library ordering  
made in such projects.

However, it is rarely needed these days (perhaps in the case of  
imported unix projects using plugins sometimes).

It also upsets our careful use of an extension library to provide  
current GCC facilities to Darwin 8...11 (which relies on the two-level  
namespace to use both the system and GCC versions of libgcc_s) ...  
and, in particular, this can cause subtle and difficult to diagnose  
differences of behavior between darwin 9 and later systems.

---

Perhaps I'm missing something (please enlighten me if so), but I can't  
presently see any reason why this needs to be applied to the Ada  
_build_ ...
... and IMHO it's likely to cause end user issues defaulting to it for  
shared library Ada make projects.
(better that the User should explicitly issue the flag where it is  
required)

So is the following OK for trunk?
(no Ada regressions on *-darwin9, x86_64-darwin10).

cheers
Iain

ada:

	* gcc-interface/Makefile.in (darwin): Do not issue the
	'-flat_namespace'  linker flag during Ada build.
	 * mlib-tgt-specific-darwin.adb: Remove 'flat_namespace' flag from
	the default shared library options.


[-- Attachment #2: 178615-ada-flat-namespace-diff.txt --]
[-- Type: text/plain, Size: 1377 bytes --]

Index: gcc/ada/mlib-tgt-specific-darwin.adb
===================================================================
--- gcc/ada/mlib-tgt-specific-darwin.adb	(revision 178615)
+++ gcc/ada/mlib-tgt-specific-darwin.adb	(working copy)
@@ -57,15 +57,10 @@ package body MLib.Tgt.Specific is
 
    --  Local objects
 
-   Flat_Namespace : aliased String := "-Wl,-flat_namespace";
-   --  Instruct the linker to build the shared library as a flat
-   --  namespace image. The default is a two-level namespace image.
-
    Shared_Libgcc  : aliased String := "-shared-libgcc";
 
    Shared_Options : constant Argument_List :=
-                      (1 => Flat_Namespace'Access,
-                       2 => Shared_Libgcc'Access);
+                      (1 => Shared_Libgcc'Access);
 
    -----------------------------
    -- Archive_Indexer_Options --
Index: gcc/ada/gcc-interface/Makefile.in
===================================================================
--- gcc/ada/gcc-interface/Makefile.in	(revision 178615)
+++ gcc/ada/gcc-interface/Makefile.in	(working copy)
@@ -2164,7 +2164,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(arch)
 endif
 
 ifeq ($(strip $(filter-out darwin%,$(osys))),)
-  SO_OPTS = -Wl,-flat_namespace -shared-libgcc
+  SO_OPTS = -shared-libgcc
   ifeq ($(strip $(filter-out %86,$(arch))),)
     LIBGNAT_TARGET_PAIRS = \
     a-intnam.ads<a-intnam-darwin.ads \

[-- Attachment #3: Type: text/plain, Size: 3 bytes --]





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Patch, Ada, Darwin] Remove use of "flat_namespace" linker flag.
  2011-09-07  8:13 [Patch, Ada, Darwin] Remove use of "flat_namespace" linker flag Iain Sandoe
@ 2011-09-07 17:05 ` Mike Stump
  2011-09-07 18:01   ` Arnaud Charlet
  2011-09-14  8:51 ` Arnaud Charlet
  1 sibling, 1 reply; 4+ messages in thread
From: Mike Stump @ 2011-09-07 17:05 UTC (permalink / raw)
  To: Iain Sandoe; +Cc: GCC Patches, Arnaud Charlet, Mike Stump

On Sep 7, 2011, at 1:08 AM, Iain Sandoe wrote:
> It also upsets our careful use of an extension library to provide current GCC facilities to Darwin 8...11 (which relies on the two-level namespace to use both the system and GCC versions of libgcc_s) ... and, in particular, this can cause subtle and difficult to diagnose differences of behavior between darwin 9 and later systems.

> So is the following OK for trunk?

I'm ok with it from a darwin perspective if you want to go that direction, though, this would be an Ada person call in the end.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Patch, Ada, Darwin] Remove use of "flat_namespace" linker flag.
  2011-09-07 17:05 ` Mike Stump
@ 2011-09-07 18:01   ` Arnaud Charlet
  0 siblings, 0 replies; 4+ messages in thread
From: Arnaud Charlet @ 2011-09-07 18:01 UTC (permalink / raw)
  To: Mike Stump; +Cc: Iain Sandoe, GCC Patches, Mike Stump, Arnaud Charlet

> > It also upsets our careful use of an extension library to provide current
> > GCC facilities to Darwin 8...11 (which relies on the two-level namespace
> > to use both the system and GCC versions of libgcc_s) ... and, in
> > particular, this can cause subtle and difficult to diagnose differences
> > of behavior between darwin 9 and later systems.
> 
> > So is the following OK for trunk?
> 
> I'm ok with it from a darwin perspective if you want to go that direction,
> though, this would be an Ada person call in the end.

We're reviewing this patch and its consequences. For now the patch is NOT OK
since the change was done for a reason initially. The question is whether
the reason still holds today, so stay tuned.

Arno

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Patch, Ada, Darwin] Remove use of "flat_namespace" linker flag.
  2011-09-07  8:13 [Patch, Ada, Darwin] Remove use of "flat_namespace" linker flag Iain Sandoe
  2011-09-07 17:05 ` Mike Stump
@ 2011-09-14  8:51 ` Arnaud Charlet
  1 sibling, 0 replies; 4+ messages in thread
From: Arnaud Charlet @ 2011-09-14  8:51 UTC (permalink / raw)
  To: Iain Sandoe; +Cc: GCC Patches, Mike Stump

Iain,

> So is the following OK for trunk?
> (no Ada regressions on *-darwin9, x86_64-darwin10).
> 
> cheers
> Iain
> 
> ada:
> 
> 	* gcc-interface/Makefile.in (darwin): Do not issue the
> 	'-flat_namespace'  linker flag during Ada build.
> 	 * mlib-tgt-specific-darwin.adb: Remove 'flat_namespace' flag from
> 	the default shared library options.

After double checking on our various test suites, this change is OK,
thanks.

Arno

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-09-14  8:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-07  8:13 [Patch, Ada, Darwin] Remove use of "flat_namespace" linker flag Iain Sandoe
2011-09-07 17:05 ` Mike Stump
2011-09-07 18:01   ` Arnaud Charlet
2011-09-14  8:51 ` Arnaud Charlet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).