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*; +};

