This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: ELF options may be missing from `ld --help' output after migration to ld_list_options
- From: Chung-Lin Tang <cltang at codesourcery dot com>
- To: Ilya Malakhov <ilmalakhovthefirst at gmail dot com>, <binutils at sourceware dot org>, <hjl dot tools at gmail dot com>
- Cc: Sandra Loosemore <sandra at codesourcery dot com>
- Date: Thu, 14 May 2015 18:40:57 +0800
- Subject: Re: ELF options may be missing from `ld --help' output after migration to ld_list_options
- Authentication-results: sourceware.org; auth=none
- References: <CAK1sNPBj=q0M8-3a=kjC1fGp-C+X==PUr6uQd+uf26inNshjiw at mail dot gmail dot com> <20150410085450 dot GK27812 at bubble dot grove dot modra dot org>
On 15/4/10 4:54 PM, Alan Modra wrote:
> On Fri, Apr 10, 2015 at 11:05:45AM +0300, Ilya Malakhov wrote:
>> One should probably check whether to set elf_list_options and others to TRUE
>> in `*)' case rather than in `*" e${i}.o "*)' one within ld/configure.ac in
>> master branch of binutils-gdb.git:
>
> Indeed. Thanks!
>
> * configure.ac: Set elf_list_options etc. in proper case.
> * configure: Regenerate.
I have another case that needs fixing related to ld_list_options.
nios2-linux has an emulation named "nios2linux", and happens to not include
another extra emulation with a name matching *elf*. This makes nios2-linux
left out of the ELF options printing targets, which is unintended.
The name of emulation didn't play this part when I created "nios2linux" from
"nios2elf", so this is a recent breakage (glibc configure failed for me too :P).
I can change the emulation name to something like "nios2elf_linux" if required,
but may I suggest that configuration uses emulparams/*.sh contents too?
The attached patch also enables the ELF options when "TEMPLATE_NAME=elf32" is
found inside the emulparams file as well. This should make things more robust.
Thanks,
Chung-Lin
2015-05-14 Chung-Lin Tang <cltang@codesourcery.com>
* configure.ac (AC_PROG_GREP): Check for grep program.
(elf_list_options,elf_shlib_list_options,elf_plt_unwind_list_options):
Enable ELF option printing for emulations containing 'TEMPLATE_NAME=elf32'.
* configure: Regenerate.
diff --git a/ld/configure.ac b/ld/configure.ac
index e120a05..54bfb86 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -31,6 +31,7 @@ AM_MAINTAINER_MODE
AC_PROG_CC
AC_PROG_CXX
+AC_PROG_GREP
AC_GNU_SOURCE
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_INSTALL
@@ -324,8 +325,14 @@ do
test -z "$result" && result=$targ_alias
echo tdir_$i=$result >> tdirs
case "${i}" in
- *elf*)
- elf_list_options=TRUE
+ *elf*) elf_list_options=TRUE ;;
+ *)
+ if test `$GREP "TEMPLATE_NAME=elf32" ${srcdir}/emulparams/${i}.sh`; then
+ elf_list_options=TRUE
+ fi
+ ;;
+ esac
+ if test "$elf_list_options" = "TRUE"; then
. ${srcdir}/emulparams/${i}.sh
if test x${GENERATE_SHLIB_SCRIPT} = xyes; then
elf_shlib_list_options=TRUE
@@ -333,8 +340,7 @@ do
if test x${PLT_UNWIND} = xyes; then
elf_plt_unwind_list_options=TRUE
fi
- ;;
- esac
+ fi
;;
esac
done