Re: OCaml binary stripping (was: Re: OCaml 5 again)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux