OCaml / aarch64 / binutils / coq mess

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

 



OCaml 4.05 was added to Fedora 27+ recently.  Unfortunately, on
aarch64 only, it interacts badly with a change made in binutils 2.29
which tightens up the rules on relocations for PC-relative addresses.
More details:

  https://caml.inria.fr/mantis/view.php?id=7585            detailed discussion
  https://github.com/ocaml/ocaml/pull/1268                 partial solution
  https://sourceware.org/ml/binutils/2017-06/msg00171.html binutils change

This only affects dynamic loading of OCaml modules on aarch64, and in
particular it only affects the Coq theorem prover.  This package has a
number of dependencies, so it affects several other packages too.  I
believe the complete list is:

  - coq           Theorem prover
  - frama-c       Framework for source code analysis of C software
  - gappalib-coq  Coq support library for gappa
  - why           Software verification platform

I tried very hard to modify the OCaml aarch64 code generator to make
this work, but it seems as if the OCaml front end compiler doesn't
provide enough information for us to know if a particular symbol will
be used outside a module (it just assumes that all non-private symbols
can be used this way).  Or something.  Anyway I couldn't work out how
to fix it.

So ...  I don't know what to do here, but I guess possible options
include:

(1) Continue having broken dependencies for the affected packages on
aarch64 for a bit and see if upstream come up with anything.

(2) ‘ExcludeArch: aarch64’ on coq and its dependencies.  We would of
course file the relavent ExcludeArch bugs.  The thing that stops me
doing this is that we're nowhere nearer to having a fix, so it just
punts the problem, plus aarch64 is an important target and Coq is an
important package.

(3) Disable the problematic coq modules.  I'm not clear if they are
necessary however, since I've only used Coq as an end user, I've never
delved into how it works.

(4) Back out the binutils change?  I guess it was made for good
reasons even though it breaks everything.  Also it would be a
downstream change which is bad for Fedora, and we'd probably need to
mass-rebuild everything which is even worse.

(5) Your Plan Here.

Suggestions?

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [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