Control: tags -1 + patch

Hi Simon,

On 2023-03-13 04:42, Simon McVittie wrote:
> The other possible route for fixing mozjs78's build on armhf and armel
> is to locate whatever fixes in ICU made it link successfully on armhf
> and armel, and backport those to the version of ICU that is vendored by
> mozjs78. I would expect this to be the easier route, and almost certainly
> a smaller diff to present to the release team, with a correspondingly
> smaller regression risk for mozjs78/cjs/Cinnamon.

I agree that this route seems indeed easier to follow. However, I could
not see any big difference between libicu-dev and the ICU version
vendored in mozjs78. I suspect the difference is possibly not in the
code itself but rather static vs dynamic linking.

There's this old GCC regression that looks similar to the issue we have
here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61536 

Motivated by this, I've tried to build mozjs78 with GCC 11 instead of
12, and it *did* build successfully. My proposal is thus to build
mozjs78 with GCC 11 on armhf and armel, see attached patch. Meanwhile
I'll try to write a smaller repro for the GCC regression and investigate
that separately.
diff -Nru mozjs78-78.15.0/debian/changelog mozjs78-78.15.0/debian/changelog
--- mozjs78-78.15.0/debian/changelog	2023-01-17 23:26:39.000000000 +0100
+++ mozjs78-78.15.0/debian/changelog	2023-03-15 10:36:30.000000000 +0100
@@ -1,3 +1,10 @@
+mozjs78 (78.15.0-6.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Build with GCC 11 on armhf and armel (Closes: #1029167).
+
+ -- Emanuele Rocca <[email protected]>  Wed, 15 Mar 2023 10:36:30 +0100
+
 mozjs78 (78.15.0-6) unstable; urgency=medium
 
   * Add patch to fix build with Python 3.11 (Closes: #1028308)
diff -Nru mozjs78-78.15.0/debian/control.in mozjs78-78.15.0/debian/control.in
--- mozjs78-78.15.0/debian/control.in	2023-01-17 23:26:39.000000000 +0100
+++ mozjs78-78.15.0/debian/control.in	2023-03-15 10:36:30.000000000 +0100
@@ -10,6 +10,8 @@
                autoconf,
                autoconf2.13,
                automake,
+               gcc-11 [armhf armel],
+               g++-11 [armhf armel],
                libreadline-dev,
                llvm,
                zlib1g-dev (>= 1:1.2.3),
diff -Nru mozjs78-78.15.0/debian/rules mozjs78-78.15.0/debian/rules
--- mozjs78-78.15.0/debian/rules	2023-01-17 23:26:39.000000000 +0100
+++ mozjs78-78.15.0/debian/rules	2023-03-15 10:36:30.000000000 +0100
@@ -120,6 +120,13 @@
 CXX := $(DEB_HOST_GNU_TYPE)-g++
 endif
 
+# Use GCC 11 when building for armhf and armel.
+# See https://bugs.debian.org/1029167
+ifneq (,$(findstring $(DEB_HOST_GNU_TYPE),arm-linux-gnueabi arm-linux-gnueabihf))
+CC := $(addsuffix -11,$(CC))
+CXX := $(addsuffix -11,$(CXX))
+endif
+
 override_dh_auto_configure:
 	mkdir -p $(BUILDDIR)
 	cd $(BUILDDIR); \

Reply via email to