Yury Gribov <y.gri...@samsung.com> writes:

> --- a/include/libiberty.h
> +++ b/include/libiberty.h
> @@ -655,6 +655,33 @@ extern size_t strnlen (const char *, size_t);
>  extern int strverscmp (const char *, const char *);
>  #endif
>  
> +#if defined(HAVE_DECL_STRTOL) && !HAVE_DECL_STRTOL
> +extern long int strtol (const char *nptr,
> +                        char **endptr, int base);
> +#endif
> +
> +#if defined(HAVE_DECL_STRTOUL) && !HAVE_DECL_STRTOUL
> +extern unsigned long int strtoul (const char *nptr,
> +                                  char **endptr, int base);
> +#endif
> +
> +#if defined(HAVE_DECL_STRTOLL) && !HAVE_DECL_STRTOLL
> +__extension__
> +extern long long int strtoll (const char *nptr,
> +                              char **endptr, int base);
> +#endif
> +
> +#if defined(HAVE_DECL_STRTOULL) && !HAVE_DECL_STRTOULL
> +__extension__
> +extern unsigned long long int strtoull (const char *nptr,
> +                                        char **endptr, int base);
> +#endif


Your patch is otherwise careful to check that only use "long long" if
the compiler supports it.  Here you are not.  I think you need to wrap
the declarations of strtoll and strtoull in

#ifdef HAVE_LONG_LONG

With that change the libiberty/include patch is OK.

Thanks.

Ian

Reply via email to