thunderbird/thunderbird-1.5-visibility.patch
Christopher Aillon 97845edb57 - Update nopangoxft.patch
- Fix rendering of MathML thanks to Behdad Esfahbod.
- Update start page text to reflect the MathML fixes.
- Enable pango by default on all locales
- Build using -rpath
- Re-enable GCC visibility
2006-09-05 08:45:49 +00:00

592 lines
21 KiB
Diff

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