]> Savannah Git Hosting - gnulib.git/commitdiff
libc-config: port to MSVC
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 6 Sep 2017 06:32:59 +0000 (23:32 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 6 Sep 2017 06:33:59 +0000 (23:33 -0700)
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.

ChangeLog
lib/libc-config.h
m4/__inline.m4 [new file with mode: 0644]
modules/libc-config

index 448bad2c19823b68509bdfb320552846bb908cf3..63eb16db07a1fb58367726dc75f2c2c78e70317c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 2ebb8756e19e81514c9666c783f2329151c5ca99..93a8db043cf3014cb56f7c6b2142fe7e27a932ed 100644 (file)
 
 /* <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
 
 /* 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 (file)
index 0000000..95c34a9
--- /dev/null
@@ -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
+])
index 8df46fec90692ccaa6ade4df3573b6e21f13c98a..7706165d202930bda2cc4c9688f665f02ecbf30b 100644 (file)
@@ -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: