97845ed
Mostly the same as firefox-1.5-visibility.patch with the addition of lber.h
97845ed
97845ed
--- mozilla/config/system-headers.visibility	2005-06-17 17:03:42.000000000 -0400
97845ed
+++ mozilla/config/system-headers	2006-09-05 00:03:12.000000000 -0400
97845ed
@@ -66,6 +66,7 @@
97845ed
 Button.h
97845ed
 byteswap.h
97845ed
 cairo.h
97845ed
+cairo-xlib.h
97845ed
 callconv.h
97845ed
 Carbon/Carbon.h
97845ed
 CarbonEvents.h
97845ed
@@ -176,7 +177,7 @@
97845ed
 freetype/freetype.h
97845ed
 freetype/ftcache.h
97845ed
 freetype/ftglyph.h
97845ed
-freetype/ftoutlin.h
97845ed
+freetype/ftoutln.h
97845ed
 freetype/ttnameid.h
97845ed
 freetype/tttables.h
97845ed
 fribidi/fribidi.h
97845ed
@@ -192,6 +193,8 @@
97845ed
 gdk/gdkregion.h
97845ed
 gdk/gdkwindow.h
97845ed
 gdk/gdkx.h
97845ed
+gdk/gdkpango.h
97845ed
+gdk/gdkalias.h
97845ed
 gdk-pixbuf/gdk-pixbuf.h
97845ed
 Gestalt.h
97845ed
 getopt.h
97845ed
@@ -212,7 +215,11 @@
97845ed
 gtk/gtkcontainer.h
97845ed
 gtk/gtkdialog.h
97845ed
 gtk/gtkentry.h
97845ed
+gtk/gtkfilechooser.h
97845ed
+gtk/gtkfixed.h
97845ed
 gtk/gtk.h
97845ed
+gtk/gtkiconfactory.h
97845ed
+gtk/gtkimage.h
97845ed
 gtk/gtkimmulticontext.h
97845ed
 gtk/gtkinvisible.h
97845ed
 gtk/gtkmain.h
97845ed
@@ -279,6 +286,7 @@
97845ed
 LaunchServices.h
97845ed
 LBroadcaster.h
97845ed
 LButton.h
97845ed
+lber.h
97845ed
 lcache.h
97845ed
 LCaption.h
97845ed
 LCheckBox.h
97845ed
@@ -500,6 +508,7 @@
97845ed
 PLStringFuncs.h
97845ed
 PMApplication.h
97845ed
 pmddim.h
97845ed
+png.h
97845ed
 poll.h
97845ed
 Polygon.h
97845ed
 portable.h
97845ed
@@ -874,6 +883,7 @@
97845ed
 X11/Xutil.h
97845ed
 xpt_struct.h
97845ed
 xpt_xdr.h
97845ed
+zlib.h
97845ed
 zmouse.h
97845ed
 sslt.h
97845ed
 smime.h
97845ed
--- mozilla/xpcom/base/nscore.h.visibility	2006-02-21 22:19:38.000000000 -0500
97845ed
+++ mozilla/xpcom/base/nscore.h	2006-09-04 23:26:15.000000000 -0400
97845ed
@@ -105,7 +105,7 @@
97845ed
 #define NS_VISIBILITY_HIDDEN
97845ed
 #endif
97845ed
 
97845ed
-#if defined(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE) && defined(HAVE_VISIBILITY_PRAGMA)
97845ed
+#if defined(HAVE_VISIBILITY_ATTRIBUTE)
97845ed
 #define NS_VISIBILITY_DEFAULT __attribute__ ((visibility ("default")))
97845ed
 #else
97845ed
 #define NS_VISIBILITY_DEFAULT
97845ed
--- mozilla/configure.visibility	2006-09-04 23:26:15.000000000 -0400
97845ed
+++ mozilla/configure	2006-09-04 23:26:15.000000000 -0400
97845ed
@@ -5331,9 +5331,9 @@
97845ed
 OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
97845ed
 
97845ed
 if test "$GNU_CC"; then
97845ed
-    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
-    MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
-    DSO_LDOPTS='-shared -Wl,-h -Wl,$@'
97845ed
+    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
97845ed
+    MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
97845ed
+    DSO_LDOPTS='-shared'
97845ed
     DSO_CFLAGS=''
97845ed
     DSO_PIC_CFLAGS='-fPIC'
97845ed
     _MOZ_RTTI_FLAGS_ON=${_COMPILER_PREFIX}-frtti
97845ed
@@ -5357,9 +5357,9 @@
97845ed
     _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT'
97845ed
     _USE_CPP_INCLUDE_FLAG=1
97845ed
 else
97845ed
-    MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
-    MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
-    DSO_LDOPTS='-shared -h $@'
97845ed
+    MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
97845ed
+    MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
97845ed
+    DSO_LDOPTS='-shared'
97845ed
     DSO_CFLAGS=''
97845ed
     DSO_PIC_CFLAGS='-KPIC'
97845ed
     _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
97845ed
@@ -5703,9 +5703,9 @@
97845ed
 
97845ed
 *-beos*)
97845ed
     no_x=yes
97845ed
-    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
+    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
97845ed
     _PLATFORM_DEFAULT_TOOLKIT="beos"
97845ed
-    DSO_LDOPTS='-nostart -Wl,-h -Wl,$@'
97845ed
+    DSO_LDOPTS='-nostart'
97845ed
     TK_LIBS='-lbe -lroot'
97845ed
     LIBS="$LIBS -lbe"
97845ed
     if test "$COMPILE_ENVIRONMENT"; then
97845ed
@@ -5871,16 +5871,16 @@
97845ed
 *-hpux*)
97845ed
     DLL_SUFFIX=".sl"
97845ed
     if test ! "$GNU_CC"; then
97845ed
-    	DSO_LDOPTS='-b -Wl,+s -L$(DIST)/bin'
97845ed
+    	DSO_LDOPTS='-b -Wl,+s'
97845ed
     	DSO_CFLAGS=""
97845ed
     	DSO_PIC_CFLAGS="+Z"
97845ed
-    	MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
+    	MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(DIST)/bin -o $@'
97845ed
     	MKCSHLIB='$(LD) -b +s -L$(DIST)/bin -o $@'
97845ed
         CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
97845ed
     else
97845ed
-    	DSO_LDOPTS='-b -E +s -L$(DIST)/bin -L$(DIST)/lib'
97845ed
-    	MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
-    	MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
+        DSO_LDOPTS='-b -E +s'
97845ed
+        MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(DIST)/bin -L$(DIST)/lib -o $@'
97845ed
+        MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(DIST)/bin -L$(DIST)/lib -o $@'
97845ed
     fi
97845ed
     MOZ_POST_PROGRAM_COMMAND='chatr +s enable'
97845ed
     cat >> confdefs.h <<\EOF
97845ed
@@ -5895,11 +5895,16 @@
97845ed
 EOF
97845ed
 
97845ed
     DSO_LDOPTS='-elf -shared'
97845ed
+
97845ed
     if test "$GNU_CC"; then
97845ed
+       MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
+       MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
        MKSHLIB_FORCE_ALL='-Wl,-all'
97845ed
        MKSHLIB_UNFORCE_ALL='-Wl,-none'
97845ed
        CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
97845ed
     else
97845ed
+       MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
+       MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
        MKSHLIB_FORCE_ALL='-all'
97845ed
        MKSHLIB_UNFORCE_ALL='-none'
97845ed
     fi
97845ed
@@ -6338,7 +6343,7 @@
97845ed
     if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
97845ed
         DLL_SUFFIX=".so"
97845ed
         DSO_PIC_CFLAGS='-fPIC -DPIC'
97845ed
-        DSO_LDOPTS='-shared -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX)'
97845ed
+        DSO_LDOPTS='-shared'
97845ed
 	BIN_FLAGS='-Wl,--export-dynamic'
97845ed
     else
97845ed
     	DSO_PIC_CFLAGS='-fPIC -DPIC'
97845ed
@@ -6351,6 +6356,8 @@
97845ed
     if test "$LIBRUNPATH"; then
97845ed
 	DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
97845ed
     fi
97845ed
+    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
97845ed
+    MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
97845ed
     ;;
97845ed
 
97845ed
 *-nto*) 
97845ed
@@ -6571,17 +6578,19 @@
97845ed
 
97845ed
 alpha*-*-osf*)
97845ed
     if test "$GNU_CC"; then
97845ed
-	DSO_LDOPTS='-shared -Wl,-soname -Wl,$@'
97845ed
+      MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
97845ed
+      MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
97845ed
+
97845ed
     else
97845ed
 	MOZ_DEBUG_FLAGS='-g'
97845ed
 	ASFLAGS='-I$(topsrcdir)/xpcom/reflect/xptcall/public -g'
97845ed
 	CFLAGS="$CFLAGS -ieee"
97845ed
 	CXXFLAGS="$CXXFLAGS "'-noexceptions -ieee  -ptr $(DIST)/cxx_repository'
97845ed
-	DSO_LDOPTS='-shared -msym -expect_unresolved \* -soname $@ -update_registry $(DIST)/so_locations'
97845ed
+	DSO_LDOPTS='-shared -msym -expect_unresolved \* -update_registry $(DIST)/so_locations'
97845ed
 	DSO_CFLAGS=
97845ed
 	DSO_PIC_CFLAGS=
97845ed
-	MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
-	MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
+	MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
97845ed
+	MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
97845ed
 	MKSHLIB_FORCE_ALL='-all'
97845ed
 	MKSHLIB_UNFORCE_ALL='-none'
97845ed
 		cat >> confdefs.h <<\EOF
97845ed
@@ -6634,7 +6643,7 @@
97845ed
 
97845ed
     CXXFLAGS="$CXXFLAGS -I/usr/include/CC"
97845ed
     if test ! "$GNU_CC"; then
97845ed
-       DSO_LDOPTS='-G -h $@'
97845ed
+       DSO_LDOPTS='-G'
97845ed
     fi
97845ed
     ;;
97845ed
 
97845ed
@@ -6655,11 +6664,11 @@
97845ed
        CXXFLAGS="$CXXFLAGS -xbuiltin=%all -features=tmplife"
97845ed
        LDFLAGS="-xildoff -zlazyload -zcombreloc $LDFLAGS"
97845ed
        MOZ_OPTIMIZE_FLAGS="-xO4"
97845ed
-       MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -o $@'
97845ed
-       MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -Wl,-z -Wl,muldefs -o $@'
97845ed
+       MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@'
97845ed
+       KCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -Wl,-z -Wl,muldefs -h $@ -o $@'
97845ed
        MKSHLIB_FORCE_ALL='-Qoption ld -z,allextract'
97845ed
        MKSHLIB_UNFORCE_ALL=''
97845ed
-       DSO_LDOPTS='-G -Qoption ld -z,muldefs -h $@'
97845ed
+       DSO_LDOPTS='-G -Qoption ld -z,muldefs'
97845ed
        AR_LIST="$AR t"
97845ed
        AR_EXTRACT="$AR x"
97845ed
        AR_DELETE="$AR d"
97845ed
@@ -6717,7 +6726,7 @@
97845ed
 
97845ed
     else
97845ed
        ASFLAGS="$ASFLAGS -fPIC"
97845ed
-       DSO_LDOPTS='-G -h $@'
97845ed
+       DSO_LDOPTS='-G'
97845ed
        _WARNINGS_CFLAGS=''
97845ed
        _WARNINGS_CXXFLAGS=''
97845ed
        if test "$OS_RELEASE" = "5.3"; then
97845ed
@@ -7708,13 +7717,39 @@
97845ed
 fi
97845ed
 
97845ed
 echo "$ac_t""$ac_cv_visibility_hidden" 1>&6
97845ed
-   if test "$ac_cv_visibility_hidden" = "yes"; then
97845ed
-      cat >> confdefs.h <<\EOF
97845ed
+  if test "$ac_cv_visibility_hidden" = "yes"; then
97845ed
+    cat >> confdefs.h <<\EOF
97845ed
 #define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1
97845ed
 EOF
97845ed
 
97845ed
+
97845ed
+    echo $ac_n "checking for visibility(default) attribute""... $ac_c" 1>&6
97845ed
+echo "configure:7728: checking for visibility(default) attribute" >&5
97845ed
+if eval "test \"`echo '$''{'ac_cv_visibility_default'+set}'`\" = set"; then
97845ed
+  echo $ac_n "(cached) $ac_c" 1>&6
97845ed
+else
97845ed
+  cat > conftest.c <
97845ed
+                    int foo __attribute__ ((visibility ("default"))) = 1;
97845ed
+EOF
97845ed
+                    ac_cv_visibility_default=no
97845ed
+                    if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
97845ed
+                      if ! grep '\.hidden.*foo' conftest.s >/dev/null; then
97845ed
+                        ac_cv_visibility_default=yes
97845ed
+                      fi
97845ed
+                    fi
97845ed
+                    rm -f conftest.cs
97845ed
+                   
97845ed
+fi
97845ed
+
97845ed
+echo "$ac_t""$ac_cv_visibility_default" 1>&6
97845ed
+    if test "$ac_cv_visibility_default" = "yes"; then
97845ed
+      cat >> confdefs.h <<\EOF
97845ed
+#define HAVE_VISIBILITY_ATTRIBUTE 1
97845ed
+EOF
97845ed
+
97845ed
+
97845ed
       echo $ac_n "checking for visibility pragma support""... $ac_c" 1>&6
97845ed
-echo "configure:7710: checking for visibility pragma support" >&5
97845ed
+echo "configure:7753: checking for visibility pragma support" >&5
97845ed
 if eval "test \"`echo '$''{'ac_cv_visibility_pragma'+set}'`\" = set"; then
97845ed
   echo $ac_n "(cached) $ac_c" 1>&6
97845ed
 else
97845ed
@@ -7738,15 +7773,41 @@
97845ed
 
97845ed
 echo "$ac_t""$ac_cv_visibility_pragma" 1>&6
97845ed
       if test "$ac_cv_visibility_pragma" = "yes"; then
97845ed
-        cat >> confdefs.h <<\EOF
97845ed
-#define HAVE_VISIBILITY_PRAGMA 1
97845ed
+        echo $ac_n "checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)""... $ac_c" 1>&6
97845ed
+echo "configure:7778: checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)" >&5
97845ed
+if eval "test \"`echo '$''{'ac_cv_have_visibility_builtin_bug'+set}'`\" = set"; then
97845ed
+  echo $ac_n "(cached) $ac_c" 1>&6
97845ed
+else
97845ed
+  cat > conftest.c <
97845ed
+#pragma GCC visibility push(hidden)
97845ed
+#pragma GCC visibility push(default)
97845ed
+#include <string.h>
97845ed
+#pragma GCC visibility pop
97845ed
+
97845ed
+__attribute__ ((visibility ("default"))) void Func() {
97845ed
+  char c[100];
97845ed
+  memset(c, 0, sizeof(c));
97845ed
+}
97845ed
 EOF
97845ed
+                       ac_cv_have_visibility_builtin_bug=no
97845ed
+                       if ! ${CC-cc} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -o conftest.so conftest.c >/dev/null 2>&1; then
97845ed
+                         ac_cv_have_visibility_builtin_bug=yes
97845ed
+                       fi
97845ed
+                       rm -f conftest.{c,so}
97845ed
+                       
97845ed
+fi
97845ed
 
97845ed
-        VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
97845ed
-        WRAP_SYSTEM_INCLUDES=1
97845ed
-      fi
97845ed
-   fi
97845ed
-fi     # GNU_CC
97845ed
+echo "$ac_t""$ac_cv_have_visibility_builtin_bug" 1>&6
97845ed
+        if test "$ac_cv_have_visibility_builtin_bug" = "no"; then
97845ed
+          VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
97845ed
+          WRAP_SYSTEM_INCLUDES=1
97845ed
+        else
97845ed
+          VISIBILITY_FLAGS='-fvisibility=hidden'
97845ed
+        fi # have visibility pragma bug
97845ed
+      fi   # have visibility pragma
97845ed
+    fi     # have visibility(default) attribute
97845ed
+  fi       # have visibility(hidden) attribute
97845ed
+fi         # GNU_CC
97845ed
 
97845ed
 
97845ed
 
97845ed
--- mozilla/configure.in.visibility	2006-09-04 23:26:15.000000000 -0400
97845ed
+++ mozilla/configure.in	2006-09-04 23:26:15.000000000 -0400
97845ed
@@ -1103,9 +1103,9 @@
97845ed
 dnl GNU specific defaults
97845ed
 dnl ========================================================
97845ed
 if test "$GNU_CC"; then
97845ed
-    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
-    MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
-    DSO_LDOPTS='-shared -Wl,-h -Wl,$@'
97845ed
+    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
97845ed
+    MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
97845ed
+    DSO_LDOPTS='-shared'
97845ed
     DSO_CFLAGS=''
97845ed
     DSO_PIC_CFLAGS='-fPIC'
97845ed
     _MOZ_RTTI_FLAGS_ON=${_COMPILER_PREFIX}-frtti
97845ed
@@ -1130,9 +1130,9 @@
97845ed
     _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT'
97845ed
     _USE_CPP_INCLUDE_FLAG=1
97845ed
 else
97845ed
-    MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
-    MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
-    DSO_LDOPTS='-shared -h $@'
97845ed
+    MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
97845ed
+    MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
97845ed
+    DSO_LDOPTS='-shared'
97845ed
     DSO_CFLAGS=''
97845ed
     DSO_PIC_CFLAGS='-KPIC'
97845ed
     _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
97845ed
@@ -1360,9 +1360,9 @@
97845ed
 
97845ed
 *-beos*)
97845ed
     no_x=yes
97845ed
-    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
+    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
97845ed
     _PLATFORM_DEFAULT_TOOLKIT="beos"
97845ed
-    DSO_LDOPTS='-nostart -Wl,-h -Wl,$@'
97845ed
+    DSO_LDOPTS='-nostart'
97845ed
     TK_LIBS='-lbe -lroot'
97845ed
     LIBS="$LIBS -lbe"
97845ed
     if test "$COMPILE_ENVIRONMENT"; then
97845ed
@@ -1442,16 +1442,16 @@
97845ed
 *-hpux*)
97845ed
     DLL_SUFFIX=".sl"
97845ed
     if test ! "$GNU_CC"; then
97845ed
-    	DSO_LDOPTS='-b -Wl,+s -L$(DIST)/bin'
97845ed
+    	DSO_LDOPTS='-b -Wl,+s'
97845ed
     	DSO_CFLAGS=""
97845ed
     	DSO_PIC_CFLAGS="+Z"
97845ed
-    	MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
+    	MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(DIST)/bin -o $@'
97845ed
     	MKCSHLIB='$(LD) -b +s -L$(DIST)/bin -o $@'
97845ed
         CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
97845ed
     else
97845ed
-    	DSO_LDOPTS='-b -E +s -L$(DIST)/bin -L$(DIST)/lib'
97845ed
-    	MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
-    	MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
+        DSO_LDOPTS='-b -E +s'
97845ed
+        MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(DIST)/bin -L$(DIST)/lib -o $@'
97845ed
+        MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(DIST)/bin -L$(DIST)/lib -o $@'
97845ed
     fi
97845ed
     MOZ_POST_PROGRAM_COMMAND='chatr +s enable'
97845ed
     AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
97845ed
@@ -1460,11 +1460,16 @@
97845ed
 *-irix5*)
97845ed
     AC_DEFINE(IRIX)
97845ed
     DSO_LDOPTS='-elf -shared'
97845ed
+
97845ed
     if test "$GNU_CC"; then
97845ed
+       MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
+       MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
        MKSHLIB_FORCE_ALL='-Wl,-all'
97845ed
        MKSHLIB_UNFORCE_ALL='-Wl,-none'
97845ed
        CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
97845ed
     else
97845ed
+       MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
+       MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
97845ed
        MKSHLIB_FORCE_ALL='-all'
97845ed
        MKSHLIB_UNFORCE_ALL='-none'
97845ed
     fi
97845ed
@@ -1818,7 +1823,7 @@
97845ed
     if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
97845ed
         DLL_SUFFIX=".so"
97845ed
         DSO_PIC_CFLAGS='-fPIC -DPIC'
97845ed
-        DSO_LDOPTS='-shared -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX)'
97845ed
+        DSO_LDOPTS='-shared'
97845ed
 	BIN_FLAGS='-Wl,--export-dynamic'
97845ed
     else
97845ed
     	DSO_PIC_CFLAGS='-fPIC -DPIC'
97845ed
@@ -1831,6 +1836,8 @@
97845ed
     if test "$LIBRUNPATH"; then
97845ed
 	DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
97845ed
     fi
97845ed
+    MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
97845ed
+    MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
97845ed
     ;;
97845ed
 
97845ed
 *-nto*) 
97845ed
@@ -1994,17 +2001,19 @@
97845ed
 
97845ed
 alpha*-*-osf*)
97845ed
     if test "$GNU_CC"; then
97845ed
-	DSO_LDOPTS='-shared -Wl,-soname -Wl,$@'
97845ed
+      MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
97845ed
+      MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
97845ed
+
97845ed
     else
97845ed
 	MOZ_DEBUG_FLAGS='-g'
97845ed
 	ASFLAGS='-I$(topsrcdir)/xpcom/reflect/xptcall/public -g'
97845ed
 	CFLAGS="$CFLAGS -ieee"
97845ed
 	CXXFLAGS="$CXXFLAGS "'-noexceptions -ieee  -ptr $(DIST)/cxx_repository'
97845ed
-	DSO_LDOPTS='-shared -msym -expect_unresolved \* -soname $@ -update_registry $(DIST)/so_locations'
97845ed
+	DSO_LDOPTS='-shared -msym -expect_unresolved \* -update_registry $(DIST)/so_locations'
97845ed
 	DSO_CFLAGS=
97845ed
 	DSO_PIC_CFLAGS=
97845ed
-	MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
-	MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
97845ed
+	MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
97845ed
+	MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
97845ed
 	MKSHLIB_FORCE_ALL='-all'
97845ed
 	MKSHLIB_UNFORCE_ALL='-none'
97845ed
 	dnl Might fix the libxpcom.so breakage on this platform as well....
97845ed
@@ -2036,7 +2045,7 @@
97845ed
     AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
97845ed
     CXXFLAGS="$CXXFLAGS -I/usr/include/CC"
97845ed
     if test ! "$GNU_CC"; then
97845ed
-       DSO_LDOPTS='-G -h $@'
97845ed
+       DSO_LDOPTS='-G'
97845ed
     fi
97845ed
     ;;
97845ed
 
97845ed
@@ -2052,11 +2061,11 @@
97845ed
        CXXFLAGS="$CXXFLAGS -xbuiltin=%all -features=tmplife"
97845ed
        LDFLAGS="-xildoff -zlazyload -zcombreloc $LDFLAGS"
97845ed
        MOZ_OPTIMIZE_FLAGS="-xO4"
97845ed
-       MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -o $@'
97845ed
-       MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -Wl,-z -Wl,muldefs -o $@'
97845ed
+       MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@'
97845ed
+       KCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -Wl,-z -Wl,muldefs -h $@ -o $@'
97845ed
        MKSHLIB_FORCE_ALL='-Qoption ld -z,allextract'
97845ed
        MKSHLIB_UNFORCE_ALL=''
97845ed
-       DSO_LDOPTS='-G -Qoption ld -z,muldefs -h $@'
97845ed
+       DSO_LDOPTS='-G -Qoption ld -z,muldefs'
97845ed
        AR_LIST="$AR t"
97845ed
        AR_EXTRACT="$AR x"
97845ed
        AR_DELETE="$AR d"
97845ed
@@ -2086,7 +2095,7 @@
97845ed
         AC_LANG_RESTORE
97845ed
     else
97845ed
        ASFLAGS="$ASFLAGS -fPIC"
97845ed
-       DSO_LDOPTS='-G -h $@'
97845ed
+       DSO_LDOPTS='-G'
97845ed
        _WARNINGS_CFLAGS=''
97845ed
        _WARNINGS_CXXFLAGS=''
97845ed
        if test "$OS_RELEASE" = "5.3"; then
97845ed
@@ -2444,8 +2453,25 @@
97845ed
                   fi
97845ed
                   rm -f conftest.[cs]
97845ed
                  ])
97845ed
-   if test "$ac_cv_visibility_hidden" = "yes"; then
97845ed
-      AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
97845ed
+  if test "$ac_cv_visibility_hidden" = "yes"; then
97845ed
+    AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
97845ed
+
97845ed
+    AC_CACHE_CHECK(for visibility(default) attribute,
97845ed
+                   ac_cv_visibility_default,
97845ed
+                   [cat > conftest.c <
97845ed
+                    int foo __attribute__ ((visibility ("default"))) = 1;
97845ed
+EOF
97845ed
+                    ac_cv_visibility_default=no
97845ed
+                    if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
97845ed
+                      if ! grep '\.hidden.*foo' conftest.s >/dev/null; then
97845ed
+                        ac_cv_visibility_default=yes
97845ed
+                      fi
97845ed
+                    fi
97845ed
+                    rm -f conftest.[cs]
97845ed
+                   ])
97845ed
+    if test "$ac_cv_visibility_default" = "yes"; then
97845ed
+      AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
97845ed
+
97845ed
       AC_CACHE_CHECK(for visibility pragma support,
97845ed
                      ac_cv_visibility_pragma,
97845ed
                      [cat > conftest.c <
97845ed
@@ -2465,12 +2491,35 @@
97845ed
                       rm -f conftest.[cs]
97845ed
                     ])
97845ed
       if test "$ac_cv_visibility_pragma" = "yes"; then
97845ed
-        AC_DEFINE(HAVE_VISIBILITY_PRAGMA)
97845ed
-        VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
97845ed
-        WRAP_SYSTEM_INCLUDES=1
97845ed
-      fi
97845ed
-   fi
97845ed
-fi     # GNU_CC
97845ed
+        AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
97845ed
+                       ac_cv_have_visibility_builtin_bug,
97845ed
+                       [cat > conftest.c <
97845ed
+#pragma GCC visibility push(hidden)
97845ed
+#pragma GCC visibility push(default)
97845ed
+#include <string.h>
97845ed
+#pragma GCC visibility pop
97845ed
+
97845ed
+__attribute__ ((visibility ("default"))) void Func() {
97845ed
+  char c[[100]];
97845ed
+  memset(c, 0, sizeof(c));
97845ed
+}
97845ed
+EOF
97845ed
+                       ac_cv_have_visibility_builtin_bug=no
97845ed
+                       if ! ${CC-cc} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -o conftest.so conftest.c >/dev/null 2>&1; then
97845ed
+                         ac_cv_have_visibility_builtin_bug=yes
97845ed
+                       fi
97845ed
+                       rm -f conftest.{c,so}
97845ed
+                       ])
97845ed
+        if test "$ac_cv_have_visibility_builtin_bug" = "no"; then
97845ed
+          VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
97845ed
+          WRAP_SYSTEM_INCLUDES=1
97845ed
+        else
97845ed
+          VISIBILITY_FLAGS='-fvisibility=hidden'
97845ed
+        fi # have visibility pragma bug
97845ed
+      fi   # have visibility pragma
97845ed
+    fi     # have visibility(default) attribute
97845ed
+  fi       # have visibility(hidden) attribute
97845ed
+fi         # GNU_CC
97845ed
 
97845ed
 AC_SUBST(WRAP_SYSTEM_INCLUDES)
97845ed
 AC_SUBST(VISIBILITY_FLAGS)
97845ed
--- mozilla/js/src/jstypes.h.visibility	2005-09-18 00:35:05.000000000 -0400
97845ed
+++ mozilla/js/src/jstypes.h	2006-09-04 23:26:15.000000000 -0400
97845ed
@@ -109,7 +109,7 @@
97845ed
 
97845ed
 #else /* Unix */
97845ed
 
97845ed
-#ifdef HAVE_VISIBILITY_PRAGMA
97845ed
+#ifdef HAVE_VISIBILITY_ATTRIBUTE
97845ed
 #define JS_EXTERNAL_VIS __attribute__((visibility ("default")))
97845ed
 #else
97845ed
 #define JS_EXTERNAL_VIS
97845ed
--- mozilla/modules/zlib/src/mozzconf.h.visibility	2005-08-04 15:14:14.000000000 -0400
97845ed
+++ mozilla/modules/zlib/src/mozzconf.h	2006-09-04 23:26:15.000000000 -0400
97845ed
@@ -41,7 +41,7 @@
97845ed
 #undef ZLIB_DLL
97845ed
 #endif
97845ed
 
97845ed
-#ifdef HAVE_VISIBILITY_PRAGMA
97845ed
+#ifdef HAVE_VISIBILITY_ATTRIBUTE
97845ed
 #define ZEXTERN __attribute__((visibility ("default"))) extern
97845ed
 #endif
97845ed
 
97845ed
--- mozilla/modules/oji/src/nsJVMManager.cpp.visibility	2005-08-22 10:09:59.000000000 -0400
97845ed
+++ mozilla/modules/oji/src/nsJVMManager.cpp	2006-09-04 23:26:15.000000000 -0400
97845ed
@@ -845,7 +845,7 @@
97845ed
     return fStatus;
97845ed
 }
97845ed
 
97845ed
-extern "C" nsresult JSJ_RegisterLiveConnectFactory(void);
97845ed
+extern "C" NS_VISIBILITY_DEFAULT nsresult JSJ_RegisterLiveConnectFactory(void);
97845ed
 
97845ed
 PRBool
97845ed
 nsJVMManager::MaybeStartupLiveConnect(void)
97845ed
--- mozilla/modules/libreg/include/NSReg.h.visibility	2004-12-15 00:52:38.000000000 -0500
97845ed
+++ mozilla/modules/libreg/include/NSReg.h	2006-09-04 23:26:15.000000000 -0400
97845ed
@@ -129,7 +129,7 @@
97845ed
   #endif
97845ed
 #elif defined XP_MAC
97845ed
   #define VR_INTERFACE(__x)  __declspec(export) __x
97845ed
-#elif defined (HAVE_VISIBILITY_PRAGMA)
97845ed
+#elif defined (HAVE_VISIBILITY_ATTRIBUTE)
97845ed
   #define VR_INTERFACE(type)     __attribute__ ((visibility ("default"))) type
97845ed
 #else
97845ed
   #define VR_INTERFACE(type)     type