On Sat, May 26, 2007 at 08:14:30PM -0700, [EMAIL PROTECTED] wrote: > Author: chromatic > Date: Sat May 26 20:14:29 2007 > New Revision: 18661 > > Modified: > trunk/config/init/hints/linux.pm > > Log: > Enable symbol hiding with GCC on Linux. > > This'll smoke out some of the errors that plague Windows users.
It breaks on gcc 3.3.5 > Modified: trunk/config/init/hints/linux.pm > ============================================================================== > --- trunk/config/init/hints/linux.pm (original) > +++ 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? Nicholas Clark