On 11/08/2018 09:45 AM, Alexandre Oliva wrote:
> On Nov  7, 2018, JonY <10wa...@gmail.com> wrote:
> 
>> On 11/07/2018 08:34 AM, Alexandre Oliva wrote:
>>> On Nov  1, 2018, JonY wrote:
>>>
>>>> Looks like it causes an error on 64bit:
>>>> /usr/libexec/gcc/x86_64-w64-mingw32/ld: unrecognized option
>>>> '--large-address-aware'
>>>
>>> What does?  The patch I suggested?  The current trunk?
>>>
>>> What was the command in this case?  How was the toolchain configured?
> 
>> No it's just a quick test to see how x86_64-w64-mingw32 reacts to
>> --large-address-aware, it doesn't play well.
> 
> I understand, but you're getting a different result from what I am, I'd
> like to understand why before attempting to "fix" something that AFAICT
> is correct and behaving just as intended.  Maybe there are valid reasons
> to drop --large-address-aware altogether on x86_64-w64-mingw32, but I'd
> like to understand why, as in, how the error above came about for you,
> when it didn't for me.
> 
> I built gcc and binutils in a single tree, with x86_64-w64-mingw32 as
> the target, and the resulting linker would accept --large-address-aware
> in the -mi386-pe emulation, and that emulation was explicitly enabled
> when building -m32 binaries.  Does your w64 toolchain deviate from any
> of these facts?
> 

No, no. By quick I just mean using -Wl,--large-address-aware on an
existing gcc install, nothing complex. Sorry about not making it clear.

> 
>> x86_64-mingw32 is not used as far as I know, only with "w64" or "pc".
> 
> x86_64-mingw32's canonical form is x86_64-pc-mingw32, and they're
> equivalent, so whatever you say or know about the latter should apply to
> the shorter form as well.  Likewise, my questions and doubts about the
> shorter form apply equally to the canonical one.
> 
>> The "w64" carries a special meaning to gcc dating back to the early
>> 64bit port. It basically tells gcc to use mingw-w64 specific features
>> that are not found on the regular mingw.org CRT at the time.
> 
> I see.  So -pc- and -w64- are not supposed to be equivalent indeed.
> Thanks.
> 
>> This might be affecting the "pc" vendor build, can you check
>> x86_64-pc-mingw32 just to see if it is affected?
> 
> I did.  Its -m32 mode seems broken to me.  As I wrote, the linker
> emulation is never specified, so it would build 64-bit binaries even
> when given -m32.  Because it lacks explicit linker emulation
> specification, it can't have --large-address-aware specified either.
> 
> In my link tests, i686-mingw32 and x86_64-w64-mingw32 both worked (in
> that their respective linkers wouldn't reject the --large-address-aware
> passed by gcc) with the --large-address-aware patch that is installed in
> trunk.  Ditto with the incremental patch I posted last week, that would
> have only improved x86_64-pc-mingw32.
> 

I now understand the problem, thanks for the clarification about the
patch. Patch is OK.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to