tech-pkg archive

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

Re: editors/xemacs/patches/patch-src_lisp.h v1.3 breaks XEmacs



On Tue, Mar 29, 2016 at 03:24:49PM +0200, Hauke Fath wrote:
> On Tue, 29 Mar 2016 14:33:05 +0200, Joerg Sonnenberger wrote:
> > I have no idea where that define comes from, the patch only stops
> > defining max_align_t unconditionally.
> 
> --- patch-src_lisp.h    4 Feb 2015 09:19:20 -0000       1.2
> +++ patch-src_lisp.h    26 Mar 2016 23:26:14 -0000      1.3
> @@ -1,16 +1,20 @@
> -$NetBSD: patch-src_lisp.h,v 1.2 2015/02/04 09:19:20 hauke Exp $
> +$NetBSD: patch-src_lisp.h,v 1.3 2016/03/26 23:26:14 joerg Exp $
>  
> ---- src/lisp.h.orig    2015-01-29 15:04:29.000000000 +0000
> +--- src/lisp.h.orig    2016-03-26 15:03:47.482901440 +0000
>  +++ src/lisp.h
> -@@ -265,6 +265,11 @@ void assert_failed (const char *, int, c
> - /*#define REGISTER register*/
> - /*#endif*/
> +@@ -195,6 +195,7 @@ void xfree (void *);
>   
> -+#if SIZEOF_LONG == 8
> -+#define UINT_64_BIT unsigned long
> -+#elif SIZEOF_LONG_LONG == 8
> -+#define UINT_64_BIT unsigned long long
> + /* No type has a greater alignment requirement than max_align_t.
> +    (except perhaps for types we don't use, like long double) */
> ++#if (__STDC_VERSION__ - 0) < 201112L && (__cplusplus - 0) < 201103L
> + typedef union
> + {
> +   struct { long l; } l;
> +@@ -202,6 +203,7 @@ typedef union
> +   struct { void (*f)(void); } f;
> +   struct { double d; } d;
> + } max_align_t;
>  +#endif
>   
> - /* EMACS_INT is the underlying integral type into which a Lisp_Object 
> must fit.
> -    In particular, it must be large enough to contain a pointer.
> + #ifndef ALIGNOF
> + # if defined (__GNUC__) && (__GNUC__ >= 2)
> 
> removes UINT_64_BIT, no?

Hm. No idea why that didn't give a merge fault. I simply missed the new
line completely. That said, the define is wrong. It should just use
#define UINT_64_BIT uint64_t without any conditionals.

Joerg


Home | Main Index | Thread Index | Old Index