ocaml-menhir-20141215-1.fc22 http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3006942 ocaml-menhir-20141215-1.fc23 http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3006940 /usr/bin/ocamldep.opt -modules parser.mli > parser.mli.depends /usr/bin/ocamlc.opt -c -g -safe-string -w @1..49-4-9-33-41-44 -o parser.cmi parser.mli /usr/bin/ocamlc.opt -c -g -safe-string -g -w @1..49-4-9-33-41-44 -o lexer.cmo lexer.ml /usr/bin/ocamldep.opt -modules parser.ml > parser.ml.depends /usr/bin/ocamlopt.opt -c -g -safe-string -g -inline 1000 -w @1..49-4-9-33-41-44 -o misc.cmx misc.ml /usr/bin/ocamldep.opt -modules parserAux.ml > parserAux.ml.depends /usr/bin/ocamlopt.opt -c -g -safe-string -g -inline 1000 -w @1..49-4-9-33-41-44 -o parameters.cmx parameters.ml /usr/bin/ocamlopt.opt -c -g -safe-string -g -inline 1000 -w @1..49-4-9-33-41-44 -o parserAux.cmx parserAux.ml /usr/bin/ocamlopt.opt -c -g -safe-string -g -inline 1000 -w @1..49-4-9-33-41-44 -o parser.cmx parser.ml + /usr/bin/ocamlopt.opt -c -g -safe-string -g -inline 1000 -w @1..49-4-9-33-41-44 -o parser.cmx parser.ml /tmp/camlasm8a39a8.s: Assembler messages: /tmp/camlasm8a39a8.s:3024: Error: conditional branch out of range /tmp/camlasm8a39a8.s:87479: Error: conditional branch out of range File "parser.ml", line 1: Error: Assembler error, input left in file /tmp/camlasm8a39a8.s Command exited with code 2. Makefile:66: recipe for target 'stage2' failed make[1]: Leaving directory '/builddir/build/BUILD/menhir-20141215/src' make[1]: *** [stage2] Error 10 Makefile:78: recipe for target 'all' failed
Hmmm, Richard is there anything I can do about this? I'm at a loss how to solve this by patching menhir.
Created attachment 1029813 [details] camlasm50dee1.s This looks superficially like a proper bug in the OCaml compiler (ie. nothing to do with Menhir). I am able to reproduce it on my aarch64 machine too, so it's not a peculiarity of Koji. We did see a similar bug before (bug 1099153) but that bug was fixed or fixed itself for some other reason. The error for me is: + /usr/bin/ocamlopt.opt -c -g -safe-string -g -inline 1000 -w @1..49-4-9-33-41-44 -o parser.cmx parser.ml /tmp/camlasm50dee1.s: Assembler messages: /tmp/camlasm50dee1.s:3024: Error: conditional branch out of range /tmp/camlasm50dee1.s:87479: Error: conditional branch out of range File "parser.ml", line 1: Error: Assembler error, input left in file /tmp/camlasm50dee1.s Command exited with code 2. The failing .s file is attached.
Upstream bug report: http://caml.inria.fr/mantis/view.php?id=6878
I've had a lot of conversations with Mark Shinwell who is fixing this, and he's come up with a final patch. I'm going to add this to the OCaml compiler in Fedora. It's quite a large change, since it aims to add extra machinery to handle branch relaxation generically across backends.
Bleah git. Unfortunately the "patch" is a maze of twisty commits and diamond-shaped merges and I cannot get it to apply to our tree. I'm going to wait until the final patch is posted to the upstream 4.02 branch which should be soon.
OK got it patched. This is the x86 build: http://koji.fedoraproject.org/koji/taskinfo?taskID=9995092
A few notes: - ocaml-menhir builds OK for me with the new OCaml package - a "mass rebuild" does not seem to be necessary, since if any packages were hitting this bug before, they would have failed to build, they wouldn't have built incorrect code silently
Confirmed this is now fixed in aarch64 rawhide: http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=3031250
Thanks for working with upstream to get this fixed, Richard.