- 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
This commit is contained in:
Christopher Aillon 2006-09-05 08:45:49 +00:00
parent 53dccf3e6a
commit 97845edb57
5 changed files with 685 additions and 21 deletions

View File

@ -0,0 +1,37 @@
--- mozilla/gfx/src/gtk/mozilla-decoder.cpp.noxft 2004-11-07 18:59:23.000000000 -0500
+++ mozilla/gfx/src/gtk/mozilla-decoder.cpp 2006-08-06 18:24:37.000000000 -0400
@@ -40,10 +40,9 @@
#define PANGO_ENABLE_ENGINE
#include "mozilla-decoder.h"
-#include <pango/pangoxft.h>
#include <pango/pangofc-fontmap.h>
#include <pango/pangofc-font.h>
-#include <gdk/gdkx.h>
+#include <gdk/gdkpango.h>
#include "nsString.h"
#include "nsIPersistentProperties2.h"
@@ -145,6 +144,13 @@ mozilla_decoders_init(void)
if (initialized)
return 0;
+ PangoContext* context = gdk_pango_context_get ();
+ PangoFontMap* fontmap = pango_context_get_font_map (context);
+ g_object_unref (context);
+
+ if (!PANGO_IS_FC_FONT_MAP (fontmap))
+ return -1;
+
encoder_hash = g_hash_table_new(g_str_hash, g_str_equal);
cmap_hash = g_hash_table_new(g_str_hash, g_str_equal);
wide_hash = g_hash_table_new(g_str_hash, g_str_equal);
@@ -208,7 +214,7 @@ mozilla_decoders_init(void)
}
}
- pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_xft_get_font_map(GDK_DISPLAY(),gdk_x11_get_default_screen())),
+ pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(fontmap),
mozilla_find_decoder,
NULL,
NULL);

View File

@ -0,0 +1,42 @@
--- mozilla/gfx/src/gtk/nsFontMetricsPango.cpp.mathml 2006-02-23 16:01:42.000000000 -0500
+++ mozilla/gfx/src/gtk/nsFontMetricsPango.cpp 2006-08-22 20:06:40.000000000 -0400
@@ -829,30 +829,27 @@ nsFontMetricsPango::GetBoundingMetrics(c
goto loser;
}
- pango_layout_set_text(layout, text, strlen(text));
+ pango_layout_set_text(layout, text, -1);
FixupSpaceWidths(layout, text);
- // Get the logical extents
PangoLayoutLine *line;
if (pango_layout_get_line_count(layout) != 1) {
printf("Warning: more than one line!\n");
}
line = pango_layout_get_line(layout, 0);
- // Get the ink extents
- PangoRectangle rect;
- pango_layout_line_get_extents(line, NULL, &rect);
+ // Get the ink and logical extents
+ PangoRectangle ink, logical;
+ pango_layout_line_get_extents(line, &ink, &logical);
float P2T;
P2T = mDeviceContext->DevUnitsToAppUnits();
- aBoundingMetrics.leftBearing =
- NSToCoordRound(rect.x * P2T / PANGO_SCALE);
- aBoundingMetrics.rightBearing =
- NSToCoordRound(rect.width * P2T / PANGO_SCALE);
- aBoundingMetrics.width = NSToCoordRound((rect.x + rect.width) * P2T / PANGO_SCALE);
- aBoundingMetrics.ascent = NSToCoordRound(rect.y * P2T / PANGO_SCALE);
- aBoundingMetrics.descent = NSToCoordRound(rect.height * P2T / PANGO_SCALE);
+ aBoundingMetrics.leftBearing = NSToCoordRound(PANGO_LBEARING(ink) * P2T / PANGO_SCALE);
+ aBoundingMetrics.rightBearing = NSToCoordRound(PANGO_RBEARING(ink) * P2T / PANGO_SCALE);
+ aBoundingMetrics.ascent = NSToCoordRound(PANGO_ASCENT(ink) * P2T / PANGO_SCALE);
+ aBoundingMetrics.descent = NSToCoordRound(PANGO_DESCENT(ink) * P2T / PANGO_SCALE);
+ aBoundingMetrics.width = NSToCoordRound(logical.width * P2T / PANGO_SCALE);
loser:
g_free(text);

View File

@ -0,0 +1,591 @@
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

View File

@ -25,16 +25,6 @@ MOZ_CLIENT_PROGRAM="$MRE_HOME/thunderbird -remote"
#MOZ_DISABLE_PANGO=1
#export MOZ_DISABLE_PANGO
# For now, in order to ship with firefox trademarks, we need to default to
# disable pango on non-indic locales. Use MOZ_ENABLE_PANGO=1 to force pango.
tmplang=${LC_CTYPE:-${LANG:-"en_US.UTF-8"}}
if ! echo $tmplang | grep "^..[_-]IN" > /dev/null; then
if [ -z "$MOZ_ENABLE_PANGO" ]; then
MOZ_DISABLE_PANGO=1
export MOZ_DISABLE_PANGO
fi
fi
function check_running() {
$MOZ_CLIENT_PROGRAM 'ping()' 2>/dev/null >/dev/null

View File

@ -8,7 +8,7 @@
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
Version: 1.5.0.5
Release: 4
Release: 5
Epoch: 0
URL: http://www.mozilla.org/projects/thunderbird/
License: MPL
@ -32,7 +32,7 @@ Source100: find-external-requires
# Build patches
Patch2: firefox-1.0-prdtoa.patch
Patch4: firefox-1.5-with-system-nss.patch
Patch5: firefox-1.1-visibility.patch
Patch5: thunderbird-1.5-visibility.patch
Patch6: firefox-1.1-nss-system-nspr.patch
Patch7: thunderbird-mimeeobj-externalc.patch
@ -47,7 +47,8 @@ Patch25: thunderbird-1.1-software-update.patch
Patch42: firefox-1.1-uriloader.patch
# font system fixes
Patch81: firefox-nopangoxft.patch
Patch81: firefox-1.5-nopangoxft.patch
Patch82: firefox-1.5-pango-mathml.patch
# patches from upstream (Patch100+)
Patch102: thunderbird-1.5-pango-start.patch
@ -86,13 +87,7 @@ Mozilla Thunderbird is a standalone mail and newsgroup client.
%patch2 -p0
%patch4 -p1
# Pragma visibility is broken on most platforms for some reason.
# It works on i386 so leave it alone there. Disable elsewhere.
# See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20297
%ifnarch i386
%patch5 -p0
%endif
%patch5 -p1 -b .visibility
%patch6 -p1
%patch7 -p1
@ -119,7 +114,8 @@ export CFLAGS="$RPM_OPT_FLAGS"
export CXXFLAGS="$CFLAGS"
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
time make -f client.mk build_all
export LDFLAGS="-Wl,-rpath,%{tbdir}"
make -f client.mk build
#===============================================================================
@ -214,6 +210,14 @@ update-desktop-database %{_datadir}/applications
#===============================================================================
%changelog
* Tue Sep 5 2006 Christopher Aillon <caillon@redhat.com> - 1.5.0.5-5
- 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
* Thu Aug 3 2006 Kai Engert <kengert@redhat.com> - 1.5.0.5-4
- Fix a build failure in mailnews mime code.