diff options
| author | Paul Eggert | 2014-08-04 11:44:49 -0700 |
|---|---|---|
| committer | Paul Eggert | 2014-08-04 11:44:49 -0700 |
| commit | c7d117f39e26bb14a300f8ebdbc4c7023fad719b (patch) | |
| tree | aea88f48237cfd443aeb9280d30a1a85993211c2 | |
| parent | 4a75c94d14f7a3c50014d1cc12ee519eb955c1ed (diff) | |
| download | emacs-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-- | ChangeLog | 7 | ||||
| -rw-r--r-- | lib/gnulib.mk | 2 | ||||
| -rw-r--r-- | m4/extern-inline.m4 | 31 |
3 files changed, 31 insertions, 9 deletions
| @@ -1,3 +1,10 @@ | |||
| 1 | 2014-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 | |||
| 1 | 2014-08-02 Paul Eggert <eggert@cs.ucla.edu> | 8 | 2014-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 | ||
| 27 | MOSTLYCLEANFILES += core *.stackdump | 27 | MOSTLYCLEANFILES += 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__)) |