This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Problems with gcc + exceptions + -pedantic + libiberty.h
Ok, minus the obvious typo. A similar patch for getopt.h is
preapproved. I think this leaves two problems remaining:
1. subdirs that don't yet test for a decl - should they get the ()
decl, or no decl?
2. C++ source shouldn't ever see the () decl, me thinks. It's inside
an extern "C" but I have this nagging feeling I've seen C++ sources
complain if they don't also see the real prototype.
And all those platform-specific things really bother me :-(
> Here ya go.
>
> * libiberty.h (basename): Don't declare if HAVE_DECL_BASENAME.
>
> Index: include/libiberty.h
> ===================================================================
> RCS file: /cvs/src/src/include/libiberty.h,v
> retrieving revision 1.15
> diff -u -p -r1.15 libiberty.h
> --- libiberty.h 2001/10/23 15:31:55 1.15
> +++ libiberty.h 2002/01/08 04:12:30
> @@ -73,12 +73,12 @@ extern char **dupargv PARAMS ((char **))
> declaration without arguments. If it is 0, we checked and failed
> to find the declaration so provide a fully prototyped one. If it
> is 1, we found it so don't provide any declaration at all. */
> -#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || (defined (HAVE_DECL_BASENAME) && !HAVE_DECL_BASENAME)
> +#if !HAVE_DECL_BASENAME
> +#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || (defined (HAVE_DECL_BASENAME)
> extern char *basename PARAMS ((const char *));
> #else
> -# if !defined (HAVE_DECL_BASENAME)
> extern char *basename ();
> -# endif
> +#endif
> #endif
>
> /* A well-defined basename () that is always compiled in. */
>
> --
> Alan Modra
> IBM OzLabs - Linux Technology Centre
>