On Thu, Jul 23, 2009 at 05:28:48PM +0200, Mike Hommey wrote:
> On Tue, Jul 21, 2009 at 07:44:50PM +0200, Mike Hommey wrote:
> > On Tue, Jul 21, 2009 at 07:07:54PM +0300, Riku Voipio wrote:
> > > On Tue, Jul 21, 2009 at 12:23:08AM +0300, Riku Voipio wrote:
> > > > On Mon, Jul 20, 2009 at 11:05:48PM +0200, Mike Hommey wrote:
> > > > > On Mon, Jul 20, 2009 at 11:03:47PM +0200, Mike Hommey wrote:
> > > > > > Damn #490173.
> > > 
> > > > > Supposedly, it is fixed in gcc 4.4. Would you mind checking?
> > > 
> > > > At least the testcase is. I'll test if xulrunner will build
> > > > with gcc-4.4 packages.
> > > 
> > > Indeed, xulrunner built fine with correct symbols when using
> > > gcc-4.4/g++-4.4.
> > 
> > I'll try to add something to implement a workaround with gcc-4.3.
> 
> Would you mind giving a try to the attached patch?
> Supposedly, it should do the right thing, though I couldn't test it for
> obvious reasons.

With the patch this time ;)

Mike
commit 43fddb1e2302bf9136b5f98d1fd3bc751380aba2
Author: Mike Hommey <[email protected]>
Date:   Thu Jul 23 17:35:06 2009 +0200

    Workaround bug in gcc < 4.4 exporting hidden vtables and VTTs on armel
    
    Closes: #537775

diff --git a/debian/rules b/debian/rules
index 3a043ec..384be44 100755
--- a/debian/rules
+++ b/debian/rules
@@ -17,6 +17,7 @@ DEB_BUILD_ARCH  ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
 
 DEBIAN_VERSION := $(shell dpkg-parsechangelog | sed -n 's/^Version: 
*\(.*\)$$/\1/ p')
 UPSTREAM_VERSION := $(shell dpkg-parsechangelog | sed -n 's/^Version: 
*\(.*\)-.*$$/\1/ p')
+GCC_4_4_OR_MORE := $(shell gcc -dumpversion | awk -F . '$$1 > 4 || ($$1 == 4 
&& $$2 > 3) {print $$0}')
 BASE_VERSION := 1.9.1
 
 PYVER := $(shell pyversions -d)
@@ -50,6 +51,10 @@ else
        GENSYMBOLS_FLAGS := -c4
 endif
 
+ifeq ($(DEB_BUILD_ARCH)$(GCC_4_4_OR_MORE),armel)
+       LDFLAGS += -Wl,--version-script=$(CURDIR)/debian/symbols.filter
+endif
+
 COMPONENT_PACKAGES := python-xpcom xulrunner-$(BASE_VERSION)-gnome-support
 COMPONENT_SCRIPTS := $(COMPONENT_PACKAGES:%=debian/%.postinst) 
$(COMPONENT_PACKAGES:%=debian/%.postrm)
 GENERATED_FILES := $(COMPONENT_SCRIPTS) 
debian/xulrunner-$(BASE_VERSION).postinst
diff --git a/debian/symbols.filter b/debian/symbols.filter
new file mode 100644
index 0000000..e95a350
--- /dev/null
+++ b/debian/symbols.filter
@@ -0,0 +1,6 @@
+{
+local:
+_ZTV10FuncFilter;
+_ZTV15SoftFloatFilter;
+_ZTVN7nanojit*;
+};

Reply via email to