]> git.eshelyaron.com Git - emacs.git/commitdiff
Move GNU_LIBRARY_PENDING_OUTPUT_COUNT from src/s to configure
authorGlenn Morris <rgm@gnu.org>
Wed, 11 Jul 2012 06:52:48 +0000 (23:52 -0700)
committerGlenn Morris <rgm@gnu.org>
Wed, 11 Jul 2012 06:52:48 +0000 (23:52 -0700)
* 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.

ChangeLog
configure.ac
src/ChangeLog
src/s/gnu-linux.h
src/s/gnu.h

index 53259731ebfc9e95aa7d779266b0e1acd1d47881..17690d1d9139c95ee609b9cd7ea0d78678891c33 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index ddb255342572eaa3ec0945d41e0289fe6e7494b6..23ddaa7e9f5e08fc09e9b5ca2bfb9123fdd5aa02 100644 (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; })])
index 64a7989a70f38054d17a14e990d7a316de5bbe11..045a3d374b8da8723e2102f8ba03063f4fd18cde 100644 (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"
index 6f45ee00b782c12d3d05a427a21c473006159370..9f8a994bb7e6dfadabd3f7067412ef0b553926bf 100644 (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).  */
 \f
-/* 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 */
 
index bac233266c87dba98e2561aff6a8d56eafbfef22..9ec75081ca16af097dfe79e2ac1b1c3f1d97538a 100644 (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 */