public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: Mark Geisert <mark@maxrnd.com>
To: cygwin-apps@cygwin.com
Subject: Re: unison-2.48 build fails with latest ocaml and flexdll (ping: Yaakov, Damien)
Date: Fri, 29 Apr 2016 19:32:00 -0000	[thread overview]
Message-ID: <5723B6C7.8090100@maxrnd.com> (raw)
In-Reply-To: <41t6ibtbcojbmar8blrc80fk8tmplbbuj3@4ax.com>

Andrew Schulman wrote:
>> On 26/04/2016 21:47, Andrew Schulman wrote:
>>>> I'm trying to build unison 2.48.3, which worked fine the last time I tried
>>>> it, in June 2015.  Today the build fails, with "flexdll error: cannot
>>>> relocate":
>>>>
>>>>>>> Compiling unison2.48-2.48.3-2.x86_64
>>>> ocamlc -o mkProjectInfo unix.cma str.cma mkProjectInfo.ml
>>>> File "mkProjectInfo.ml", line 1:
>>>> Error: Error on dynamically loaded library:
>>>> /usr/lib/ocaml/stublibs/dllunix.so: flexdll error: cannot relocate
>>>> RELOC_REL32, target is too far: 0xfffffffc0f997112  0xf997112
>>>>
>>>> I ran /bin/rebaseall and tried again, with the same result.
>>
>> There was an issue rebasing that file some time ago.
>>
>> https://cygwin.com/ml/cygwin/2016-02/msg00410.html
>>
>> I suggest at least to try a full rebase with
>>    /usr/bin/rebase-trigger full
>> and re-running setup.
>
> Thanks for the pointer. I tried that, but unfortunately it didn't help. The
> error is the same as before.
>
> rebaseall apparently did run:
>
> $ ll /var/cache/rebase
> total 375K
> -rw-r--r-- 1 ASchulma Domain Users  115 Apr 29 10:27 fullrebase.done
> -rw-r--r-- 1 ASchulma Domain Users  35K Apr 29 10:29 rebase_all
> -r--r--r-- 1 ASchulma Domain Users 2.3K Apr 29 10:29 rebase_dyn
> -rw-r--r-- 1 ASchulma Domain Users 2.3K Apr 29 10:29 rebase_dyn.old
> -r--r--r-- 1 ASchulma Domain Users  30K Apr 29 10:29 rebase_exe
> -rw-r--r-- 1 ASchulma Domain Users  30K Apr 29 10:29 rebase_exe.old
> -r--r--r-- 1 ASchulma Domain Users  35K Apr 29 10:29 rebase_lst
> -rw-r--r-- 1 ASchulma Domain Users  35K Apr 29 10:29 rebase_lst.old
> -r--r--r-- 1 ASchulma Domain Users  96K Apr 29 10:29 rebase_pkg
> -rw-r--r-- 1 ASchulma Domain Users  96K Apr 29 10:29 rebase_pkg.old
> -r--r--r-- 1 ASchulma Domain Users   31 Apr 29 10:29 rebase_user
> -rw-r--r-- 1 ASchulma Domain Users    0 Jan  1  1970 rebase_user.old
> -r--r--r-- 1 ASchulma Domain Users   31 Apr 29 10:29 rebase_user_exe
> -rw-r--r-- 1 ASchulma Domain Users    0 Jan  1  1970 rebase_user_exe.old
>
> And dllunix.so does seem to have been rebased:
>
> $ grep dllunix /var/cache/rebase/rebase_all
> /usr/lib/ocaml/stublibs/dllunix.so
>
> $ rebase -i /usr/lib/ocaml/stublibs/dllunix.so
> /usr/lib/ocaml/stublibs/dllunix.so        base 0x0003eff30000 size
> 0x0004b000
>
> But still every ocaml run fails with
>
> Error: Error on dynamically loaded library:
> /usr/lib/ocaml/stublibs/dllunix.so: flexdll error: cannot relocate
> RELOC_REL32, target is too far: 0xfffffffc0f997112  0xf997112
>
> Any other ideas for how I can get ocaml to work?

This looks kind of reminiscent of issues I've run into and reported on the main 
list, issues with xpdf and GMP-ECM.  I can't promise these incantations below 
will work, but maybe you'll be lucky.  I suspect there's something more 
widespread going on with relocations on 64-bit Cygwin but I can't pin it down.

A bald xpdf run failed with...
Cygwin runtime failure: /usr/bin/xpdf.exe: Invalid relocation.  Offset 
0x2fb02bad9 at address 0x100494523 doesn't fit into 32 bits
I rebased /usr/bin/cygXt-6.dll from 0x0003fb480000 down to 0x0000fb480000, i.e. 
just turn the first 3 in the address to 0, and that allowed xpdf to run.

Interestingly, rebuilding xpdf with gcc 5.3.0 made an executable that runs even 
with cygXt-6.dll at its original address.  The machine instruction that provoked 
the relocation error is different in a 5.3.0 object than a 4.9.2 object such as 
the distributed xpdf.exe.  Might be a major clue here.

The GMP-ECM issue was another Cygwin runtime failure just like xpdf's but 
involving /usr/bin/cyggmp-10.dll and I worked around that by rebasing that DLL 
in similar fashion.

So for your case I'd first try rebasing flexdll.so down to 0x0000eff30000 (you 
may collide with something else so pay attention to rebase complaints and try a 
different address if necessary).  If that doesn't help then try rebuilding 
flexdll.so with gcc 5.3.0 if it is currently being built with an older gcc.

..mark

  reply	other threads:[~2016-04-29 19:32 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-21 19:17 unison-2.48 build fails with latest ocaml and flexdll Andrew Schulman
2016-04-26 19:47 ` unison-2.48 build fails with latest ocaml and flexdll (ping: Yaakov, Damien) Andrew Schulman
2016-04-26 20:16   ` Achim Gratz
2016-04-27  9:16     ` Andrew Schulman
2016-04-27 11:16       ` Achim Gratz
2016-04-28  8:03   ` Marco Atzeri
2016-04-29 16:03     ` Andrew Schulman
2016-04-29 19:32       ` Mark Geisert [this message]
2016-04-29 19:43         ` Mark Geisert
2016-04-30 11:54         ` Andrew Schulman
2017-02-24 18:15           ` Andrew Schulman
2017-03-27 21:50             ` Yaakov Selkowitz
2017-03-31 17:00               ` Andrew Schulman
2017-04-03  2:23                 ` unison-2.48 build fails with latest ocaml and flexdll (attn: Achim) Yaakov Selkowitz
2017-04-03  6:23                   ` Achim Gratz
2017-04-08 17:42                     ` Achim Gratz
2017-04-03 17:12                   ` Andrew Schulman
2017-04-03 17:23                     ` Yaakov Selkowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5723B6C7.8090100@maxrnd.com \
    --to=mark@maxrnd.com \
    --cc=cygwin-apps@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).