view build-aux/link-warning.h @ 12909:86f1ff71881a

utime: remove obsolete module This module, like autoconf's AC_FUNC_UTIME_NULL macro, has been unnecessary for years, and has been marked as obsolete for 10 months. * modules/utime: Remove file. * lib/utime.c: Remove file. * m4/utime.m4: Remove file. * m4/utimes-null.m4: Remove file. * doc/posix-functions/utime.texi (utime): Remove reference to the module. Move the sole "fixed by gnulib" item into the "problems not fixed by Gnulib" list. * MODULES.html.sh (func_all_modules): Remove reference to "utime".
author Jim Meyering <meyering@redhat.com>
date Thu, 04 Mar 2010 15:36:51 +0100
parents c2cbabec01dd
children 87a95303747f
line wrap: on
line source

/* A C macro for emitting link time warnings.
   Copyright (C) 1995, 1997, 2000, 2002-2003, 2007, 2009-2010 Free Software
   Foundation, Inc.

   This program is free software: you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published
   by the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* GL_LINK_WARNING("literal string") arranges to emit the literal string as
   a linker warning on most glibc systems.
   We use a linker warning rather than a preprocessor warning, because
   #warning cannot be used inside macros.  */
#ifndef GL_LINK_WARNING
  /* This works on platforms with GNU ld and ELF object format.
     Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
     Testing __ELF__ guarantees the ELF object format.
     Testing __GNUC__ is necessary for the compound expression syntax.  */
# if defined __GLIBC__ && defined __ELF__ && defined __GNUC__
#  define GL_LINK_WARNING(message) \
     GL_LINK_WARNING1 (__FILE__, __LINE__, message)
#  define GL_LINK_WARNING1(file, line, message) \
     GL_LINK_WARNING2 (file, line, message)  /* macroexpand file and line */
#  define GL_LINK_WARNING2(file, line, message) \
     GL_LINK_WARNING3 (file ":" #line ": warning: " message)
#  define GL_LINK_WARNING3(message) \
     ({ static const char warning[sizeof (message)]             \
          __attribute__ ((__unused__,                           \
                          __section__ (".gnu.warning"),         \
                          __aligned__ (1)))                     \
          = message "\n";                                       \
        (void)0;                                                \
     })
# else
#  define GL_LINK_WARNING(message) ((void) 0)
# endif
#endif