emacs-devel
[Top][All Lists]
Advanced

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

Re: USE_LSB_TAG not supported on this platform


From: Herbert J. Skuhra
Subject: Re: USE_LSB_TAG not supported on this platform
Date: Sun, 07 Feb 2016 17:52:43 +0100
User-agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/25.1 Mule/6.0 (HANACHIRUSATO)

On Sat, 06 Feb 2016 21:34:40 +0100, Paul Eggert wrote:
> 
> Herbert J. Skuhra wrote:
> > INTPTR_MAX=0x7fffffff
> > EMACS_INT_MAX=0x7fffffffffffffffLL
> > 
> > Before the commit mentioned above both are 0x7fffffff.
> 
> Commit d6585a910ed3e9e0e43c093b5fbfeb6d56b703b4 should not have
> affected EMACS_INT_MAX, and I don't see how it did.

Before this commit I get:

(EMACS_INT_MAX=0x7fffffff, INTPTR_MAX=0x7fffffff, NONPOINTER_BITS=0)

After this commit:

(EMACS_INT_MAX=0x7fffffffffffffffLL, INTPTR_MAX=0x7fffffff, NONPOINTER_BITS=3)

I can fix the build by:

--- a/configure.ac
+++ b/configure.ac
@@ -2123,7 +2123,7 @@ esac

 if test "${system_malloc}" != yes && test "${doug_lea_malloc}" != yes \
    && test "${UNEXEC_OBJ}" = unexelf.o && test "${hybrid_malloc}" != no; then
-  hybrid_malloc=yes
+  hybrid_malloc=no
 fi

(EMACS_INT_MAX=0x7fffffff, INTPTR_MAX=0x7fffffff, NONPOINTER_BITS=0)

This does not work on later master checkouts.

> I assume you are not configuring with --with-wide-int, so the reason
> EMACS_INT_MAX has that large value is due to the following tests in
> src/lisp.h:

Enabling "--with-wide-int" does indeed fix the build.

(EMACS_INT_MAX=0x7fffffffffffffffLL, INTPTR_MAX=0x7fffffff, NONPOINTER_BITS=3)

> Is the value of NONPOINTER_BITS 0 on your platform, or 3?  If 0, is
> this correct? That is, does malloc ever return a pointer that, when
> treated as an integer, is not a multiple of 8? If malloc always
> returns a multiple of 8, then we should be able to work around the
> problem by setting NONPOINTER_BITS to 0 on your platform.

How can I tell?

Without "--with-wide-int" I also get

EMACS_INT_MAX=0x7fffffffffffffffLL, INTPTR_MAX=0x7fffffff, NONPOINTER_BITS=3

To be able to build master without "--with-wide-int" I have to apply:

@@ -73,7 +76,7 @@ DEFINE_GDB_SYMBOL_END (GCTYPEBITS)
    2.  We know malloc returns a multiple of 8.  */
 #if (defined alignas \
      && (defined GNU_MALLOC || defined DOUG_LEA_MALLOC || defined __GLIBC__ \
-        || defined DARWIN_OS || defined __sun || defined __MINGW32__ \
+        || defined __FreeBSD__ || defined DARWIN_OS || defined __sun || 
defined __MINGW32__ \
         || defined CYGWIN))
 # define NONPOINTER_BITS 0
 #else

(EMACS_INT_MAX=0x7fffffff, INTPTR_MAX=0x7fffffff, NONPOINTER_BITS=0)

--
Herbert



reply via email to

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