This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Fix PE ports confusing -c command line switch with --compact-implib
- From: Nick Clifton <nickc at redhat dot com>
- To: binutils at sources dot redhat dot com
- Date: 17 Dec 2002 11:04:51 +0000
- Subject: Fix PE ports confusing -c command line switch with --compact-implib
Hi Guys,
I am applying the patch below to fix a problem with PE targeted
ports. They confuse the -c command line switch (to select MRI script
parsing) with the --compact-implib command line switch, due to a
"feature" of the getopt package.
The solution is to have the --compact-implib switch present twice in
the list of the available switches, so that getopt() thinks that the
switch cannot be abbreviated. With this patch applied the PE ports
pass the ld-scripts/MRI test.
Cheers
Nick
2002-12-17 Nick Clifton <nickc@redhat.com>
* emultempl/pe.em (longopts): Duplicate entry for --compact-implib
so that it is not confused with -c.
Index: ld/emultempl/pe.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/pe.em,v
retrieving revision 1.71
diff -c -3 -p -w -r1.71 pe.em
*** ld/emultempl/pe.em 16 Dec 2002 18:02:16 -0000 1.71
--- ld/emultempl/pe.em 17 Dec 2002 09:58:25 -0000
*************** static struct option longopts[] = {
*** 260,265 ****
--- 260,268 ----
{"disable-stdcall-fixup", no_argument, NULL, OPTION_DISABLE_STDCALL_FIXUP},
{"out-implib", required_argument, NULL, OPTION_IMPLIB_FILENAME},
{"warn-duplicate-exports", no_argument, NULL, OPTION_WARN_DUPLICATE_EXPORTS},
+ /* getopt() allows abbreviations, so we do this to stop it from
+ treating -c as an abbreviation for these --compat-implib. */
+ {"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT},
{"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT},
{"enable-auto-image-base", no_argument, NULL, OPTION_ENABLE_AUTO_IMAGE_BASE},
{"disable-auto-image-base", no_argument, NULL, OPTION_DISABLE_AUTO_IMAGE_BASE},