Source: icu
Version: 78.3-1
Severity: important
Tags: patch

icu FTBFS on hurd-amd64, see e.g.
https://buildd.debian.org/status/fetch.php?pkg=icu&arch=hurd-amd64&ver=78.3-1&stamp=1773860709&raw=0:

|make[3]: Making `all' in `uconv'
|make[4]: Entering directory 
'/build/reproducible-path/icu-78.3/source/extra/uconv'
|mkdir uconvmsg
|c++ -Wdate-time -D_FORTIFY_SOURCE=2 
-DU_TIMEZONE_FILES_DIR=/usr/share/zoneinfo-icu/44/le/ -D_REENTRANT 
-DU_HAVE_ELF_H=1 -I. -I../../common -I../../i18n -I./../toolutil 
-DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit 
-DU_ALL_IMPLEMENTATION -DU_ATTRIBUTE_DEPRECATED= -DUCONVMSG_LINK=uconvmsg -g 
-O2 -ffile-prefix-map=/build/reproducible-path/icu-78.3=. 
-fstack-protector-strong -Wformat -Werror=format-security -fcf-protection 
-fexcess-precision=fast -fexcess-precision=fast -W -Wall -pedantic 
-Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++17 -c -o uconv.o 
uconv.cpp
|cc -Wdate-time -D_FORTIFY_SOURCE=2 
-DU_TIMEZONE_FILES_DIR=/usr/share/zoneinfo-icu/44/le/ -D_REENTRANT 
-DU_HAVE_ELF_H=1 -I. -I../../common -I../../i18n -I./../toolutil 
-DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit 
-DU_ALL_IMPLEMENTATION -DU_ATTRIBUTE_DEPRECATED= -DUCONVMSG_LINK=uconvmsg -g 
-O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/build/reproducible-path/icu-78.3=. -fstack-protector-strong 
-Wformat -Werror=format-security -fcf-protection -std=c11 -Wall -pedantic 
-Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -c -o uwmsg.o 
uwmsg.c
|LD_LIBRARY_PATH=../../lib:../../stubdata:../../tools/ctestfw:$LD_LIBRARY_PATH  
../../bin/genrb -e UTF-8 -s resources -d uconvmsg root.txt
|../../bin/genrb: can not initialize ICU.  status = U_INVALID_FORMAT_ERROR
|make[4]: *** [Makefile:176: uconvmsg/root.res] Error 1
|make[4]: Leaving directory 
'/build/reproducible-path/icu-78.3/source/extra/uconv'

This appears to be due to autoconf only taking 32-bit Hurd into account.
I filed a PR upstream here: https://github.com/unicode-org/icu/pull/3976

The patch is attached as well.


Michael
--- ./source/configure.orig	2026-05-09 13:27:04.788402298 +0200
+++ ./source/configure	2026-05-09 13:53:24.585520330 +0200
@@ -6003,7 +6003,7 @@
             OLD_LDFLAGS="${LDFLAGS}"
 
             case "${host}" in
-            *-linux*|i*86-*-*bsd*|i*86-pc-gnu|*-haiku*)
+            *-linux*|i*86-*-*bsd*|*-pc-gnu|*-haiku*)
                 if test "$GCC" = yes; then
                     CPPFLAGS="${CPPFLAGS} -ffunction-sections -fdata-sections"
                     LDFLAGS="${LDFLAGS} -Wl,--gc-sections"
@@ -7008,7 +7008,7 @@
 # Check to see if genccode can generate simple assembly.
 GENCCODE_ASSEMBLY=
 case "${host}" in
-*-linux*|*-kfreebsd*-gnu*|i*86-*-*bsd*|i*86-pc-gnu)
+*-linux*|*-kfreebsd*-gnu*|i*86-*-*bsd*|*-pc-gnu)
     if test "$GCC" = yes; then
         # We're using gcc, and the simple -a gcc command line works for genccode
         GENCCODE_ASSEMBLY="-a gcc"
--- ./source/configure.ac.orig	2026-05-09 13:26:57.727150479 +0200
+++ ./source/configure.ac	2026-05-09 13:53:55.193177365 +0200
@@ -306,7 +306,7 @@
             OLD_LDFLAGS="${LDFLAGS}"
 
             case "${host}" in
-            *-linux*|i*86-*-*bsd*|i*86-pc-gnu|*-haiku*)
+            *-linux*|i*86-*-*bsd*|*-pc-gnu|*-haiku*)
                 if test "$GCC" = yes; then
                     CPPFLAGS="${CPPFLAGS} -ffunction-sections -fdata-sections"
                     LDFLAGS="${LDFLAGS} -Wl,--gc-sections"
@@ -613,7 +613,7 @@
 # Check to see if genccode can generate simple assembly.
 GENCCODE_ASSEMBLY=
 case "${host}" in
-*-linux*|*-kfreebsd*-gnu*|i*86-*-*bsd*|i*86-pc-gnu)
+*-linux*|*-kfreebsd*-gnu*|i*86-*-*bsd*|*-pc-gnu)
     if test "$GCC" = yes; then
         # We're using gcc, and the simple -a gcc command line works for genccode
         GENCCODE_ASSEMBLY="-a gcc"

Reply via email to