aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2014-08-04 11:44:49 -0700
committerPaul Eggert2014-08-04 11:44:49 -0700
commitc7d117f39e26bb14a300f8ebdbc4c7023fad719b (patch)
treeaea88f48237cfd443aeb9280d30a1a85993211c2
parent4a75c94d14f7a3c50014d1cc12ee519eb955c1ed (diff)
downloademacs-c7d117f39e26bb14a300f8ebdbc4c7023fad719b.tar.gz
emacs-c7d117f39e26bb14a300f8ebdbc4c7023fad719b.zip
Merge from gnulib, incorporating:
2014-08-04 extern-inline: port to FreeBSD, DragonFly * lib/gnulib.mk: Regenerate (comment change only). * m4/extern-inline.m4: Update from gnulib.
-rw-r--r--ChangeLog7
-rw-r--r--lib/gnulib.mk2
-rw-r--r--m4/extern-inline.m431
3 files changed, 31 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 0fc361060fb..69945b96c23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
12014-08-04 Paul Eggert <eggert@cs.ucla.edu>
2
3 Merge from gnulib, incorporating:
4 2014-08-04 extern-inline: port to FreeBSD, DragonFly
5 * lib/gnulib.mk: Regenerate (comment change only).
6 * m4/extern-inline.m4: Update from gnulib.
7
12014-08-02 Paul Eggert <eggert@cs.ucla.edu> 82014-08-02 Paul Eggert <eggert@cs.ucla.edu>
2 9
3 * configure.ac (HAVE_TIMERFD): Also check for TFD_NONBLOCK, 10 * configure.ac (HAVE_TIMERFD): Also check for TFD_NONBLOCK,
diff --git a/lib/gnulib.mk b/lib/gnulib.mk
index 231b38dbf03..9e9b9ebd6de 100644
--- a/lib/gnulib.mk
+++ b/lib/gnulib.mk
@@ -21,7 +21,7 @@
21# the same distribution terms as the rest of that program. 21# the same distribution terms as the rest of that program.
22# 22#
23# Generated by gnulib-tool. 23# Generated by gnulib-tool.
24# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=stdarg --avoid=stdbool --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt byteswap c-ctype c-strcase careadlinkat close-stream count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv update-copyright utimens warnings 24# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=stdarg --avoid=stdbool --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt binary-io byteswap c-ctype c-strcase careadlinkat close-stream count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv update-copyright utimens warnings
25 25
26 26
27MOSTLYCLEANFILES += core *.stackdump 27MOSTLYCLEANFILES += core *.stackdump
diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4
index 240150efbc7..7f1bb397c4f 100644
--- a/m4/extern-inline.m4
+++ b/m4/extern-inline.m4
@@ -19,13 +19,28 @@ AC_DEFUN([gl_EXTERN_INLINE],
19 'reference to static identifier "f" in extern inline function'. 19 'reference to static identifier "f" in extern inline function'.
20 This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. 20 This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
21 21
22 Suppress the use of extern inline on problematic Apple configurations. 22 Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
23 OS X 10.8 and earlier mishandle it; see, e.g., 23 on configurations that mistakenly use 'static inline' to implement
24 <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>. 24 functions or macros in standard C headers like <ctype.h>. For example,
25 if isdigit is mistakenly implemented via a static inline function,
26 a program containing an extern inline function that calls isdigit
27 may not work since the C standard prohibits extern inline functions
28 from calling static functions. This bug is known to occur on:
29
30 OS X 10.8 and earlier; see:
31 http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
32
33 DragonFly; see
34 http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
35
36 FreeBSD; see:
37 http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
38
25 OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and 39 OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
26 for clang but remains for g++; see <http://trac.macports.org/ticket/41033>. 40 for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
27 Perhaps Apple will fix this some day. */ 41 Assume DragonFly and FreeBSD will be similar. */
28#if (defined __APPLE__ \ 42#if (((defined __APPLE__ && defined __MACH__) \
43 || defined __DragonFly__ || defined __FreeBSD__) \
29 && (defined __header_inline \ 44 && (defined __header_inline \
30 ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ 45 ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
31 && ! defined __clang__) \ 46 && ! defined __clang__) \
@@ -33,19 +48,19 @@ AC_DEFUN([gl_EXTERN_INLINE],
33 && (defined __GNUC__ || defined __cplusplus)) \ 48 && (defined __GNUC__ || defined __cplusplus)) \
34 || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ 49 || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
35 && defined __GNUC__ && ! defined __cplusplus)))) 50 && defined __GNUC__ && ! defined __cplusplus))))
36# define _GL_EXTERN_INLINE_APPLE_BUG 51# define _GL_EXTERN_INLINE_STDHEADER_BUG
37#endif 52#endif
38#if ((__GNUC__ \ 53#if ((__GNUC__ \
39 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ 54 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
40 : (199901L <= __STDC_VERSION__ \ 55 : (199901L <= __STDC_VERSION__ \
41 && !defined __HP_cc \ 56 && !defined __HP_cc \
42 && !(defined __SUNPRO_C && __STDC__))) \ 57 && !(defined __SUNPRO_C && __STDC__))) \
43 && !defined _GL_EXTERN_INLINE_APPLE_BUG) 58 && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
44# define _GL_INLINE inline 59# define _GL_INLINE inline
45# define _GL_EXTERN_INLINE extern inline 60# define _GL_EXTERN_INLINE extern inline
46# define _GL_EXTERN_INLINE_IN_USE 61# define _GL_EXTERN_INLINE_IN_USE
47#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ 62#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
48 && !defined _GL_EXTERN_INLINE_APPLE_BUG) 63 && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
49# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ 64# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
50 /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ 65 /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */
51# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) 66# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))