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

Reply via email to