annotate src/lastfile.c @ 5602:c9e5612f5424

Support the MP library on recent FreeBSD, have it pass relevant tests. src/ChangeLog addition: 2011-11-26 Aidan Kehoe <kehoea@parhasard.net> * number-mp.c (bignum_to_string): Don't overwrite the accumulator we've just set up for this function. * number-mp.c (BIGNUM_TO_TYPE): mp_itom() doesn't necessarily do what this code used to think with negative numbers, it can treat them as unsigned ints. Subtract numbers from bignum_zero instead of multiplying them by -1 to convert them to their negative equivalents. * number-mp.c (bignum_to_int): * number-mp.c (bignum_to_uint): * number-mp.c (bignum_to_long): * number-mp.c (bignum_to_ulong): * number-mp.c (bignum_to_double): Use the changed BIGNUM_TO_TYPE() in these functions. * number-mp.c (bignum_ceil): * number-mp.c (bignum_floor): In these functions, be more careful about rounding to positive and negative infinity, respectively. Don't use the sign of QUOTIENT when working out out whether to add or subtract one, rather use the sign QUOTIENT would have if arbitrary-precision division were done. * number-mp.h: * number-mp.h (MP_GCD): Wrap #include <mp.h> in BEGIN_C_DECLS/END_C_DECLS. * number.c (Fbigfloat_get_precision): * number.c (Fbigfloat_set_precision): Don't attempt to call XBIGFLOAT_GET_PREC if this build doesn't support big floats.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 26 Nov 2011 17:59:14 +0000
parents 308d34e9f07d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* Mark end of data space to dump as pure, for XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1985 Free Software Foundation, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 448
diff changeset
6 XEmacs is free software: you can redistribute it and/or modify it
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 448
diff changeset
8 Free Software Foundation, either version 3 of the License, or (at your
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 448
diff changeset
9 option) any later version.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 448
diff changeset
17 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 /* Synched up with: FSF 19.30. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 /* How this works:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 Fdump_emacs dumps everything up to my_edata as text space (pure).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 The files of Emacs are written so as to have no initialized
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 data that can ever need to be altered except at the first startup.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 This is so that those words can be dumped as sharable text.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 It is not possible to exercise such control over library files.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 So it is necessary to refrain from making their data areas shared.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 Therefore, this file is loaded following all the files of Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 but before library files.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 As a result, the symbol my_edata indicates the point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 in data space between data coming from Emacs and data
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 coming from libraries.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
39 #include <config.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
40
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 char my_edata[] = "End of Emacs initialized data";
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
43 /* Ensure there is enough slack in the .bss to pad with. */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
44 #ifdef HEAP_IN_DATA
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
45 #define BSS_PADDING 0x1000
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
46 #else
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
47 #define BSS_PADDING 1
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
48 #endif
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
49
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
50 char my_ebss [BSS_PADDING];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
51