diff options
| author | Paul Eggert | 2013-06-18 00:42:37 -0700 |
|---|---|---|
| committer | Paul Eggert | 2013-06-18 00:42:37 -0700 |
| commit | 9349e5f76716b44f92391fa722f5feba58898f27 (patch) | |
| tree | b92794231ade365c43949c92850d1af491953e4a /src/ChangeLog | |
| parent | e0df2d1420f322f0879c59471d9e579cf74a8ea5 (diff) | |
| download | emacs-9349e5f76716b44f92391fa722f5feba58898f27.tar.gz emacs-9349e5f76716b44f92391fa722f5feba58898f27.zip | |
Porting fixes for merged specpdl and backtrace stacks.
In particular this ports to 32-bit sparc Sun cc.
* eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
array with a dummy element at specpdl[-1], so that its address can
be taken portably.
(unbind_to): Do not copy the binding; not needed, now that we
copy old_value in the one place where the copy is needed.
* fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
* lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
(union specbinding): Rename from struct specbinding. Redo layout
to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
which is not portable. With Sun C 5.12 32-bit sparc, the
declaration causes nargs to be an unsigned bitfield, a behavior
that the C standard allows; but Emacs wants nargs to be signed.
The overall type is now a union of structures rather than a
structure of union of structures, and the 'kind' member is now a
bitfield, so that the overall type doesn't grow. All uses changed.
* process.c (Fmake_serial_process): Remove unnecessary initialization.
Fixes: debbugs:14643
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 9a23c144e82..e1609356403 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,24 @@ | |||
| 1 | 2013-06-18 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Porting fixes for merged specpdl and backtrace stacks (Bug#14643). | ||
| 4 | In particular this ports to 32-bit sparc Sun cc. | ||
| 5 | * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding | ||
| 6 | array with a dummy element at specpdl[-1], so that its address can | ||
| 7 | be taken portably. | ||
| 8 | (unbind_to): Do not copy the binding; not needed, now that we | ||
| 9 | copy old_value in the one place where the copy is needed. | ||
| 10 | * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count. | ||
| 11 | * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed. | ||
| 12 | (union specbinding): Rename from struct specbinding. Redo layout | ||
| 13 | to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;', | ||
| 14 | which is not portable. With Sun C 5.12 32-bit sparc, the | ||
| 15 | declaration causes nargs to be an unsigned bitfield, a behavior | ||
| 16 | that the C standard allows; but Emacs wants nargs to be signed. | ||
| 17 | The overall type is now a union of structures rather than a | ||
| 18 | structure of union of structures, and the 'kind' member is now a | ||
| 19 | bitfield, so that the overall type doesn't grow. All uses changed. | ||
| 20 | * process.c (Fmake_serial_process): Remove unnecessary initialization. | ||
| 21 | |||
| 1 | 2013-06-17 Paul Eggert <eggert@cs.ucla.edu> | 22 | 2013-06-17 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 23 | ||
| 3 | * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t. | 24 | * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t. |