On Mon, 28 May 2007, Nicholas Clark wrote: > On Sat, May 26, 2007 at 08:14:30PM -0700, [EMAIL PROTECTED] wrote:
> > +++ trunk/config/init/hints/linux.pm Sat May 26 20:14:29 2007 > > @@ -52,6 +52,9 @@ > > } > > } > > else { > > + # hide non-exported symbols > > + $cflags .= ' -fvisibility=hidden'; > > + > > if ( $ld_share_flags !~ /-fPIC/ ) { > > $ld_share_flags .= ' -fPIC'; > > } > > @@ -87,6 +90,7 @@ > > libparrot_shared => 'libparrot$(SHARE_EXT).$(SOVERSION)', > > libparrot_shared_alias => 'libparrot$(SHARE_EXT)', > > libparrot_soname => > > '-Wl,-soname=libparrot$(SHARE_EXT).$(SOVERSION)', > > + sym_export => '__attribute__ > > ((visibility("default")))', > > ); > > > > if ( ( split( '-', $Config{archname} ) )[0] eq 'ia64' ) { > > This is something I really approve of, but it can't be done unconditionally. > Is the gcc version kept somewhere convenient in the configure data structures? Yes it is. Although the gccversion test hasn't been called when the hints file is processed, the Configure system does have a fairly complete set of callback "triggers" that can be used to run this code at the right time. The solaris hints file has examples of using such triggers. I think the solaris cc_shared trigger is probably a good example to follow here. (Though it looks like my comment about a hypothetical shlibs.pl unit is no longer quite applicable since there now appears to be a shlibs.pm unit. Perhaps I should fix that up some day.) -- Andy Dougherty [EMAIL PROTECTED]