*** This bug is a duplicate of bug 2170635 ***
    https://bugs.launchpad.net/bugs/2170635

Public bug reported:

zile 2.6.2-2build3 (no-change rebuild) has been stuck in stonking-
proposed for ~255 days: it fails to build on ppc64el only. stonking
release has 2.6.2-2build2 including a ppc64el binary, so the missing
build blocks migration.

https://launchpad.net/ubuntu/+source/zile/2.6.2-2build3/+build/32794509

The failure is when compiling the bundled gnulib regex (lib/regex.c),
inside glibc's headers:

  /usr/include/powerpc64le-linux-gnu/bits/stdio-ldbl.h:42:1: error: return type 
defaults to 'int' [-Wimplicit-int]
  /usr/include/powerpc64le-linux-gnu/bits/stdio-ldbl.h:43:1: error: expected 
declaration specifiers before '__LDBL_REDIR1_DECL'
  /usr/include/powerpc64le-linux-gnu/bits/stdio-ldbl.h:110:1: error: storage 
class specified for parameter '__sprintf_chk'
  ...
  regex.c:82: error: expected '{' at end of input

Analysis:
- Ubuntu's ppc64el toolchain now uses IEEE 128-bit long double, so glibc's 
headers take the IEEE128 path, which uses the __LDBL_REDIR*_DECL macros as 
defined by the current glibc <sys/cdefs.h> (see the __LONG_DOUBLE_USES_FLOAT128 
branches there).
- zile ships an old gnulib copy of cdefs.h (lib/cdefs.h, pulled in via 
lib/libc-config.h when building the bundled regex). That copy only knows the 
old __LDBL_COMPAT case and doesn't define the macros the IEEE128 path needs, so 
the glibc declarations fall apart.
- configure forces the bundled regex ("Forcing --with-included-regex, to use 
our patched version"), so --without-included-regex alone won't avoid it.
- Debian (2.6.2-2 in testing/unstable) isn't affected, since its ppc64el 
doesn't use IEEE long double. Same pattern as other ppc64el IEEE long double 
FTBFS with old gnulib copies.

Suggested direction (not done yet):
- Update the gnulib files involved (lib/cdefs.h, lib/libc-config.h, possibly 
the regex files) from a current gnulib, which handles the IEEE128 case; or 
backport just the relevant gnulib change to lib/cdefs.h as an Ubuntu delta.
- Check whether a newer upstream zile has a refreshed gnulib (next cycle 
material).
- Test on ppc64el (PPA or porter box), since the problem doesn't reproduce on 
other architectures.

** Affects: zile (Ubuntu)
     Importance: Undecided
         Status: Invalid

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2170752

Title:
  zile FTBFS on ppc64el: old gnulib cdefs.h breaks glibc IEEE long
  double headers

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zile/+bug/2170752/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to