[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: extern inline problem with argp when building tar 1.19 with GCC 4.2.
From: |
Bruno Haible |
Subject: |
Re: extern inline problem with argp when building tar 1.19 with GCC 4.2.1 |
Date: |
Sat, 13 Oct 2007 15:53:25 +0200 |
User-agent: |
KMail/1.5.4 |
Addendum to last patch: When __GNUC_STDC_INLINE__ is defined, we know that
the compiler supports both the ISO C99 and the old GNU C semantics for
'inline'. In ten years, people will wonder "what was this old GNU C semantics".
So it's better to use the ISO C99 semantics for the long-term use.
2007-10-13 Bruno Haible <address@hidden>
* lib/argp-fmtstream.h (ARGP_FS_EI): If __GNUC_STDC_INLINE__ is
defined, use the ISO C99 inline semantics.
* lib/argp.h (ARGP_EI): Likewise.
*** lib/argp-fmtstream.h.orig 2007-10-13 15:48:09.000000000 +0200
--- lib/argp-fmtstream.h 2007-10-13 15:45:01.000000000 +0200
***************
*** 211,217 ****
warning: C99 inline functions are not supported; using GNU89
warning: to disable this warning use -fgnu89-inline or the gnu_inline
function attribute
It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */
! # if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
# define ARGP_FS_EI extern inline __attribute__ ((__gnu_inline__))
# else
# define ARGP_FS_EI extern inline
--- 211,219 ----
warning: C99 inline functions are not supported; using GNU89
warning: to disable this warning use -fgnu89-inline or the gnu_inline
function attribute
It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */
! # if defined __GNUC_STDC_INLINE__
! # define ARGP_FS_EI inline
! # elif defined __GNUC_GNU_INLINE__
# define ARGP_FS_EI extern inline __attribute__ ((__gnu_inline__))
# else
# define ARGP_FS_EI extern inline
*** lib/argp.h.orig 2007-10-13 15:48:09.000000000 +0200
--- lib/argp.h 2007-10-13 15:45:35.000000000 +0200
***************
*** 593,599 ****
warning: C99 inline functions are not supported; using GNU89
warning: to disable this warning use -fgnu89-inline or the
gnu_inline function attribute
It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */
! # if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
# define ARGP_EI extern __inline__ __attribute__ ((__gnu_inline__))
# else
# define ARGP_EI extern __inline__
--- 593,601 ----
warning: C99 inline functions are not supported; using GNU89
warning: to disable this warning use -fgnu89-inline or the
gnu_inline function attribute
It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */
! # if defined __GNUC_STDC_INLINE__
! # define ARGP_EI __inline__
! # elif defined __GNUC_GNU_INLINE__
# define ARGP_EI extern __inline__ __attribute__ ((__gnu_inline__))
# else
# define ARGP_EI extern __inline__