emacs-devel
[Top][All Lists]
Advanced

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

Re: Windows 64 port


From: Fabrice Popineau
Subject: Re: Windows 64 port
Date: Thu, 22 Mar 2012 19:29:10 +0100



2012/3/1 Paul Eggert <address@hidden>
> === modified file 'src/m/amdx86-64.h'
> --- src/m/amdx86-64.h 2012-01-19 07:21:25 +0000
> +++ src/m/amdx86-64.h 2012-02-28 07:00:30 +0000
> @@ -17,7 +17,13 @@
>  You should have received a copy of the GNU General Public License
>  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
>
> -#define BITS_PER_LONG           64
> +#ifdef _WIN64
> +# define BITS_PER_LONG           32
> +# define BITS_PER_LONG_LONG      64
> +#else
> +# define BITS_PER_LONG           64
> +#endif

Since this stuff is normally defined by 'configure', it should be put
into nt/config.nt rather than into a src/m/* file; there shouldn't be
a need to use or to modify src/m/amdx86-64.h.  Similarly for the other
changes to src/m/amdx86-64.h.  I don't see how that file is used under
Windows 64; but if it is, we should fix that, and not change the file.

I used this file instead of src/m/i386.h because it seemed to have this purpose of
holding machine dependent constants. I could probably put this stuff into config.nt,
but in this case I wonder what is the purpose of the m/ directory? Surely, every
other architecture could also rely on configure to guess the right values?

By the way, this is what I have currently :

=== modified file 'src/m/amdx86-64.h'
--- src/m/amdx86-64.h   2012-01-19 07:21:25 +0000
+++ src/m/amdx86-64.h   2012-02-28 07:00:30 +0000
@@ -17,7 +17,13 @@
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */

-#define BITS_PER_LONG           64
+#ifdef _WIN64
+# define BITS_PER_LONG           32
+# define BITS_PER_LONG_LONG      64
+#else
+# define BITS_PER_LONG           64
+#endif
+
 #define BITS_PER_EMACS_INT      64

 /* Now define a symbol for the cpu type, if your compiler
@@ -27,9 +33,17 @@
 /* __x86_64 defined automatically.  */

 /* Define the type to use.  */
-#define EMACS_INT               long
-#define pI                     "l"
-#define EMACS_UINT              unsigned long
+#ifdef _WIN64
+# define EMACS_INT               __int64
+# define EMACS_UINT              unsigned __int64
+# define pI                    "ll"
+# define VIRT_ADDR_VARIES
+# define DATA_START    get_data_start ()
+#else
+# define EMACS_INT               long
+# define pI                    "l"
+# define EMACS_UINT              unsigned long
+#endif

 /* Define XPNTR to avoid or'ing with DATA_SEG_BITS */
 #undef DATA_SEG_BITS

--
Fabrice Popineau
-----------------------------
SUPELEC
Département Informatique
3, rue Joliot Curie
91192 Gif/Yvette Cedex
Tel direct : +33 (0) 169851950
Standard : +33 (0) 169851212
------------------------------



reply via email to

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