This is the mail archive of the
cygwin-developers
mailing list for the Cygwin project.
Re: 64bit: C++ templates
- From: Corinna Vinschen <corinna-cygwin at cygwin dot com>
- To: cygwin-developers at cygwin dot com
- Date: Tue, 4 Jun 2013 15:51:49 +0200
- Subject: Re: 64bit: C++ templates
- References: <516CDE32 dot 5000206 at users dot sourceforge dot net> <516F5F89 dot 40600 at users dot sourceforge dot net> <518C9018 dot 9030606 at users dot sourceforge dot net> <CAEwic4aPQHUChVWui6h0FctFkHXh3A0zwh1On50cJRE=SV1UeA at mail dot gmail dot com> <CAEwic4ZAy++TifyZR=XZnD_xahM0GOdO-XREvY6ZdKGQRc+ykA at mail dot gmail dot com> <20130516082534 dot GB11933 at calimero dot vinschen dot de>
- Reply-to: cygwin-developers at cygwin dot com
On May 16 10:25, Corinna Vinschen wrote:
> Hi Yaakov,
>
> On May 15 11:32, Kai Tietz wrote:
> > Hi,
> >
> > the issue is a more general on and related to harfbuzz' use of
> > -fvisibility-inlines-hidden for mingw-targets, but not for cygwin
> > targets. Btw the issue should be latent present for 32-bit too.
> > Well, nevertheless my test have shown that this option indeed fixes
> > that described issue.
>
> Yesterday it turned out that the visibility stuff is not the real
> problem. Mingw gcc 4.8 also produces the same set of symbols, but it
> doesn't fail when linking.
>
> Some more testing now showed clearly that this problem is related to the
> high address used as base addresses in the Cygwin toolchain. If you
> build the harfbuzz DLL not with
>
> -Wl,--enable-auto-image-base
>
> but instead with a fixed address in the lower 31 bit address area,
> for instance
>
> -Wl,--image-base -Wl,0x7ff00000
>
> the problem disappears and you can successfully build the DLL.
> Alternatively, you can also workaround this issue by building harfbuzz
> with the -mcmodel=large option, which doesn't suffer this problem due to
> the way symbols are only indirectly addressed.
>
> Right now it seems this is a bfd bug in the relocation code. The code
> tests these 32 bit pc-relative offsets by checking if the result still
> fits into 31 bit, without taking the high image base into account.
> Also, for some reason this doesn't occur with all symbols, but only with
> a very specific set of symbols (weak and a special kind of section
> symbols).
>
> That's it for now. We're still looking into providing a solution.
This is it, probably:
http://cygwin.com/ml/cygwin-apps/2013-06/msg00057.html
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat