flexdll error: cannot relocate RELOC_REL32

Achim Gratz Stromeko@nexgo.de
Mon Mar 2 17:16:00 GMT 2020


Cao Qinxiang writes:
> I use Cygwin-64 on windows and get a fork problem when I try to manually
> install menhir package.
>
> ----------------
>      0 [main] ocamlrun 1615 child_info_fork::abort: address space needed by
> 'dllunix.so' (0x400000) is already occupied
> /usr/bin/ocamldep.opt -modules menhir.ml > menhir.ml.depends
>       0 [main] ocamlrun 1616 child_info_fork::abort: address space needed
> by 'dllunix.so' (0x400000) is already occupied
> /cygdrive/g/Cygwin/menhir-20190924/src/_stage1/myocamlbuild: "fork" failed:
> Resource temporarily unavailable
> ----------------
>
> I follow online suggestion to run "/usr/bin/rebaseall -v" using ash.exe.
> However, I get another program after that:

The dynamic objects for OCaml must not be rebased, they simply stop
working if you try.  They are specifically exempted from getting picked
up by autorebase for this very reason.  If you rebased them manually or
somehow managed to overwrite them with other versions (opam sometimes
does this and it seems you are trying some sort of OCaml build whenjh
this happens, which may have done this), you should re-installl all
OCaml packages of your installation.

> ----------------
> Fatal error: cannot load shared library dllunix
> Reason: flexdll error: cannot relocate RELOC_REL32, target is too far:
> 0xfffffffc02088b5f  0x2088b5f
> ----------------
>
> I searched solutions for this new problem. Most solutions are to manually
> rebase dllunix to a lower number like 0x06440000. However, I cannot
> do that. Here is what I get in Cygwin:
>
> ----------------
> $ rebase -b 0x06440000 /usr/lib/ocaml/stublibs/dllunix.so
> rebase: Invalid Baseaddress 0x06440000, must be > 0x200000000
> ----------------

All of these solutions are wrong, IMHO (even on 32bit).

> So, what should I do to this problem?
>
> Also, if I did not use "/usr/bin/rebaseall -v" using ash.exe, but follow
> FAQ's suggestion (run "rebase-trigger fullrebase" in Cygwin), then I cannot
> solve the fork problem and still get
> ----------------
>      0 [main] ocamlrun 1615 child_info_fork::abort: address space needed by
> 'dllunix.so' (0x400000) is already occupied
> /usr/bin/ocamldep.opt -modules menhir.ml > menhir.ml.depends
>       0 [main] ocamlrun 1616 child_info_fork::abort: address space needed
> by 'dllunix.so' (0x400000) is already occupied
> /cygdrive/g/Cygwin/menhir-20190924/src/_stage1/myocamlbuild: "fork" failed:
> Resource temporarily unavailable
> ----------------

This is a very low load address and that indicates there is either BLODA
involved or you've managed to have two different versions of dllunix.so
loaded into memroy at the same time.  Again, it seems you are trying to
do a build with OCaml, you must ensure it doesn't create libraries you
already have installed from Cygwin packages and certainly to not
overwrite them.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf rackAttack V1.04R1:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list