On Tue, Mar 05, 2024 at 09:17:17PM +0100, John Paul Adrian Glaubitz wrote: > I am getting strange Perl error after rebuilding Perl for the time64_t > transition on powerpc: > > loadable library and perl binaries are mismatched (got first handshake key > 0xb600080, needed 0xb700080) > > See: > https://buildd.debian.org/status/fetch.php?pkg=libdevice-usb-perl&arch=powerpc&ver=0.38-3&stamp=1709663348&raw=0 > > I have already rebuilt Perl once again against the new time64_t libraries, > but that didn't help although the package builds fine locally. > > Does anyone knowledgeable with Perl know what's going on?
(You're in somewhat uncharted territory unfortunately, as none of this was tested beforehand.) Looks like it's built with dpkg-dev_1.22.4 but the time64 build flags are only activated with 1.22.5. I think there was talk about making them the default in gcc too, not sure if they got there yet. I suppose Perl could/should store them in its configuration so they'd be passed to all XS module builds regardless of what dpkg-buildflags says. But currently things from dpkg-buildflags get explicitly filtered away [1]. IIRC the rationale for this was that packages could opt in/out of security hardening flags independently. That doesn't seem desirable here as they make the XS module ABI incompatible as you've noticed. [1] see https://sources.debian.org/src/perl/5.38.2-3.1/debian/rules/#L188 I think -fstack-protector gets passed through there as an exception, so doing the same with the relevant time64 flags should do the trick. -- Niko Tyni nt...@debian.org