From: Paul Eggert Date: Wed, 6 Sep 2017 06:32:59 +0000 (-0700) Subject: libc-config: port to MSVC X-Git-Tag: v1.0~5956 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2890b02100598a5e2d1c8d2cc0104fac86e7ddf2;p=thirdparty%2Fgnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index 448bad2c19..63eb16db07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2017-09-05 Paul Eggert + 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 @@ /* __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 , 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: