GNU bug report logs -
#29600
Emacs port to gcc -fcheck-pointer-bounds
Previous Next
Reported by: Paul Eggert <eggert <at> cs.ucla.edu>
Date: Thu, 7 Dec 2017 07:20:02 UTC
Severity: normal
Tags: patch
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Attached is a series of three patches to port Emacs to 'gcc
-fcheck-pointer-bounds'. This feature enables hardware bounds checking for some
internal pointers of the Emacs interpreter, and I've used it to find a bug in
Emacs itself. It's intended primarily for debugging Emacs internals, and is off
by default. I would like to install these patches soon unless some problems turn
up, and am submitting this as a bug report in case others who care about Emacs
low-level internals would like to review the patches.
The first patch changes the basic Emacs internal type from an integer to a
pointer of the same width. Although this doesn't significantly affect ordinary
builds it's essential for -fcheck-pointer-type, where the C compiler must be
told the location of every pointer (including tagged pointers) for the checking
to work well. (No doubt I'm partial, but I think this patch also cleans up Emacs
internals a bit even for typical platforms.) The patch should not change the
behavior of the Emacs interpreter; it's mostly just treating some intptr_t
values as pointer values instead.
The second patch builds on the first to fix Emacs so that it doesn't crash when
-fcheck-pointer-bounds is used.
The third patch enables more pointer bounds checking. Not every pointer access
is checked, just the ones for which -fcheck-pointer-bounds is easy. Although
this doesn't catch every pointer-bounds error, it does catch some of them.
Perhaps more checking could be added later.
[0001-Reimplement-Lisp_Object-as-pointer-to-incomplete.patch (text/x-patch, attachment)]
[0002-Port-to-gcc-fcheck-pointer-bounds.patch (text/x-patch, attachment)]
[0003-Narrow-pointer-bounds-when-appropriate.patch (text/x-patch, attachment)]
This bug report was last modified 7 years and 162 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.