diff options
| author | Paul Eggert | 2012-07-28 16:05:32 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-07-28 16:05:32 -0700 |
| commit | e32a579975bc219bc24d403deeb1fa89187fc51e (patch) | |
| tree | 957a729b7f4eb64980359a57828f02d29e6758e7 /m4 | |
| parent | 01bd1b0df605d644ae31e8f1f81d926a5d8c7099 (diff) | |
| download | emacs-e32a579975bc219bc24d403deeb1fa89187fc51e.tar.gz emacs-e32a579975bc219bc24d403deeb1fa89187fc51e.zip | |
Use Gnulib stdalign and environ modules (Bug#9772, Bug#9960).
* .bzrignore: Add lib/stdalign.h.
* config.bat: Do not set NO_DECL_ALIGN; no longer needed.
Copy lib/stdalign.in.h to lib/stdalign.in-h as needed.
* configure.ac (HAVE_ATTRIBUTE_ALIGNED): Remove the code that
fiddles with this, as gnulib now does this for us.
* admin/merge-gnulib: Add environ, stdalign.
* m4/environ.m4: New file, from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/stdalign.in.h, m4/stdalign.m4: New files, from gnulib.
* sed2v2.inp (HAVE_ATTRIBUTE_ALIGNED): Remove edit.
* sedlibmk.inp (STDALIGN_H, @GL_GENERATE_STDALIGN_H_TRUE@)
(GL_GENERATE_STDALIGN_H_FALSE): New edits.
* nt/config.nt (HAVE_ATTRIBUTE_ALIGNED): Remove.
* src/alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
Simplify by using alignof.
(pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
* src/lisp.h: Include <stdalign.h>.
(GCALIGNMENT): New macro and constant.
(DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
(USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
(stdalign): New macro, if not already defined.
Diffstat (limited to 'm4')
| -rw-r--r-- | m4/environ.m4 | 47 | ||||
| -rw-r--r-- | m4/gnulib-comp.m4 | 4 |
2 files changed, 51 insertions, 0 deletions
diff --git a/m4/environ.m4 b/m4/environ.m4 new file mode 100644 index 00000000000..8eb57c9d999 --- /dev/null +++ b/m4/environ.m4 | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | # environ.m4 serial 6 | ||
| 2 | dnl Copyright (C) 2001-2004, 2006-2012 Free Software Foundation, Inc. | ||
| 3 | dnl This file is free software; the Free Software Foundation | ||
| 4 | dnl gives unlimited permission to copy and/or distribute it, | ||
| 5 | dnl with or without modifications, as long as this notice is preserved. | ||
| 6 | |||
| 7 | AC_DEFUN_ONCE([gl_ENVIRON], | ||
| 8 | [ | ||
| 9 | AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) | ||
| 10 | dnl Persuade glibc <unistd.h> to declare environ. | ||
| 11 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | ||
| 12 | |||
| 13 | AC_CHECK_HEADERS_ONCE([unistd.h]) | ||
| 14 | gt_CHECK_VAR_DECL( | ||
| 15 | [#if HAVE_UNISTD_H | ||
| 16 | #include <unistd.h> | ||
| 17 | #endif | ||
| 18 | /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ | ||
| 19 | #include <stdlib.h> | ||
| 20 | ], | ||
| 21 | [environ]) | ||
| 22 | if test $gt_cv_var_environ_declaration != yes; then | ||
| 23 | HAVE_DECL_ENVIRON=0 | ||
| 24 | fi | ||
| 25 | ]) | ||
| 26 | |||
| 27 | # Check if a variable is properly declared. | ||
| 28 | # gt_CHECK_VAR_DECL(includes,variable) | ||
| 29 | AC_DEFUN([gt_CHECK_VAR_DECL], | ||
| 30 | [ | ||
| 31 | define([gt_cv_var], [gt_cv_var_]$2[_declaration]) | ||
| 32 | AC_MSG_CHECKING([if $2 is properly declared]) | ||
| 33 | AC_CACHE_VAL([gt_cv_var], [ | ||
| 34 | AC_COMPILE_IFELSE( | ||
| 35 | [AC_LANG_PROGRAM( | ||
| 36 | [[$1 | ||
| 37 | extern struct { int foo; } $2;]], | ||
| 38 | [[$2.foo = 1;]])], | ||
| 39 | [gt_cv_var=no], | ||
| 40 | [gt_cv_var=yes])]) | ||
| 41 | AC_MSG_RESULT([$gt_cv_var]) | ||
| 42 | if test $gt_cv_var = yes; then | ||
| 43 | AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, | ||
| 44 | [Define if you have the declaration of $2.]) | ||
| 45 | fi | ||
| 46 | undefine([gt_cv_var]) | ||
| 47 | ]) | ||
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index 754086ec2e7..b0cd185a2b5 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 | |||
| @@ -52,6 +52,7 @@ AC_DEFUN([gl_EARLY], | |||
| 52 | # Code from module dtoastr: | 52 | # Code from module dtoastr: |
| 53 | # Code from module dtotimespec: | 53 | # Code from module dtotimespec: |
| 54 | # Code from module dup2: | 54 | # Code from module dup2: |
| 55 | # Code from module environ: | ||
| 55 | # Code from module extensions: | 56 | # Code from module extensions: |
| 56 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | 57 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) |
| 57 | # Code from module filemode: | 58 | # Code from module filemode: |
| @@ -148,6 +149,8 @@ if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then | |||
| 148 | gl_PREREQ_DUP2 | 149 | gl_PREREQ_DUP2 |
| 149 | fi | 150 | fi |
| 150 | gl_UNISTD_MODULE_INDICATOR([dup2]) | 151 | gl_UNISTD_MODULE_INDICATOR([dup2]) |
| 152 | gl_ENVIRON | ||
| 153 | gl_UNISTD_MODULE_INDICATOR([environ]) | ||
| 151 | gl_FILEMODE | 154 | gl_FILEMODE |
| 152 | gl_GETLOADAVG | 155 | gl_GETLOADAVG |
| 153 | if test $HAVE_GETLOADAVG = 0; then | 156 | if test $HAVE_GETLOADAVG = 0; then |
| @@ -598,6 +601,7 @@ AC_DEFUN([gl_FILE_LIST], [ | |||
| 598 | m4/c-strtod.m4 | 601 | m4/c-strtod.m4 |
| 599 | m4/clock_time.m4 | 602 | m4/clock_time.m4 |
| 600 | m4/dup2.m4 | 603 | m4/dup2.m4 |
| 604 | m4/environ.m4 | ||
| 601 | m4/extensions.m4 | 605 | m4/extensions.m4 |
| 602 | m4/filemode.m4 | 606 | m4/filemode.m4 |
| 603 | m4/getloadavg.m4 | 607 | m4/getloadavg.m4 |