Source: perl
Version: 5.36.0-7
Severity: important
Tags: ftbfs patch

As noticed by Ubuntu and reported by doko on IRC, this package fails to
build from source with glibc 2.38 (currently in experimental.)

dpkg-gensymbols: error: some symbols or patterns disappeared in the symbols 
file: see diff output below
dpkg-gensymbols: warning: debian/libperl5.36/DEBIAN/symbols doesn't match 
completely debian/libperl5.36.symbols
--- debian/libperl5.36.symbols (libperl5.36_5.36.0-8_amd64)
+++ dpkg-gensymbolszhalIX       2023-09-07 18:42:16.688071199 +0000
@@ -925,8 +925,8 @@
  Perl_my_stat_flags@Base 5.36.0
  Perl_my_strerror@Base 5.36.0
  Perl_my_strftime@Base 5.36.0
- Perl_my_strlcat@Base 5.36.0
- Perl_my_strlcpy@Base 5.36.0
+#MISSING: 5.36.0-8# Perl_my_strlcat@Base 5.36.0
+#MISSING: 5.36.0-8# Perl_my_strlcpy@Base 5.36.0
  Perl_my_strtod@Base 5.36.0
  Perl_my_unexec@Base 5.36.0
  Perl_my_vsnprintf@Base 5.36.0

This is because glibc added strlcpy and strlcat in

  
https://sourceware.org/git/?p=glibc.git;a=commit;h=454a20c8756c9c1d55419153255fc7692b3d2199

so the Configure script now detects them and disables the replacement
implementations inside src:perl, losing the corresponding libperl symbols
in the process.

I suspect nothing external actually uses the lost symbols, but it's best
to be on the safe side. The attached patch tells Configure to ignore
the new glibc functions, so that libperl keeps binary compatibility.

We will need this for whichever version of perl is in sid when glibc
2.38 enters it. I'll upload it soon for 5.36, and see what to do
with 5.38 when the transition is ready to start.
-- 
Niko Tyni   nt...@debian.org
>From edd4457e4f61460f32a04c566e1da68dcf238d98 Mon Sep 17 00:00:00 2001
From: Niko Tyni <nt...@debian.org>
Date: Thu, 7 Sep 2023 19:16:29 +0100
Subject: [PATCH] Explicitly do not use strlcpy and strlcat from glibc 2.38

This keeps libperl symbols stable
---
 debian/config.debian | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/debian/config.debian b/debian/config.debian
index 7afc379e7..300416ae2 100644
--- a/debian/config.debian
+++ b/debian/config.debian
@@ -119,6 +119,8 @@ then
     -Ui_libutil					\
     -Ui_xlocale					\
     -Uversiononly \
+    -Ud_strlcpy					\
+    -Ud_strlcat					\
     -DDEBUGGING=$debugging			\
     -Doptimize=\"$optimize\"			\
     $extra_path					\
-- 
2.39.1

Reply via email to