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; 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 </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 < +#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; 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 </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 < conftest.c < +#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