bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#19111: 25.0.50; 32 bits temacs.exe is linked with wrong image-base w


From: Óscar Fuentes
Subject: bug#19111: 25.0.50; 32 bits temacs.exe is linked with wrong image-base when built on 64 bit Windows host
Date: Thu, 20 Nov 2014 19:30:37 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Eli Zaretskii <eliz@gnu.org> writes:

>> We are using $MSYSTEM to special-case MinGW(-w64). $MSYSTEM is MINGW32
>> when using the 32 bit toolset and MINGW64 when using the 64 bit toolset.
>> That's true for MSYS2/MinGW-w64. I'm not sure if MSYS sets $MSYSTEM to
>> MINGW or MINGW32, but any of it should be ok with the patch.
>> 
>> The -m32 switch is actively discouraged by the MinGW-w64 community and
>> the official builds does not support it.
>> 
>> Does this answer your questions?
>
> Sorry, it doesn't.  You say that $MSYSTEM is set to either MINGW32 or
> MINGW64, depending on whether 32-bit or 64-bit toolset is used.  But
> how does MSYS2 know which toolset you are going to use to compile a
> program?  How do you communicate that to MSYS2?

It is set automatically by the .bat file that starts the MSYS2 shell.
There is a .bat that sets $MSYSTEM, paths, etc for MINGW32, other for
MINGW64 and other for MSYS.

In the end, the user must ensure that $MSYSTEM matches the toolset he is
going to use. This is nothing new. The Emacs build fails if $MSYSTEM is
not correctly set, for MinGW(-w64) builds.

> In any case, what I suggest to do is correct the triplet,
> automatically, after uname guesses it, if we find that it is wrong for
> "the toolset about to be used", whatever that means.

How do we know that the triplet is wrong? The easy way is to inspect
$MSYSTEM, but if that's the solution then we could stop using the
triplet altogether and use $MSYSTEM instead (which is what my patch
does.)

Another solution is to get the --host/--build triplet from `gcc -v' (use
the `--target=...' part. I don't know how it is supposed to deal with
the case of the user setting those parameters explicitly, although I
can't think of a valid reason for setting --host/--build to something
different from the `gcc -v' --target, since Emacs does not support
cross-compiling.

I understand your concern: `configure' can use the triplet anywhere and
hence it is important that it is correct.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]