Hi Eli,
Here is my Windows 64 bits patch. It is quite crude and only attempts to make it possible to compile
a 64bits emacs with the MS Sdk.
I have sent the paperwork to the FSF last week, so this patch could be reviewed and maybe integrated soon.
It is against emacs-24, current trunk.
Not everything is taken cared of: the heap allocation scheme should probably be reworked. Anyway,
I was able to run an emacs and make it allocate everything available on my Windows 64 machine
(4Gb of Ram + around 10Gb of swap). It just did it without crashing.
Best regards,
Fabrice
2012/2/19 Eli Zaretskii
<eliz@...>
> Date: Sun, 19 Feb 2012 21:18:00 +0100
> From: AJMR <ajmr@...>
>
> I would love to start to contribute to the GNU community and I thought
> that porting Emacs 23 to Windows 64, could be a good useful entry.
Thanks, it will.
> However, I have no idea on how to, or where, start.
Start with bug #9960, where some of this was discussed. Maybe Fabrice
could post the patches he has till now.
--
Fabrice Popineau
-----------------------------
SUPELEC
Département Informatique
3, rue Joliot Curie
91192 Gif/Yvette Cedex
Tel direct : +33 (0) 169851950
Standard : +33 (0) 169851212
------------------------------
[amdx86-64.h]
/* machine description file for AMD x86-64.
Copyright (C) 2002-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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 32
#define BITS_PER_LONG_LONG 64
#define BITS_PER_EMACS_INT 64
/* Now define a symbol for the cpu type, if your compiler
does not define it automatically:
Ones defined so far include vax, m68000, ns16000, pyramid,
orion, tahoe, APOLLO and many others */
/* __x86_64 defined automatically. */
/* Define the type to use. */
#define EMACS_INT __int64
#define EMACS_UINT unsigned __int64
#define pI "ll"
#define VIRT_ADDR_VARIES
#define DATA_START get_data_start ()
/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */
#undef DATA_SEG_BITS