elf32-nds32: Don't define fls if it is provided by the system

The fls function already exists on macOS and FreeBSD (and probably others),
leading to this error:

/Users/simark/src/binutils-gdb/bfd/elf32-nds32.c:5074:1: error: static declaration of 'fls' follows non-static declaration
fls (register unsigned int x)
^
/usr/include/strings.h:87:6: note: previous declaration is here
int      fls(int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
         ^

Add a configure-time check for it, and only define it if the system doesn't
provide it.

bfd/ChangeLog:

	* configure.ac: Check for fls.
	* elf32-nds32.c (fls): Only define if !HAVE_FLS.
	* config.in: Re-generate.
	* configure: Re-generate.
This commit is contained in:
Simon Marchi 2018-09-21 10:27:30 -04:00
parent 4daf19021f
commit a767a1c4d3
5 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2018-09-21 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Check for fls.
* elf32-nds32.c (fls): Only define if !HAVE_FLS.
* config.in: Re-generate.
* configure: Re-generate.
2018-09-20 Maciej W. Rozycki <macro@linux-mips.org>
* config.bfd <rs6000-*-aix5.[01], rs6000-*-aix[5-9]*>: Remove

View File

@ -107,6 +107,9 @@
/* Define to 1 if you have the `fileno' function. */
#undef HAVE_FILENO
/* Define to 1 if you have the `fls' function. */
#undef HAVE_FLS
/* Define to 1 if you have the `fopen64' function. */
#undef HAVE_FOPEN64

2
bfd/configure vendored
View File

@ -14089,7 +14089,7 @@ $as_echo "#define STRING_WITH_STRINGS 1" >>confdefs.h
fi
for ac_func in fcntl getpagesize setitimer sysconf fdopen getuid getgid fileno
for ac_func in fcntl getpagesize setitimer sysconf fdopen getuid getgid fileno fls
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"

View File

@ -229,7 +229,7 @@ AC_HEADER_TIME
AC_HEADER_DIRENT
ACX_HEADER_STRING
AC_CHECK_FUNCS(fcntl getpagesize setitimer sysconf fdopen getuid getgid fileno)
AC_CHECK_FUNCS(fcntl getpagesize setitimer sysconf fdopen getuid getgid fileno fls)
AC_CHECK_FUNCS(strtoull getrlimit)
AC_CHECK_DECLS(basename)

View File

@ -5083,11 +5083,13 @@ ones32 (register unsigned int x)
return (x & 0x0000003f);
}
#if !HAVE_FLS
static unsigned int
fls (register unsigned int x)
{
return ffs (x & (-x));
}
#endif /* !HAVE_FLS */
#define nds32_elf_local_tlsdesc_gotent(bfd) \
(elf_nds32_tdata (bfd)->local_tlsdesc_gotent)