unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Óscar Fuentes" <ofv@wanadoo.es>
To: emacs-devel@gnu.org
Subject: Re: Anyone building Emacs trunk with MinGW w64 (32 bits)
Date: Mon, 25 Mar 2013 20:46:35 +0100	[thread overview]
Message-ID: <87fvzjcles.fsf@wanadoo.es> (raw)
In-Reply-To: 87k3ovcn1r.fsf@wanadoo.es

Óscar Fuentes <ofv@wanadoo.es> writes:

> rzl24ozi@gmail.com writes:
>
>>> w32.c:4725:7: error: unknown type name 'REPARSE_DATA_BUFFER'
>>
>> 'REPARSE_DATA_BUFFER' is typedef'ed in w32.c with '#ifdef _MSC_VER'.
>> I think that it should be changed to '#if defined(_MSC_VER) || defined(__MINGW64__)'.
>
> Thanks! Unfortunately, it seems that there is no macro that
> discriminates MinGWW64 from MinGW, so removed the #if for now.

With the changes below the project builds until

gcc -o oo-spd/i386/temacs.bin  -gdwarf-2 -g3   -Lc:/apps/GnuWin32/lib -Wl,-stack
,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-subsystem,conso
le -Wl,-entry,__start -Wl,-Map,oo-spd/i386/temacs.map oo-spd/i386/firstfile.o oo
-spd/i386/emacs.res oo-spd/i386/temacs0.a oo-spd/i386/temacs1.a oo-spd/i386/tema
cs2.a oo-spd/i386/lastfile.a ../lib/oo-spd/i386/libgnu.a -lwinmm -ladvapi32 -lgd
i32 -lcomdlg32 -luser32 -lmpr -lshell32 -lwinspool -lole32 -lcomctl32 -lusp10
oo-spd/i386/temacs1.a(fileio.o): In function `barf_or_query_if_file_exists':
D:\dev\emacs\emacs\src/fileio.c:1900: undefined reference to `_imp__lstat'
oo-spd/i386/temacs1.a(dired.o): In function `file_attributes':
D:\dev\emacs\emacs\src/dired.c:943: undefined reference to `_imp__fstatat'
oo-spd/i386/temacs1.a(dired.o): In function `file_name_completion_stat':
D:\dev\emacs\emacs\src/dired.c:818: undefined reference to `_imp__fstatat'
D:\dev\emacs\emacs\src/dired.c:820: undefined reference to `_imp__fstatat'
collect2.exe: error: ld returned 1 exit status
mingw32-make[3]: *** [oo-spd/i386/temacs.exe] Error 1
mingw32-make[3]: Leaving directory `D:/dev/emacs/emacs/src'



I have no time for investigating why the linker searches for lstat and
fstatat as if they were dllimports and ignores those defined in w32.c.

The changes are not intended to be committed into trunk, they are just
for the benefit of those who know what is going on.




	Modified   lib-src/ntlib.c
diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c
index f431174..7d21e01 100644
--- a/lib-src/ntlib.c
+++ b/lib-src/ntlib.c
@@ -34,11 +34,13 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "ntlib.h"
 
+#ifndef _TIMESPEC_DEFINED
 struct timezone
 {
   int		tz_minuteswest;	/* minutes west of Greenwich */
   int		tz_dsttime;	/* type of dst correction */
 };
+#endif
 
 #define MAXPATHLEN _MAX_PATH
 
	Modified   nt/addpm.c
diff --git a/nt/addpm.c b/nt/addpm.c
index 6ed625d..c26fa93 100644
--- a/nt/addpm.c
+++ b/nt/addpm.c
@@ -34,7 +34,9 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    installed, then the DDE fallback for creating icons the Windows 3.1
    progman way will be used instead, but that is prone to lockups
    caused by other applications not servicing their message queues.  */
-#define _WIN32_IE 0x400
+/* c:\apps\msys\1.0\mingw\bin\../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w6 */
+/* 4-mingw32/include/shlguid.h:16:2: error: #error _WIN32_IE setting conflicts */
+/* #define _WIN32_IE 0x400 */
 /* Request C Object macros for COM interfaces.  */
 #define COBJMACROS 1
 
	Modified   nt/config.nt
diff --git a/nt/config.nt b/nt/config.nt
index 1fe707c..26d7119 100644
--- a/nt/config.nt
+++ b/nt/config.nt
@@ -1146,6 +1146,13 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Define to 1 if _setjmp and _longjmp work. */
 #define HAVE__SETJMP 1
 
+/* eval.c:963:3: error: too few arguments to function '_setjmp' */
+/* In file included from lisp.h:24:0, */
+/*                  from eval.c:24: */
+/* c:\apps\msys\1.0\mingw\bin\../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w6 */
+/* 4-mingw32/include/setjmp.h:164:63: note: declared here */
+#define USE_NO_MINGW_SETJMP_TWO_ARGS 1
+
 /* Define to 1 if you have the `__builtin_unwind_init' function. */
 #undef HAVE___BUILTIN_UNWIND_INIT
 
	Modified   nt/inc/ms-w32.h
diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h
index d3faa6d..d2188a2 100644
--- a/nt/inc/ms-w32.h
+++ b/nt/inc/ms-w32.h
@@ -154,7 +154,7 @@ extern char *getenv ();
 
 #ifdef emacs
 
-#ifdef _MSC_VER
+#if 1
 #include <sys/timeb.h>
 #include <sys/stat.h>
 #include <signal.h>
	Modified   nt/inc/sys/time.h
diff --git a/nt/inc/sys/time.h b/nt/inc/sys/time.h
index e49f0ea..b6a016b 100644
--- a/nt/inc/sys/time.h
+++ b/nt/inc/sys/time.h
@@ -6,6 +6,10 @@
  * have the below stuff.
  */
 
+#include <sys/types.h>
+#include <time.h>
+
+#ifndef _TIMESPEC_DEFINED
 struct timeval
 {
   long		tv_sec;		/* seconds */
@@ -17,6 +21,7 @@ struct timezone
   int		tz_minuteswest;	/* minutes west of Greenwich */
   int		tz_dsttime;	/* type of dst correction */
 };
+#endif
 
 void gettimeofday (struct timeval *, struct timezone *);
 
@@ -24,13 +29,13 @@ void gettimeofday (struct timeval *, struct timezone *);
 #define ITIMER_PROF      1
 
 /* MinGW64 defines 'struct itimerval' and _TIMESPEC_DEFINED in sys/types.h.  */
-#ifndef _TIMESPEC_DEFINED
+// #ifndef _TIMESPEC_DEFINED
 struct itimerval
 {
   struct  timeval it_interval;	/* timer interval */
   struct  timeval it_value;	/* current value */
 };
-#endif
+// #endif
 
 int getitimer (int, struct itimerval *);
 int setitimer (int, struct itimerval *, struct itimerval *);
	Modified   src/w32.c
diff --git a/src/w32.c b/src/w32.c
index 647faf9..95aee3b 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -127,7 +127,7 @@ typedef struct _PROCESS_MEMORY_COUNTERS_EX {
 #define SDDL_REVISION_1	1
 #endif	/* SDDL_REVISION_1 */
 
-#ifdef _MSC_VER
+#if 1
 /* MSVC doesn't provide the definition of REPARSE_DATA_BUFFER and the
    associated macros, except on ntifs.h, which cannot be included
    because it triggers conflicts with other Windows API headers.  So
@@ -2386,28 +2386,31 @@ get_emacs_configuration_options (void)
 
 
 #include <sys/timeb.h>
+/* w32.c:2392:1: error: conflicting types for 'gettimeofday' */
+/* In file included from w32.c:32:0: */
+/* ../nt/inc/sys/time.h:25:6: note: previous declaration of 'gettimeofday' was here */
 
 /* Emulate gettimeofday (Ulrich Leodolter, 1/11/95).  */
-void
-gettimeofday (struct timeval *tv, struct timezone *tz)
-{
-  struct _timeb tb;
-  _ftime (&tb);
-
-  tv->tv_sec = tb.time;
-  tv->tv_usec = tb.millitm * 1000L;
-  /* Implementation note: _ftime sometimes doesn't update the dstflag
-     according to the new timezone when the system timezone is
-     changed.  We could fix that by using GetSystemTime and
-     GetTimeZoneInformation, but that doesn't seem necessary, since
-     Emacs always calls gettimeofday with the 2nd argument NULL (see
-     current_emacs_time).  */
-  if (tz)
-    {
-      tz->tz_minuteswest = tb.timezone;	/* minutes west of Greenwich  */
-      tz->tz_dsttime = tb.dstflag;	/* type of dst correction  */
-    }
-}
+/* void */
+/* gettimeofday (struct timeval *tv, struct timezone *tz) */
+/* { */
+/*   struct _timeb tb; */
+/*   _ftime (&tb); */
+
+/*   tv->tv_sec = tb.time; */
+/*   tv->tv_usec = tb.millitm * 1000L; */
+/*   /\* Implementation note: _ftime sometimes doesn't update the dstflag */
+/*      according to the new timezone when the system timezone is */
+/*      changed.  We could fix that by using GetSystemTime and */
+/*      GetTimeZoneInformation, but that doesn't seem necessary, since */
+/*      Emacs always calls gettimeofday with the 2nd argument NULL (see */
+/*      current_emacs_time).  *\/ */
+/*   if (tz) */
+/*     { */
+/*       tz->tz_minuteswest = tb.timezone;	/\* minutes west of Greenwich  *\/ */
+/*       tz->tz_dsttime = tb.dstflag;	/\* type of dst correction  *\/ */
+/*     } */
+/* } */
 
 /* Emulate fdutimens.  */
 
	Modified   src/w32term.c
diff --git a/src/w32term.c b/src/w32term.c
index e02b5a6..6c29470 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -109,7 +109,7 @@ struct w32_display_info *x_display_list;
 Lisp_Object w32_display_name_list;
 
 
-#if _WIN32_WINNT < 0x0500
+#if 0 // _WIN32_WINNT < 0x0500
 /* Pre Windows 2000, this was not available, but define it here so
    that Emacs compiled on such a platform will run on newer versions.  */
 





  reply	other threads:[~2013-03-25 19:46 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 [this message]
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
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=87fvzjcles.fsf@wanadoo.es \
    --to=ofv@wanadoo.es \
    --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).