Mercurial > hg > octave-kai > gnulib-hg
changeset 8167:633acfbd4fa8
Use GL_LINK_WARNING in the generated inttypes.h.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 18 Feb 2007 02:02:26 +0000 |
parents | 841795ba6446 |
children | e3096ed66afc |
files | ChangeLog lib/inttypes_.h modules/imaxabs modules/imaxdiv modules/inttypes modules/strtoimax modules/strtoumax |
diffstat | 7 files changed, 64 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2007-02-17 Bruno Haible <bruno@clisp.org> + + * lib/inttypes_.h: Add definition for GL_LINK_WARNING. + (imaxabs, imaxdiv, strtoimax, strtoumax): Don't declare the function + if the corresponding module is not enabled. Emit link warnings if + the function is used nevertheless. + * m4/inttypes_h.m4 (gl_INTTYPES_H): Never use the existing <inttypes.h>. + Don't AC_SUBST HAVE_DECL_IMAXABS, HAVE_DECL_IMAXDIV, + HAVE_DECL_STRTOIMAX, HAVE_DECL_STRTOUMAX. + (gl_INTTYPES_MODULE_INDICATOR, gl_INTTYPES_H_DEFAULTS): New macros. + * modules/inttypes (Depends-on): Add link-warning. + (Makefile.am): Copy the contents of build-aux/link-warning.h into + inttypes.h. + * modules/imaxabs (configure.ac): Invoke gl_INTTYPES_MODULE_INDICATOR. + * modules/imaxdiv (configure.ac): Likewise. + * modules/strtoimax (configure.ac): Likewise. + * modules/strtoumax (configure.ac): Likewise. + 2007-02-17 Bruno Haible <bruno@clisp.org> * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Include the contents of
--- a/lib/inttypes_.h +++ b/lib/inttypes_.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 Free Software Foundation, Inc. +/* Copyright (C) 2006-2007 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Derek Price. This file is part of gnulib. @@ -42,6 +42,8 @@ # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>." #endif +/* The definition of GL_LINK_WARNING is copied here. */ + /* 7.8.1 Macros for format specifiers */ #if ! defined __cplusplus || defined __STDC_FORMAT_MACROS @@ -1034,20 +1036,53 @@ extern "C" { #endif -#if !@HAVE_DECL_IMAXABS@ +#if @GNULIB_IMAXABS@ +# if !@HAVE_DECL_IMAXABS@ extern intmax_t imaxabs (intmax_t); +# endif +#elif defined GNULIB_POSIXCHECK +# undef imaxabs +# define imaxabs(a) \ + (GL_LINK_WARNING ("imaxabs is unportable - "\ + "use gnulib module imaxabs for portability"), \ + imaxabs (a)) #endif -#if !@HAVE_DECL_IMAXDIV@ +#if @GNULIB_IMAXDIV@ +# if !@HAVE_DECL_IMAXDIV@ typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; extern imaxdiv_t imaxdiv (intmax_t, intmax_t); +# endif +#elif defined GNULIB_POSIXCHECK +# undef imaxdiv +# define imaxdiv(a,b) \ + (GL_LINK_WARNING ("imaxdiv is unportable - "\ + "use gnulib module imaxdiv for portability"), \ + imaxdiv (a, b)) #endif -#if !@HAVE_DECL_STRTOIMAX@ +#if @GNULIB_STRTOIMAX@ +# if !@HAVE_DECL_STRTOIMAX@ extern intmax_t strtoimax (const char *, char **, int); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strtoimax +# define strtoimax(p,e,b) \ + (GL_LINK_WARNING ("strtoimax is unportable - "\ + "use gnulib module strtoimax for portability"), \ + strtoimax (p, e, b)) #endif -#if !@HAVE_DECL_STRTOUMAX@ + +#if @GNULIB_STRTOUMAX@ +# if !@HAVE_DECL_STRTOUMAX@ extern uintmax_t strtoumax (const char *, char **, int); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strtoumax +# define strtoumax(p,e,b) \ + (GL_LINK_WARNING ("strtoumax is unportable - "\ + "use gnulib module strtoumax for portability"), \ + strtoumax (p, e, b)) #endif /* Don't bother defining or declaring wcstoimax and wcstoumax, since
--- a/modules/imaxabs +++ b/modules/imaxabs @@ -10,6 +10,7 @@ configure.ac: gl_FUNC_IMAXABS +gl_INTTYPES_MODULE_INDICATOR([imaxabs]) Makefile.am:
--- a/modules/imaxdiv +++ b/modules/imaxdiv @@ -10,6 +10,7 @@ configure.ac: gl_FUNC_IMAXDIV +gl_INTTYPES_MODULE_INDICATOR([imaxdiv]) Makefile.am:
--- a/modules/inttypes +++ b/modules/inttypes @@ -8,6 +8,7 @@ Depends-on: absolute-header +link-warning stdint configure.ac: @@ -31,6 +32,7 @@ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ + -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ < $(srcdir)/inttypes_.h; \ } > $@-t mv $@-t $@