Add ld_list_options

This patch adds ld_list_options for ELF targets to avoid duplicated
outputs from ld --help.

	* Makefile.am (ELF_CLFAGS): New.
	(AM_CFLAGS): Add $(ELF_CLFAGS).
	* configure.ac (elf_list_options): New.  AC_SUBST.
	(elf_shlib_list_options): Likewise.
	(elf_plt_unwind_list_options): Likewise.
	* lexsup.c (elf_shlib_list_options): New.
	(elf_static_list_options): Likewise.
	(elf_plt_unwind_list_options): Likewise.
	(ld_list_options): Likewise.
	(help): Call ld_list_options.
	* Makefile.in: Regenerated.
	* configure: Likewise.
	* emulparams/plt_unwind.sh (PLT_UNWIND): New.
	(PARSE_AND_LIST_OPTIONS): Removed.
	* emultempl/elf32.em (gld_list_options): New.
	(gld${EMULATION_NAME}_list_options): Define only if BNDPLT or
	PARSE_AND_LIST_OPTIONS is defined.
	(ld_${EMULATION_NAME}_emulation): Replace
	gld${EMULATION_NAME}_list_options with ${gld_list_options.
This commit is contained in:
H.J. Lu
2015-04-08 04:55:07 -07:00
parent 4496bed7f3
commit c58212eaf9
8 changed files with 195 additions and 119 deletions

28
ld/configure vendored
View File

@@ -608,6 +608,9 @@ LIB_PATH
EMUL_EXTRA_OFILES
EMULATION_OFILES
EMUL
elf_plt_unwind_list_options
elf_shlib_list_options
elf_list_options
STRINGIFY
enable_initfini_array
ENABLE_PLUGINS_FALSE
@@ -11710,7 +11713,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11713 "configure"
#line 11716 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11816,7 +11819,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11819 "configure"
#line 11822 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -17025,6 +17028,9 @@ _ACEOF
fi
fi
elf_list_options=FALSE
elf_shlib_list_options=FALSE
elf_plt_unwind_list_options=FALSE
for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
do
if test "$targ_alias" = "all"; then
@@ -17055,7 +17061,20 @@ do
for i in $targ_emul $targ_extra_emuls $targ_extra_libpath; do
case " $all_emuls " in
*" e${i}.o "*) ;;
*" e${i}.o "*)
case "${i}" in
*elf*)
elf_list_options=TRUE
. ${srcdir}/emulparams/${i}.sh
if test x${GENERATE_SHLIB_SCRIPT} = xyes; then
elf_shlib_list_options=TRUE
fi
if test x${PLT_UNWIND} = xyes; then
elf_plt_unwind_list_options=TRUE
fi
;;
esac
;;
*)
all_emuls="$all_emuls e${i}.o"
eval result=\$tdir_$i
@@ -17092,6 +17111,9 @@ done
TDIRS=tdirs