This is the mail archive of the cygwin-developers mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Error building libffi on x86_64


On Wed, 13 Mar 2013 10:25:03 +0100, Kai Tietz wrote:
> 2013/3/13 Yaakov:
> > I have encountered the following error attempting to build
> > libffi-3.0.12 on Cygwin:
> >
> > src/x86/.libs/win64.o:/usr/src/debug/libffi-3.0.12-1/src/x86/win64.S:298:(.text+0x69): relocation truncated to fit: R_X86_64_32S against symbol `ffi_closure_win64_inner' defined in .text section in src/x86/.libs/ffi.o
> 
> Hmm, I think the issue is here that the instruction used at this place
> misses ip-relative addressing.
> 
> At line 298  we have       mov     $SYMBOL_NAME(ffi_closure_win64_inner), %rax
> 
> Could you try if you get same isse with that line replaced by  lea
> SYMBOL_NAME(ffi_closure_win64_inner)(%rip), %rax

That compiles; results of make check:

                === libffi Summary ===

# of expected passes            1754
# of unexpected failures        10
# of unexpected successes       44
# of expected failures          6
# of unsupported tests          55

The failures were in libffi.call/cls_longdouble.c execution tests and
libffi.special/unwindtest.cc tests.  I have uploaded dejagnu and
expect, and updated my patch accordingly.

> > The only matches on Google for this sort of error were for >2GB code on
> > Linux, but I suspect the problem here is with the medium code model.
> 
> Well, as ffi_closure_win64_inner is a *near* symbol to win64.S - as it
> is within same library and is a static one - I suspect that the issue
> is related to medium (means far data) scenario.

Standalone libffi is built as a shared library.

> Otherway might be to translate libffi itself by using the option
> -mcmodel=small instead.  BUt I assuem it is more related by
> none-ip-relative addressing within that assembler file.

Thanks for the help,


Yaakov


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]