C99 ld configury
* configure.ac: Move initfini-array arg handling earlier. Don't check for string.h, strings.h, stdlib.h, or locale.h. Do check for inttypes.h, stdint.h, sys/types.h. Don't check for setlocale, free, getev or strstr. (AC_ISC_POSIX): Don't invoke. * sysdep.h: Include string.h and stdlib.h unconditionally. Test HAVE_SYS_TYPE_H and HAVE_SYS_STAT_H. Remove strstr, free and getenv fallback declarations. * ld.h: Don't test HAVE_LOCALE_H. * ldmain.c: Don't test HAVE_SETLOCALE. * config.in: Regenerate. * configure: Regenerate.
This commit is contained in:
parent
23d613801d
commit
c774eab1c8
15
ld/ChangeLog
15
ld/ChangeLog
@ -1,3 +1,18 @@
|
|||||||
|
2021-04-05 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* configure.ac: Move initfini-array arg handling earlier. Don't
|
||||||
|
check for string.h, strings.h, stdlib.h, or locale.h. Do check
|
||||||
|
for inttypes.h, stdint.h, sys/types.h. Don't check for
|
||||||
|
setlocale, free, getev or strstr.
|
||||||
|
(AC_ISC_POSIX): Don't invoke.
|
||||||
|
* sysdep.h: Include string.h and stdlib.h unconditionally. Test
|
||||||
|
HAVE_SYS_TYPE_H and HAVE_SYS_STAT_H. Remove strstr, free and
|
||||||
|
getenv fallback declarations.
|
||||||
|
* ld.h: Don't test HAVE_LOCALE_H.
|
||||||
|
* ldmain.c: Don't test HAVE_SETLOCALE.
|
||||||
|
* config.in: Regenerate.
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
2021-04-01 Tamar Christina <tamar.christina@arm.com>
|
2021-04-01 Tamar Christina <tamar.christina@arm.com>
|
||||||
|
|
||||||
PR ld/26659
|
PR ld/26659
|
||||||
|
37
ld/config.in
37
ld/config.in
@ -57,14 +57,6 @@
|
|||||||
don't. */
|
don't. */
|
||||||
#undef HAVE_DECL_ENVIRON
|
#undef HAVE_DECL_ENVIRON
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `free', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#undef HAVE_DECL_FREE
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#undef HAVE_DECL_GETENV
|
|
||||||
|
|
||||||
/* Is the prototype for getopt in <unistd.h> in the expected format? */
|
/* Is the prototype for getopt in <unistd.h> in the expected format? */
|
||||||
#undef HAVE_DECL_GETOPT
|
#undef HAVE_DECL_GETOPT
|
||||||
|
|
||||||
@ -72,14 +64,6 @@
|
|||||||
*/
|
*/
|
||||||
#undef HAVE_DECL_SBRK
|
#undef HAVE_DECL_SBRK
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#undef HAVE_DECL_STRSTR
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
|
|
||||||
*/
|
|
||||||
#undef HAVE_DIRENT_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
#undef HAVE_DLFCN_H
|
#undef HAVE_DLFCN_H
|
||||||
|
|
||||||
@ -107,9 +91,6 @@
|
|||||||
/* Define to 1 if you have the <limits.h> header file. */
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
#undef HAVE_LIMITS_H
|
#undef HAVE_LIMITS_H
|
||||||
|
|
||||||
/* Define to 1 if you have the <locale.h> header file. */
|
|
||||||
#undef HAVE_LOCALE_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `lseek' function. */
|
/* Define to 1 if you have the `lseek' function. */
|
||||||
#undef HAVE_LSEEK
|
#undef HAVE_LSEEK
|
||||||
|
|
||||||
@ -122,9 +103,6 @@
|
|||||||
/* Define to 1 if you have a working `mmap' system call. */
|
/* Define to 1 if you have a working `mmap' system call. */
|
||||||
#undef HAVE_MMAP
|
#undef HAVE_MMAP
|
||||||
|
|
||||||
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
|
||||||
#undef HAVE_NDIR_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `open' function. */
|
/* Define to 1 if you have the `open' function. */
|
||||||
#undef HAVE_OPEN
|
#undef HAVE_OPEN
|
||||||
|
|
||||||
@ -134,9 +112,6 @@
|
|||||||
/* Define to 1 if you have the `sbrk' function. */
|
/* Define to 1 if you have the `sbrk' function. */
|
||||||
#undef HAVE_SBRK
|
#undef HAVE_SBRK
|
||||||
|
|
||||||
/* Define to 1 if you have the `setlocale' function. */
|
|
||||||
#undef HAVE_SETLOCALE
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
#undef HAVE_STDINT_H
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
@ -149,16 +124,11 @@
|
|||||||
/* Define to 1 if you have the <string.h> header file. */
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
#undef HAVE_STRING_H
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
|
|
||||||
*/
|
|
||||||
#undef HAVE_SYS_DIR_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/file.h> header file. */
|
/* Define to 1 if you have the <sys/file.h> header file. */
|
||||||
#undef HAVE_SYS_FILE_H
|
#undef HAVE_SYS_FILE_H
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
|
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||||
*/
|
#undef HAVE_SYS_MMAN_H
|
||||||
#undef HAVE_SYS_NDIR_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
#undef HAVE_SYS_PARAM_H
|
#undef HAVE_SYS_PARAM_H
|
||||||
@ -212,9 +182,6 @@
|
|||||||
/* Define to 1 if you have the ANSI C header files. */
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
#undef STDC_HEADERS
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
/* Define if you can safely include both <string.h> and <strings.h>. */
|
|
||||||
#undef STRING_WITH_STRINGS
|
|
||||||
|
|
||||||
/* Define to 1 if you want to support the --error-handling-script command line
|
/* Define to 1 if you want to support the --error-handling-script command line
|
||||||
option. */
|
option. */
|
||||||
#undef SUPPORT_ERROR_HANDLING_SCRIPT
|
#undef SUPPORT_ERROR_HANDLING_SCRIPT
|
||||||
|
2365
ld/configure
vendored
2365
ld/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -23,7 +23,6 @@ AC_CONFIG_SRCDIR(ldmain.c)
|
|||||||
|
|
||||||
AC_CANONICAL_TARGET
|
AC_CANONICAL_TARGET
|
||||||
AC_CANONICAL_BUILD
|
AC_CANONICAL_BUILD
|
||||||
AC_ISC_POSIX
|
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE
|
AM_INIT_AUTOMAKE
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
@ -231,6 +230,18 @@ case "${enable_default_hash_style}" in
|
|||||||
*) ac_default_emit_gnu_hash=0 ;;
|
*) ac_default_emit_gnu_hash=0 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(initfini-array,
|
||||||
|
[ --disable-initfini-array do not use .init_array/.fini_array sections],
|
||||||
|
[case "${enableval}" in
|
||||||
|
yes|no) ;;
|
||||||
|
*) AC_MSG_ERROR([invalid --enable-initfini-array argument]) ;;
|
||||||
|
esac], [enable_initfini_array=yes])
|
||||||
|
AC_SUBST(enable_initfini_array)
|
||||||
|
if test $enable_initfini_array = yes; then
|
||||||
|
AC_DEFINE(HAVE_INITFINI_ARRAY, 1,
|
||||||
|
[Define .init_array/.fini_array sections are available and working.])
|
||||||
|
fi
|
||||||
|
|
||||||
GCC_ENABLE([libctf], [yes], [], [Handle .ctf type-info sections])
|
GCC_ENABLE([libctf], [yes], [], [Handle .ctf type-info sections])
|
||||||
if test "${enable_libctf}" = yes; then
|
if test "${enable_libctf}" = yes; then
|
||||||
AC_DEFINE(ENABLE_LIBCTF, 1, [Handle .ctf type-info sections])
|
AC_DEFINE(ENABLE_LIBCTF, 1, [Handle .ctf type-info sections])
|
||||||
@ -280,30 +291,25 @@ ACX_PROG_CMP_IGNORE_INITIAL
|
|||||||
AC_SUBST(HDEFINES)
|
AC_SUBST(HDEFINES)
|
||||||
AC_SUBST(NATIVE_LIB_DIRS)
|
AC_SUBST(NATIVE_LIB_DIRS)
|
||||||
|
|
||||||
AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h elf-hints.h limits.h locale.h sys/param.h)
|
# We use headers from include/ that check various HAVE_*_H macros, thus
|
||||||
AC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h sys/stat.h)
|
# should ensure they are set by configure. This is true even when C99
|
||||||
ACX_HEADER_STRING
|
# guarantees they are available.
|
||||||
AC_CHECK_FUNCS(glob mkstemp realpath sbrk setlocale waitpid)
|
# sha1.h and md4.h test HAVE_LIMITS_H, HAVE_SYS_TYPES_H and HAVE_STDINT_H
|
||||||
AC_CHECK_FUNCS(open lseek close)
|
# plugin-api.h tests HAVE_STDINT_H and HAVE_INTTYPES_H
|
||||||
AC_HEADER_DIRENT
|
# Besides those, we need to check anything used in ld/ not in C99.
|
||||||
|
AC_CHECK_HEADERS(fcntl.h elf-hints.h limits.h inttypes.h stdint.h \
|
||||||
|
sys/file.h sys/mman.h sys/param.h sys/stat.h sys/time.h \
|
||||||
|
sys/types.h unistd.h)
|
||||||
|
AC_CHECK_FUNCS(close glob lseek mkstemp open realpath sbrk waitpid)
|
||||||
|
|
||||||
|
BFD_BINARY_FOPEN
|
||||||
|
|
||||||
|
AC_CHECK_DECLS([asprintf, environ, sbrk])
|
||||||
|
|
||||||
dnl AC_CHECK_HEADERS(sys/mman.h)
|
|
||||||
AC_FUNC_MMAP
|
AC_FUNC_MMAP
|
||||||
|
|
||||||
AC_SEARCH_LIBS([dlopen], [dl])
|
AC_SEARCH_LIBS([dlopen], [dl])
|
||||||
|
|
||||||
AC_ARG_ENABLE(initfini-array,
|
|
||||||
[ --disable-initfini-array do not use .init_array/.fini_array sections],
|
|
||||||
[case "${enableval}" in
|
|
||||||
yes|no) ;;
|
|
||||||
*) AC_MSG_ERROR([invalid --enable-initfini-array argument]) ;;
|
|
||||||
esac], [enable_initfini_array=yes])
|
|
||||||
AC_SUBST(enable_initfini_array)
|
|
||||||
if test $enable_initfini_array = yes; then
|
|
||||||
AC_DEFINE(HAVE_INITFINI_ARRAY, 1,
|
|
||||||
[Define .init_array/.fini_array sections are available and working.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
|
AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
|
||||||
AC_CACHE_VAL(ld_cv_decl_getopt_unistd_h,
|
AC_CACHE_VAL(ld_cv_decl_getopt_unistd_h,
|
||||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
|
||||||
@ -314,10 +320,6 @@ if test $ld_cv_decl_getopt_unistd_h = yes; then
|
|||||||
[Is the prototype for getopt in <unistd.h> in the expected format?])
|
[Is the prototype for getopt in <unistd.h> in the expected format?])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BFD_BINARY_FOPEN
|
|
||||||
|
|
||||||
AC_CHECK_DECLS([asprintf, environ, free, getenv, sbrk, strstr])
|
|
||||||
|
|
||||||
# Link in zlib if we can. This allows us to read and write
|
# Link in zlib if we can. This allows us to read and write
|
||||||
# compressed CTF sections.
|
# compressed CTF sections.
|
||||||
AM_ZLIB
|
AM_ZLIB
|
||||||
|
4
ld/ld.h
4
ld/ld.h
@ -21,8 +21,6 @@
|
|||||||
#ifndef LD_H
|
#ifndef LD_H
|
||||||
#define LD_H
|
#define LD_H
|
||||||
|
|
||||||
#ifdef HAVE_LOCALE_H
|
|
||||||
#endif
|
|
||||||
#ifndef SEEK_CUR
|
#ifndef SEEK_CUR
|
||||||
#define SEEK_CUR 1
|
#define SEEK_CUR 1
|
||||||
#endif
|
#endif
|
||||||
@ -30,7 +28,6 @@
|
|||||||
#define SEEK_END 2
|
#define SEEK_END 2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_LOCALE_H
|
|
||||||
#ifndef ENABLE_NLS
|
#ifndef ENABLE_NLS
|
||||||
/* The Solaris version of locale.h always includes libintl.h. If we have
|
/* The Solaris version of locale.h always includes libintl.h. If we have
|
||||||
been configured with --disable-nls then ENABLE_NLS will not be defined
|
been configured with --disable-nls then ENABLE_NLS will not be defined
|
||||||
@ -41,7 +38,6 @@
|
|||||||
# define _LIBGETTEXT_H
|
# define _LIBGETTEXT_H
|
||||||
#endif
|
#endif
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef ENABLE_NLS
|
#ifdef ENABLE_NLS
|
||||||
# include <libintl.h>
|
# include <libintl.h>
|
||||||
|
@ -246,12 +246,10 @@ main (int argc, char **argv)
|
|||||||
char *emulation;
|
char *emulation;
|
||||||
long start_time = get_run_time ();
|
long start_time = get_run_time ();
|
||||||
|
|
||||||
#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
|
#ifdef HAVE_LC_MESSAGES
|
||||||
setlocale (LC_MESSAGES, "");
|
setlocale (LC_MESSAGES, "");
|
||||||
#endif
|
#endif
|
||||||
#if defined (HAVE_SETLOCALE)
|
|
||||||
setlocale (LC_CTYPE, "");
|
setlocale (LC_CTYPE, "");
|
||||||
#endif
|
|
||||||
bindtextdomain (PACKAGE, LOCALEDIR);
|
bindtextdomain (PACKAGE, LOCALEDIR);
|
||||||
textdomain (PACKAGE);
|
textdomain (PACKAGE);
|
||||||
|
|
||||||
|
37
ld/sysdep.h
37
ld/sysdep.h
@ -28,30 +28,15 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
#ifdef STRING_WITH_STRINGS
|
|
||||||
#include <string.h>
|
|
||||||
#include <strings.h>
|
|
||||||
#else
|
|
||||||
#ifdef HAVE_STRING_H
|
|
||||||
#include <string.h>
|
|
||||||
#else
|
|
||||||
#ifdef HAVE_STRINGS_H
|
|
||||||
#include <strings.h>
|
|
||||||
#else
|
|
||||||
extern char *strchr ();
|
|
||||||
extern char *strrchr ();
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_STDLIB_H
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#include <string.h>
|
||||||
|
#include <stdarg.h>
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
@ -107,18 +92,6 @@ extern char *strrchr ();
|
|||||||
#define SEEK_END 2
|
#define SEEK_END 2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !HAVE_DECL_STRSTR
|
|
||||||
extern char *strstr ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !HAVE_DECL_FREE
|
|
||||||
extern void free ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !HAVE_DECL_GETENV
|
|
||||||
extern char *getenv ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !HAVE_DECL_ENVIRON
|
#if !HAVE_DECL_ENVIRON
|
||||||
extern char **environ;
|
extern char **environ;
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user