Bug#1125445: quickjs FTCBFS: Passes host flags to the build compiler

Helmut Grohne helmut at subdivi.de
Mon Jan 12 11:15:00 GMT 2026


Source: quickjs
Version: 2025.04.26-1
Tags: patch
User: debian-cross at lists.debian.org
Usertags: ftcbfs

quickjs fails to cross build from source, because it passes host
architecture compiler flags to the build architecture compiler. Before
we go deeper let me point out that the Debian (and GNU) terminology does
not line up with the terminology used by the upstream project. What
Debian calls "host", does not bear a name or prefix at the upstream
project and what Debian calls "build" is called "host" upstream.

While the upstream Makefile already distinguishes those two compiler
executables, it does not yet distinguish the compiler and linker flags
passed to either of them yet. Since Debian passes architecture-dependent
flags (e.g. for amd64 and arm64), this now fails. I propose adding new
variables (HOST_CFLAGS and HOST_LDFLAGS matching the upstream
terminology) and providing them from the packaging to achieve proper
separation.

Please find a patch attached for your convenience and consider
upstreaming the contained cross.patch file.

Helmut
-------------- next part --------------
diff -Nru quickjs-2025.04.26/debian/changelog quickjs-2025.04.26/debian/changelog
--- quickjs-2025.04.26/debian/changelog	2025-05-03 17:18:27.000000000 +0200
+++ quickjs-2025.04.26/debian/changelog	2026-01-12 11:51:58.000000000 +0100
@@ -1,3 +1,10 @@
+quickjs (2025.04.26-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: Don't pass host flags to a build compiler. (Closes: #-1)
+
+ -- Helmut Grohne <helmut at subdivi.de>  Mon, 12 Jan 2026 11:51:58 +0100
+
 quickjs (2025.04.26-1) unstable; urgency=medium
 
   * new upstream version
diff -Nru quickjs-2025.04.26/debian/patches/cross.patch quickjs-2025.04.26/debian/patches/cross.patch
--- quickjs-2025.04.26/debian/patches/cross.patch	1970-01-01 01:00:00.000000000 +0100
+++ quickjs-2025.04.26/debian/patches/cross.patch	2026-01-12 11:51:58.000000000 +0100
@@ -0,0 +1,31 @@
+--- quickjs-2025.04.26.orig/Makefile
++++ quickjs-2025.04.26/Makefile
+@@ -187,6 +187,10 @@
+ LDEXPORT=-rdynamic
+ endif
+ 
++HOST_CFLAGS ?= $(CFLAGS)
++HOST_CFLAGS += $(DEFINES)
++HOST_LDFLAGS ?= $(LDFLAGS)
++
+ ifndef CONFIG_COSMO
+ ifndef CONFIG_DARWIN
+ CONFIG_SHARED_LIBS=y # building shared libraries is supported
+@@ -267,7 +271,7 @@
+ 
+ $(QJSC): $(OBJDIR)/qjsc.host.o \
+     $(patsubst %.o, %.host.o, $(QJS_LIB_OBJS))
+-	$(HOST_CC) $(LDFLAGS) -o $@ $^ $(HOST_LIBS)
++	$(HOST_CC) $(HOST_LDFLAGS) -o $@ $^ $(HOST_LIBS)
+ 
+ endif #CROSS_PREFIX
+ 
+@@ -322,7 +326,7 @@
+ 	$(CC) $(CFLAGS_OPT) -c -I. -o $@ $<
+ 
+ $(OBJDIR)/%.host.o: %.c | $(OBJDIR)
+-	$(HOST_CC) $(CFLAGS_OPT) -c -o $@ $<
++	$(HOST_CC) $(HOST_CFLAGS) -c -o $@ $<
+ 
+ $(OBJDIR)/%.pic.o: %.c | $(OBJDIR)
+ 	$(CC) $(CFLAGS_OPT) -fPIC -DJS_SHARED_LIBRARY -c -o $@ $<
diff -Nru quickjs-2025.04.26/debian/patches/series quickjs-2025.04.26/debian/patches/series
--- quickjs-2025.04.26/debian/patches/series	2025-05-03 17:18:27.000000000 +0200
+++ quickjs-2025.04.26/debian/patches/series	2026-01-12 11:47:34.000000000 +0100
@@ -1,2 +1,3 @@
 enable_multiarch_build
 fix_armel_build
+cross.patch
diff -Nru quickjs-2025.04.26/debian/rules quickjs-2025.04.26/debian/rules
--- quickjs-2025.04.26/debian/rules	2025-05-03 17:18:27.000000000 +0200
+++ quickjs-2025.04.26/debian/rules	2026-01-12 11:51:58.000000000 +0100
@@ -12,6 +12,8 @@
 
 # the Makefile uses the cross-prefix in a non-standard way, so "enforce" it:
 export CROSS_PREFIX=$(DEB_HOST_GNU_TYPE)-
+export HOST_LDFLAGS=$(LDFLAGS_FOR_BUILD)
+export HOST_CFLAGS=$(CFLAGS_FOR_BUILD)
 
 %:
 	dh $@


More information about the Pkg-a11y-devel mailing list