unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: rzl24ozi@gmail.com
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Anyone building Emacs trunk with MinGW w64 (32 bits)
Date: Wed, 27 Mar 2013 00:48:58 +0900	[thread overview]
Message-ID: <867gku88lx.fsf@gmail.com> (raw)
In-Reply-To: <83hajyz1mi.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 26 Mar 2013 16:17:41 +0200")

> Thanks.  But what does it mean "on Cygwin" in this context?  If you
> are building with the MinGW64 tools, what Cygwin has got to do with
> this?

It mean that I use MinGW64 tools on Cygwin shell.
I think Cygwin is not important.

>  --- ./nt/addpm.c.orig	2013-03-26 17:33:23.000000000 +0900
>  +++ ./nt/addpm.c	2013-03-26 21:46:23.405698700 +0900
>  @@ -34,15 +34,17 @@
    :
> What was wrong with the original code, and why did you need to move
> the definition of _WIN32_IE further down?  What error messages did you
> see with the original code?

Because _W64 is defined after include MinGW64 header.

>   --- ./nt/configure.bat.orig	2013-03-26 22:06:16.528698700 +0900
>   +++ ./nt/configure.bat	2013-03-26 22:06:16.492698700 +0900
>   @@ -479,10 +479,10 @@
    :
> What was wrong with the original gcc commands?

"-mtune=pentium4" cause an error in 64bit gcc, like
"hello.c:1:0: error: CPU you selected does not support x86-64 instruction set"

If "-mtune=pentium4" is failed configure.bat use "-mcpu=i686" instead,
but it cause gcc warnig like
"gcc.exe: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead"

>   #ifdef _W64
>   /* MinGW64 specific stuff.  */
>  -#define USE_NO_MINGW_SETJMP_TWO_ARGS 1
>   /* Make sure 'struct timespec' and 'struct timezone' are defined.  */
>   #include <sys/types.h>
>  +#include <sys/stat.h>
>   #include <time.h>
>  +#ifdef WIN64
>  +#define _start __start
>  +#endif
>   #endif
>
>   #ifdef _MSC_VER
>
> Please explain why these changes to ms-w32.h were needed.

If USE_NO_MINGW_SETJMP_TWO_ARGS is defined, it seems that emacs crash
when byte-compile. I do not know what happened in this case exactly,
sorry.

In ms-w32.h, some functions are defined to sys_...,
such as chmod -> sys_chmod.
if it is defined before "#include <sys/stat.h>",
functions in sys/stat.h are changed.
It cause warning like "warning: 'sys_chmod' redeclared without
dllimport...", I think. so I include it here.

__start is entry point that specified by linker option in makefile,
but 64bit gcc does not add '_' to symbol, so change _start to
__start.

>   --- ./nt/inc/sys/time.h.orig	2013-03-26 17:33:23.000000000 +0900
>   +++ ./nt/inc/sys/time.h	2013-03-26 21:46:23.425698700 +0900
    :
> This breaks the MinGW32 build, so please see if the current trunk has
> a better solution for this problem.

I understand.

>     --- ./src/image.c.orig	2013-03-24 18:16:45.000000000 +0900
>     +++ ./src/image.c	2013-03-26 21:46:23.437698700 +0900
>     @@ -5545,6 +5545,9 @@
>        png_byte **rows;
>      };
>
>     +#ifdef _W64
>     +#define _setjmp setjmp
>     +#endif
>
> Why is this needed?

In image.c, _setjmp() is used with 1 arg. It seems that some compile error.
This is also related to the following.

>   --- ./src/lisp.h.orig	2013-03-25 12:31:37.000000000 +0900
>   +++ ./src/lisp.h	2013-03-26 21:46:23.442698700 +0900
>   @@ -2164,7 +2164,11 @@
>
>    #ifdef HAVE__SETJMP
>    typedef jmp_buf sys_jmp_buf;
>   +#ifdef _W64
>   +# define sys_setjmp(j) setjmp (j)
>   +#else
>    # define sys_setjmp(j) _setjmp (j)
>   +#endif
>    # define sys_longjmp(j, v) _longjmp (j, v)
>
> And this?

If USE_NO_MINGW_SETJMP_TWO_ARGS is not defined,
it seems that _setjmp() need 2 args (see mingw-w64's setjmp.h).
so I change this.

Sorry for my poor english. I'm not english native.



  reply	other threads:[~2013-03-26 15:48 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-23 14:32 Anyone building Emacs trunk with MinGW w64 (32 bits) Óscar Fuentes
2013-03-23 15:25 ` Eli Zaretskii
2013-03-23 15:49   ` Óscar Fuentes
2013-03-23 17:49     ` Eli Zaretskii
2013-03-23 19:47       ` Andy Moreton
2013-03-23 20:06         ` Eli Zaretskii
2013-03-23 20:18           ` Cross-compiling with MinGW on GNU/Linux (was: Anyone building Emacs trunk with MinGW w64 (32 bits)) Óscar Fuentes
2013-03-23 20:27             ` Eli Zaretskii
2013-03-24  9:08   ` 64-bit port " cg
2013-03-24 14:00     ` Fabrice Popineau
2013-03-24 15:11       ` 64-bit port cg
2013-03-26 21:05         ` Fabrice Popineau
2013-03-24 15:40       ` 64-bit port (was: Anyone building Emacs trunk with MinGW w64 (32 bits)) Eli Zaretskii
2013-03-25 13:57 ` Anyone building Emacs trunk with MinGW w64 (32 bits) Eli Zaretskii
2013-03-25 17:09   ` Óscar Fuentes
2013-03-25 20:30     ` Eli Zaretskii
2013-03-25 20:49       ` Óscar Fuentes
2013-03-26  2:24       ` Stefan Monnier
2013-03-26  6:34         ` Eli Zaretskii
2013-03-26 11:10           ` Óscar Fuentes
2013-03-26 12:07             ` Eli Zaretskii
2013-03-26 12:34               ` Óscar Fuentes
2013-03-26 13:24                 ` Eli Zaretskii
2013-03-26 16:17                   ` Óscar Fuentes
2013-03-26 16:32                     ` Eli Zaretskii
2013-03-25 17:41   ` Óscar Fuentes
2013-03-25 18:44     ` rzl24ozi
2013-03-25 19:11       ` Óscar Fuentes
2013-03-25 19:46         ` Óscar Fuentes
2013-03-25 20:48           ` Eli Zaretskii
2013-03-25 21:30             ` Óscar Fuentes
2013-03-25 21:37               ` Óscar Fuentes
2013-03-25 22:02                 ` Eli Zaretskii
2013-03-25 22:07               ` Eli Zaretskii
2013-03-26  8:25                 ` Eli Zaretskii
2013-03-26 11:48                   ` Óscar Fuentes
2013-03-26 12:42                     ` Eli Zaretskii
2013-03-26 13:54                     ` Eli Zaretskii
2013-03-26 14:06                       ` Eli Zaretskii
2013-03-26 20:49                       ` Óscar Fuentes
2013-03-26 21:24                         ` Eli Zaretskii
2013-03-26 21:58                           ` Óscar Fuentes
2013-03-26 22:30                             ` Óscar Fuentes
2013-03-27  7:24                               ` Eli Zaretskii
2013-03-25 20:38         ` Eli Zaretskii
2013-03-25 21:24         ` Eli Zaretskii
2013-03-25 21:33           ` Eli Zaretskii
2013-03-25 21:35           ` Óscar Fuentes
2013-03-25 23:41         ` rzl24ozi
2013-03-26  1:40           ` Óscar Fuentes
2013-03-26  6:42             ` Eli Zaretskii
2013-03-26  9:41               ` rzl24ozi
2013-03-26 13:52                 ` rzl24ozi
2013-03-26 14:17                   ` Eli Zaretskii
2013-03-26 15:48                     ` rzl24ozi [this message]
2013-03-26 16:07                       ` Eli Zaretskii
2013-03-26 17:38                       ` Eli Zaretskii
2013-03-26 18:13                         ` rzl24ozi
2013-03-26 18:57                           ` Eli Zaretskii
2013-03-26 20:17                             ` Óscar Fuentes
2013-03-26 20:34                               ` Eli Zaretskii
2013-03-27  8:17                             ` rzl24ozi
2013-03-27  8:41                               ` Eli Zaretskii
2013-03-27  9:34                                 ` rzl24ozi
2013-03-27 10:10                                   ` Eli Zaretskii
2013-03-27 11:35                                     ` rzl24ozi
2013-03-27 12:03                                       ` Eli Zaretskii
2013-03-27 12:57                                         ` rzl24ozi
2013-03-27 13:27                                           ` Eli Zaretskii
2013-03-27 22:03                                             ` rzl24ozi
2013-03-28  6:40                                               ` Eli Zaretskii
2013-03-27 13:17                                         ` using GnuTLS 3.x and certificate checks (was: Anyone building Emacs trunk with MinGW w64 (32 bits)) Ted Zlatanov
2013-04-10 20:35                                           ` using GnuTLS 3.x and certificate checks Christopher Schmidt
2013-05-19  2:57                                             ` Ted Zlatanov
2013-05-19 19:34                                               ` Christopher Schmidt
2013-05-19 22:59                                                 ` Ted Zlatanov
2013-06-05 15:07                                                   ` Ted Zlatanov
2013-06-05 15:59                                                     ` Christopher Schmidt
2013-06-05 15:08                                               ` Ted Zlatanov
2013-06-05 17:44                                                 ` Stefan Monnier
2013-06-05 18:03                                                   ` Ted Zlatanov
2013-06-05 18:42                                                     ` Stefan Monnier
2013-06-05 15:13                                           ` Ted Zlatanov
2013-06-05 20:55                                             ` Ted Zlatanov
2013-06-06 13:06                                               ` Ted Zlatanov
2013-10-07 22:24                                                 ` Ted Zlatanov
2013-10-10 23:20                                                   ` Ted Zlatanov
2013-10-10 23:37                                                   ` Glenn Morris
2013-10-11 13:48                                                     ` Ted Zlatanov
2013-03-26 14:33                   ` Anyone building Emacs trunk with MinGW w64 (32 bits) Eli Zaretskii
2013-03-26 16:56                     ` rzl24ozi

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=867gku88lx.fsf@gmail.com \
    --to=rzl24ozi@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).