Move GNU_LIBRARY_PENDING_OUTPUT_COUNT from src/s to configure

* configure.ac (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Move here from src/s.

* src/s/gnu.h, src/s/gnu-linux.h:
Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
This commit is contained in:
Glenn Morris 2012-07-10 23:52:48 -07:00
parent b41253a389
commit c8add24e86
5 changed files with 72 additions and 36 deletions

View file

@ -1,3 +1,8 @@
2012-07-11 Glenn Morris <rgm@gnu.org>
* configure.ac (GNU_LIBRARY_PENDING_OUTPUT_COUNT):
Move here from src/s.
2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
Assume rename, strerror.

View file

@ -3163,19 +3163,14 @@ dnl Used in sound.c
AC_DEFINE_UNQUOTED(DEFAULT_SOUND_DEVICE, "$sound_device",
[Name of the default sound device.])
dnl Used in vm-limit.c
AH_TEMPLATE(DATA_START, [Address of the start of the data segment.])
dnl Used in lisp.h, emacs.c, mem-limits.h
dnl NEWS.18 describes this as "a number which contains
dnl the high bits to be inclusive or'ed with pointers that are unpacked."
AH_TEMPLATE(DATA_SEG_BITS, [Extra bits to be or'd in with any pointers
stored in a Lisp_Object.])
dnl if Emacs uses fewer than 32 bits for the value field of a LISP_OBJECT.
dnl Used in dispnew.c
AH_TEMPLATE(PENDING_OUTPUT_COUNT, [Number of chars of output in the
buffer of a stdio stream.])
dnl FIXME just PENDING_OUTPUT_COUNT should suffice.
AH_TEMPLATE(GNU_LIBRARY_PENDING_OUTPUT_COUNT, [Value of
PENDING_OUTPUT_COUNT if using the GNU C library.])
case $opsys in
cygwin | darwin | freebsd | netbsd | openbsd )
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->_p - (FILE)->_bf._base)])
@ -3185,6 +3180,63 @@ case $opsys in
AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->__ptr - (FILE)->__base)])
;;
gnu | gnu-linux | gnu-kfreebsd )
AC_MSG_CHECKING([for style of pending output formalism])
dnl In autoconf 2.67 (?) and later, we could use a single test
dnl since the preprocessed output is accessible in "conftest.i".
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
#include <stdio.h>
#if !defined (_IO_STDIO_H) && !defined (_STDIO_USES_IOSTREAM)
# error "stdio definitions not found"
#endif
]], [[]])], emacs_pending_output=new, emacs_pending_output=unknown)
if test $emacs_pending_output = unknown; then
case $opsys in
gnu-linux | gnu-kfreebsd)
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
#include <stdio.h>
#ifndef __UCLIBC__
# error "not using uclibc"
#endif
]], [[]])], emacs_pending_output=uclibc, emacs_pending_output=old)
;;
esac
fi
AC_MSG_RESULT([$emacs_pending_output])
case $emacs_pending_output in
new)
dnl New C libio names.
AC_DEFINE(GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE),
[((FILE)->_IO_write_ptr - (FILE)->_IO_write_base)])
;;
uclibc)
dnl Using the uClibc library.
AC_DEFINE(GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE),
[((FILE)->__bufpos - (FILE)->__bufstart)])
;;
old)
dnl Old C++ iostream names.
AC_DEFINE(GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE),
[((FILE)->_pptr - (FILE)->_pbase)])
;;
esac
;;
esac
dnl Used in vm-limit.c
AH_TEMPLATE(DATA_START, [Address of the start of the data segment.])
dnl Used in lisp.h, emacs.c, mem-limits.h
dnl NEWS.18 describes this as "a number which contains
dnl the high bits to be inclusive or'ed with pointers that are unpacked."
AH_TEMPLATE(DATA_SEG_BITS, [Extra bits to be or'd in with any pointers
stored in a Lisp_Object.])
dnl if Emacs uses fewer than 32 bits for the value field of a LISP_OBJECT.
case $opsys in
gnu)
dnl libc defines data_start.
AC_DEFINE(DATA_START, [({ extern int data_start; (char *) &data_start; })])

View file

@ -1,3 +1,8 @@
2012-07-11 Glenn Morris <rgm@gnu.org>
* s/gnu.h, s/gnu-linux.h:
Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
2012-07-11 John Wiegley <johnw@newartisans.com>
* alloc.c (mark_memory): Guard the "no_address_safety_analysis"

View file

@ -92,25 +92,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
your system and must be used only through an encapsulation
(Which you should place, by convention, in sysdep.c). */
/* This is needed for dispnew.c:update_frame. */
#ifdef emacs
#include <stdio.h> /* Get the definition of _IO_STDIO_H. */
#if defined (_IO_STDIO_H) || defined (_STDIO_USES_IOSTREAM)
/* New C libio names. */
#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \
((FILE)->_IO_write_ptr - (FILE)->_IO_write_base)
#elif defined (__UCLIBC__)
/* Using the uClibc library. */
#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \
((FILE)->__bufpos - (FILE)->__bufstart)
#else /* !_IO_STDIO_H && ! __UCLIBC__ */
/* Old C++ iostream names. */
#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \
((FILE)->_pptr - (FILE)->_pbase)
#endif /* !_IO_STDIO_H && ! __UCLIBC__ */
#define INTERRUPT_INPUT
#endif /* emacs */
#endif
#define POSIX /* affects getpagesize.h and systty.h */

View file

@ -20,13 +20,3 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Get most of the stuff from bsd-common */
#include "bsd-common.h"
/* It would be harmless to drop the ifdef emacs test. */
#ifdef emacs
#include <stdio.h> /* Get the definition of _IO_STDIO_H. */
#if defined (_IO_STDIO_H) || defined (_STDIO_USES_IOSTREAM)
/* new C libio names */
#define GNU_LIBRARY_PENDING_OUTPUT_COUNT(FILE) \
((FILE)->_IO_write_ptr - (FILE)->_IO_write_base)
#endif /* !_IO_STDIO_H */
#endif /* emacs */