This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[IRIX6]: force libgcc_visibility off


AFAICT, the only reason why this chunk of code covered only
mips-sgi-irix6o32 is that GNU assembler used to work for o32 but not
for the other IRIX 6 ABIs.  When we use GNU as, the visibility test
passes, but then the IRIX linker can't cope with the visibility notes
left by the assembler, when in o32 mode.  The failure mode is
different with N32 and N64, but it's also there.  Since I'm about to
enable GNU as support for IRIX 6, this patch must go in first.  I'm
checking it in both mainline and 3.3.

Index: gcc/ChangeLog
from  Alexandre Oliva  <aoliva@redhat.com>
	* configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
	* configure: Rebuilt.

Index: gcc/configure.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/configure.in,v
retrieving revision 1.633
diff -u -p -r1.633 configure.in
--- gcc/configure.in 10 Jan 2003 18:52:34 -0000 1.633
+++ gcc/configure.in 15 Jan 2003 10:46:49 -0000
@@ -1,7 +1,7 @@
 # configure.in for GCC
 # Process this file with autoconf to generate a configuration script.
 
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003
 # Free Software Foundation, Inc.
 
 #This file is part of GCC.
@@ -1675,10 +1675,14 @@ fi
 AC_MSG_RESULT($gcc_cv_as_hidden)
 libgcc_visibility=$gcc_cv_as_hidden
 case "$target" in
-  mips-sgi-irix6*o32)
+  mips-sgi-irix6*)
     if test x"$gnu_ld_flag" = x"no"; then
       # Even if using gas with .hidden support, the resulting object files
-      # cannot be linked with the IRIX 6 O32 linker.
+      # cannot be linked with the IRIX 6 O32 linker.  With the N32 and
+      # N64 linkers, the problem is that the linker refuses to accept
+      # -call_shared (passed by default to the linker) and -r (used to
+      # link the object file generated without .hidden directives with
+      # one that hides symbols), so we also lose.
       libgcc_visibility=no
     fi
     ;;
-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                 aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]