On Wed, Jul 12, 2023 at 4:38 AM Richard W.M. Jones <rjones@xxxxxxxxxx> wrote: > During the OCaml 5 rebuild I found there's a generic problem on s390x > & ppc64le (ie. the bytecode-only architectures) involving stripping of > OCaml binaries. A good example is supermin on s390x: > > # uname -a > Linux e132ed8a0a9b4411b210e43e253581f0 6.4.0-59.fc39.s390x #1 SMP Mon Jun 26 11:55:15 UTC 2023 s390x GNU/Linux > # supermin --version > unknown option --version > # echo $? > 127 > > The binary is correct when built, but gets corrupted after one of > these steps is applied (not sure which): > > + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip > + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip > > In the past we had this commit in supermin: > > commit 18ebd2cc631f119a10374a914d5c725288060349 > Author: Dan Horák <dan@xxxxxxxx> > Date: Thu Sep 15 12:09:34 2016 +0200 > > - Do not break the binary on interpreted builds (#1375213) > > diff --git a/supermin.spec b/supermin.spec > index 30af5fb..8d4f03b 100644 > --- a/supermin.spec > +++ b/supermin.spec > @@ -1,3 +1,8 @@ > +%ifnarch %{ocaml_native_compiler} > +%global __strip /bin/true > +%global debug_package %{nil} > +%endif > + > [etc] > > which basically kills off stripping. However that may or may not > still work. It was removed because it was no longer necessary (as we > had an s390x native code backend), and because of this bug: > > https://bugzilla.redhat.com/show_bug.cgi?id=1915570 > > So I'm going with this instead to see if it cures the problem: > > %ifnarch %{ocaml_native_compiler} > %global __strip /bin/true > %global _lto_cflags %nil > %global debug_package %{nil} > %endif > > (https://src.fedoraproject.org/rpms/supermin/c/61395e3f5a0fdbbea28ec03c6befcf482cb96792?branch=rawhide) > > Anyway this could potentially affect any s390x / ppc64le OCaml package > that contains a binary so it's something to look out for ... For some > reason dune doesn't seem to be affected. > > Rich. > > -- > Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones > Read my programming and virtualization blog: http://rwmj.wordpress.com > nbdkit - Flexible, fast NBD server with plugins > https://gitlab.com/nbdkit/nbdkit I encountered that with a couple of packages, ocaml-findlib and coccinelle. Sorry I missed the others. Yes, stripping those binaries removes the bytecode payload, leaving only the bytecode interpreter. I also noticed that dune isn't affected, which is interesting. I wonder if it is the difference between -output-complete-exe and -custom. Dune now uses the former instead of the latter. -- Jerry James http://www.jamezone.org/ _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue