diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-09-05 23:32:59 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-09-05 23:33:59 -0700 |
commit | 2890b02100598a5e2d1c8d2cc0104fac86e7ddf2 (patch) | |
tree | 8a0bf6a37bc04b3286de978a3c616d9987dd07b5 | |
parent | 8ffefc19a6d30f3979a13fa9d37007aeaca40fdf (diff) | |
download | gnulib-2890b02100598a5e2d1c8d2cc0104fac86e7ddf2.tar.gz |
libc-config: port to MSVC
Problems reported by Gisle Vanem in:
http://lists.gnu.org/archive/html/bug-gnulib/2017-09/msg00016.html
* lib/libc-config.h (__inline): Don't define if HAVE___INLINE.
(libc_hidden_proto): Stick to Standard C syntax for varargs macro.
* m4/__inline.m4: New file.
* modules/libc-config (Files): Add it.
(Depends-on): Use it.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | lib/libc-config.h | 6 | ||||
-rw-r--r-- | m4/__inline.m4 | 22 | ||||
-rw-r--r-- | modules/libc-config | 2 |
4 files changed, 36 insertions, 3 deletions
@@ -1,5 +1,14 @@ 2017-09-05 Paul Eggert <eggert@cs.ucla.edu> + libc-config: port to MSVC + Problems reported by Gisle Vanem in: + http://lists.gnu.org/archive/html/bug-gnulib/2017-09/msg00016.html + * lib/libc-config.h (__inline): Don't define if HAVE___INLINE. + (libc_hidden_proto): Stick to Standard C syntax for varargs macro. + * m4/__inline.m4: New file. + * modules/libc-config (Files): Add it. + (Depends-on): Use it. + glob: Use enum for __glob_pattern_type result From a patch proposed by Adhemerval Zanella in: https://sourceware.org/ml/libc-alpha/2017-09/msg00212.html diff --git a/lib/libc-config.h b/lib/libc-config.h index 2ebb8756e1..93a8db043c 100644 --- a/lib/libc-config.h +++ b/lib/libc-config.h @@ -150,8 +150,8 @@ /* <cdefs.h> __inline is too pessimistic for non-GCC. */ #undef __inline -#ifndef __GNUC__ -# if 199901 <= __STDC_VERSION__ +#ifndef HAVE___INLINE +# if 199901 <= __STDC_VERSION__ || defined inline # define __inline inline # else # define __inline @@ -172,7 +172,7 @@ /* A substitute for glibc <libc-symbols.h>, good enough for Gnulib. */ #define attribute_hidden -#define libc_hidden_proto(name, attrs...) +#define libc_hidden_proto(name, ...) #define libc_hidden_def(name) #define libc_hidden_weak(name) #define libc_hidden_ver(local, name) diff --git a/m4/__inline.m4 b/m4/__inline.m4 new file mode 100644 index 0000000000..95c34a9094 --- /dev/null +++ b/m4/__inline.m4 @@ -0,0 +1,22 @@ +# Test for __inline keyword +dnl Copyright 2017 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl___INLINE], +[ + AC_CACHE_CHECK([whether the compiler supports the __inline keyword], + [gl_cv_c___inline], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[typedef int foo_t; + static __inline foo_t foo (void) { return 0; }]], + [[return foo ();]])], + [gl_cv_c___inline=yes], + [gl_cv_c___inline=no])]) + if test $gl_cv_c___inline = yes; then + AC_DEFINE([HAVE___INLINE], [1], + [Define to 1 if the compiler supports the keyword '__inline'.]) + fi +]) diff --git a/modules/libc-config b/modules/libc-config index 8df46fec90..7706165d20 100644 --- a/modules/libc-config +++ b/modules/libc-config @@ -4,10 +4,12 @@ System definitions for code taken from the GNU C Library Files: lib/cdefs.h lib/libc-config.h +m4/__inline.m4 Depends-on: configure.ac: +gl___INLINE Makefile.am: |