emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-24 r116961: Port to IRIX 6.5.


From: Paul Eggert
Subject: [Emacs-diffs] emacs-24 r116961: Port to IRIX 6.5.
Date: Sun, 13 Apr 2014 22:51:15 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116961
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/9684
committer: Paul Eggert <address@hidden>
branch nick: emacs-24
timestamp: Sun 2014-04-13 15:51:08 -0700
message:
  Port to IRIX 6.5.
  
  This port requires IRIX cc, as I did not have time to get
  undump working with the old GCC on the system I had access to,
  but that's better than nothing.
  * configure.ac (gl_GCC_VERSION_IFELSE): Remove unused macro
  that wouldn't have worked anyway, with IRIX cc.
  (emacs_cv_clang, emacs_cv_sanitize_address)
  (ns_osx_have_104, ns_osx_have_105):
  Don't assume '#error' makes the compiler fail,
  as this doesn't work with IRIX cc.
  (CFLAGS, LIBS): Don't let the GnuTLS results infect later 'configure'
  checks.  This runs afoul of an IRIX configuration where GnuTLS is
  in an optional library that also contains getdelim, and causes
  a later 'configure' to incorrectly think getdelim is supported.
  * src/alloc.c (TAGGABLE_NULL): New constant,
  for porting to hosts with nontrivial DATA_SEG_BITS settings.
  (next_vector, set_next_vector): Use it.
  * src/conf_post.h (INET6) [IRIX6_5]: Define.
  (HAVE_GETADDRINFO) [IRIX6_5]: Undef.
  * src/data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
  * src/lisp.h (lisp_h_XPNTR): Don't OR in bits that aren't masked out,
  for consistency with how TAGGABLE_NULL is computed.
modified:
  ChangeLog                      changelog-20091113204419-o5vbwnq5f7feedwu-1538
  configure.ac                   
configure.in-20091113204419-o5vbwnq5f7feedwu-783
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/alloc.c                    alloc.c-20091113204419-o5vbwnq5f7feedwu-252
  src/conf_post.h                conf_post.h-20120730211826-q0qbxxwh2emw52hd-1
  src/data.c                     data.c-20091113204419-o5vbwnq5f7feedwu-251
  src/lisp.h                     lisp.h-20091113204419-o5vbwnq5f7feedwu-253
=== modified file 'ChangeLog'
--- a/ChangeLog 2014-04-13 06:44:22 +0000
+++ b/ChangeLog 2014-04-13 22:51:08 +0000
@@ -1,3 +1,20 @@
+2014-04-13  Paul Eggert  <address@hidden>
+
+       Port to IRIX 6.5 (Bug#9684).
+       This port requires IRIX cc, as I did not have time to get
+       undump working with the old GCC on the system I had access to,
+       but that's better than nothing.
+       * configure.ac (gl_GCC_VERSION_IFELSE): Remove unused macro
+       that wouldn't have worked anyway, with IRIX cc.
+       (emacs_cv_clang, emacs_cv_sanitize_address)
+       (ns_osx_have_104, ns_osx_have_105):
+       Don't assume '#error' makes the compiler fail,
+       as this doesn't work with IRIX cc.
+       (CFLAGS, LIBS): Don't let the GnuTLS results infect later 'configure'
+       checks.  This runs afoul of an IRIX configuration where GnuTLS is
+       in an optional library that also contains getdelim, and causes
+       a later 'configure' to incorrectly think getdelim is supported.
+
 2014-04-13  Eli Zaretskii  <address@hidden>
 
        * configure.ac (LN_S_FILEONLY, LN_S): Use "/bin/ln" on MinGW, to

=== modified file 'configure.ac'
--- a/configure.ac      2014-04-13 06:46:10 +0000
+++ b/configure.ac      2014-04-13 22:51:08 +0000
@@ -779,30 +779,12 @@
    fi
 fi)
 
-# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
-# ------------------------------------------------
-# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
-# Otherwise, run RUN-IF-NOT-FOUND.
-AC_DEFUN([gl_GCC_VERSION_IFELSE],
-  [AC_PREPROC_IFELSE(
-    [AC_LANG_PROGRAM(
-      [[
-#if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__)
-/* ok */
-#else
-# error "your version of gcc is older than $1.$2"
-#endif
-      ]]),
-    ], [$3], [$4])
-  ]
-)
-
 # clang is unduly picky about some things.
 AC_CACHE_CHECK([whether the compiler is clang], [emacs_cv_clang],
   [AC_COMPILE_IFELSE(
      [AC_LANG_PROGRAM([[
          #ifndef __clang__
-           #error "not clang"
+           error "not clang";
          #endif
         ]])],
      [emacs_cv_clang=yes],
@@ -1114,7 +1096,7 @@
          #endif
          #if defined __SANITIZE_ADDRESS__ || __has_feature (address_sanitizer)
          #else
-          #error "Addresses are not sanitized."
+          error "Addresses are not sanitized.";
          #endif
        ]])],
      [emacs_cv_sanitize_address=yes],
@@ -1712,7 +1694,7 @@
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
  ; /* OK */
 #else
-#error "OSX 10.4 or newer required"
+ error "OSX 10.4 or newer required";
 #endif
 #endif
                    ])],
@@ -1730,7 +1712,7 @@
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
  ; /* OK */
 #else
-#error "OSX 10.5 not found"
+ error "OSX 10.5 not found";
 #endif
 #endif
                    ])],
@@ -2529,9 +2511,6 @@
   # Windows loads GnuTLS dynamically
   if test "${opsys}" = "mingw32"; then
     LIBGNUTLS_LIBS=
-  else
-    CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
-    LIBS="$LIBGNUTLS_LIBS $LIBS"
   fi
 fi
 

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-04-13 10:45:46 +0000
+++ b/src/ChangeLog     2014-04-13 22:51:08 +0000
@@ -1,3 +1,15 @@
+2014-04-13  Paul Eggert  <address@hidden>
+
+       Port to IRIX 6.5 (Bug#9684).
+       * alloc.c (TAGGABLE_NULL): New constant,
+       for porting to hosts with nontrivial DATA_SEG_BITS settings.
+       (next_vector, set_next_vector): Use it.
+       * conf_post.h (INET6) [IRIX6_5]: Define.
+       (HAVE_GETADDRINFO) [IRIX6_5]: Undef.
+       * data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
+       * lisp.h (lisp_h_XPNTR): Don't OR in bits that aren't masked out,
+       for consistency with how TAGGABLE_NULL is computed.
+
 2014-04-13  Eli Zaretskii  <address@hidden>
 
        * keyboard.c (Fopen_dribble_file): Encode the dribble file-name

=== modified file 'src/alloc.c'
--- a/src/alloc.c       2014-04-07 16:08:46 +0000
+++ b/src/alloc.c       2014-04-13 22:51:08 +0000
@@ -2647,18 +2647,24 @@
  ***********************************************************************/
 
 /* Sometimes a vector's contents are merely a pointer internally used
-   in vector allocation code.  Usually you don't want to touch this.  */
+   in vector allocation code.  On the rare platforms where a null
+   pointer cannot be tagged, represent it with a Lisp 0.
+   Usually you don't want to touch this.  */
+
+enum { TAGGABLE_NULL = (DATA_SEG_BITS & ~VALMASK) == 0 };
 
 static struct Lisp_Vector *
 next_vector (struct Lisp_Vector *v)
 {
+  if (! TAGGABLE_NULL && EQ (v->contents[0], make_number (0)))
+    return 0;
   return XUNTAG (v->contents[0], 0);
 }
 
 static void
 set_next_vector (struct Lisp_Vector *v, struct Lisp_Vector *p)
 {
-  v->contents[0] = make_lisp_ptr (p, 0);
+  v->contents[0] = TAGGABLE_NULL || p ? make_lisp_ptr (p, 0) : make_number (0);
 }
 
 /* This value is balanced well enough to avoid too much internal overhead

=== modified file 'src/conf_post.h'
--- a/src/conf_post.h   2014-03-28 16:32:54 +0000
+++ b/src/conf_post.h   2014-04-13 22:51:08 +0000
@@ -99,7 +99,8 @@
 #ifdef emacs
 char *_getpty();
 #endif
-
+#define INET6 /* Needed for struct sockaddr_in6.  */
+#undef HAVE_GETADDRINFO /* IRIX has getaddrinfo but not struct addrinfo.  */
 #endif /* IRIX6_5 */
 
 #ifdef MSDOS

=== modified file 'src/data.c'
--- a/src/data.c        2014-02-20 07:38:47 +0000
+++ b/src/data.c        2014-04-13 22:51:08 +0000
@@ -2982,7 +2982,7 @@
 /* Info about unsigned long long, falling back on unsigned long
    if unsigned long long is not available.  */
 
-#if HAVE_UNSIGNED_LONG_LONG_INT
+#if HAVE_UNSIGNED_LONG_LONG_INT && defined ULLONG_MAX
 enum { BITS_PER_ULL = CHAR_BIT * sizeof (unsigned long long) };
 # define ULL_MAX ULLONG_MAX
 #else

=== modified file 'src/lisp.h'
--- a/src/lisp.h        2014-04-07 16:08:46 +0000
+++ b/src/lisp.h        2014-04-13 22:51:08 +0000
@@ -344,7 +344,7 @@
    (eassert (CONSP (a)), (struct Lisp_Cons *) XUNTAG (a, Lisp_Cons))
 #define lisp_h_XHASH(a) XUINT (a)
 #define lisp_h_XPNTR(a) \
-   ((void *) (intptr_t) ((XLI (a) & VALMASK) | DATA_SEG_BITS))
+   ((void *) (intptr_t) ((XLI (a) & VALMASK) | (DATA_SEG_BITS & ~VALMASK)))
 #define lisp_h_XSYMBOL(a) \
    (eassert (SYMBOLP (a)), (struct Lisp_Symbol *) XUNTAG (a, Lisp_Symbol))
 #ifndef GC_CHECK_CONS_LIST


reply via email to

[Prev in Thread] Current Thread [Next in Thread]