diff options
author | Alan Modra <amodra@gmail.com> | 2003-02-28 01:32:31 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2003-02-28 01:32:31 +0000 |
commit | 3bcf55573d377355c73846cc0b819c7d878d8e19 (patch) | |
tree | bbe9a2d3302487029b4dbb711170df911a326c35 /ld/ldemul.c | |
parent | 2c4c2bc0a526e8e0c186cd7cb005e2947cac3b88 (diff) | |
download | gdb-3bcf55573d377355c73846cc0b819c7d878d8e19.zip gdb-3bcf55573d377355c73846cc0b819c7d878d8e19.tar.gz gdb-3bcf55573d377355c73846cc0b819c7d878d8e19.tar.bz2 |
* ldemul.c (ldemul_add_options, ldemul_handle_option): New functions.
(ldemul_parse_args): Return bfd_boolean. Formatting.
* ldemul.h (ldemul_add_options, ldemul_handle_option): Declare.
(ldemul_parse_args): Adjust.
(struct ld_emulation_xfer_struct): Add add_options and handle_option.
Return bfd_boolean from parse_args.
* lexsup.c (parse_args): Malloc shortopts, longopts and
really_longopts. Call ldemul_add_options and ldemul_handle_option.
* emultempl/aix.em (gld${EMULATION_NAME}_add_options): Split out from
gld${EMULATION_NAME}_parse_args.
(gld${EMULATION_NAME}_handle_option): Likewise.
(ld_${EMULATION_NAME}_emulation): Adjust initializer.
* emultempl/armcoff.em: As for aix.em, but remove parse_args.
* emultempl/beos.em: Likewise.
* emultempl/pe.em: Likewise.
* emultempl/ticoff.em: Likewise.
* emultempl/elf32.em: Likewise. Don't duplicate long options either.
(gld${EMULATION_NAME}_add_sysroot): Prototype.
* emultempl/armelf.em (PARSE_AND_LIST_LONGOPTS): Don't duplicate
options.
* emultempl/hppaelf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
* emultempl/ppc32elf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
* emultempl/ppc64elf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
* emultempl/armelf_oabi.em (ld_${EMULATION_NAME}_emulation): Adjust
initializer.
* emultempl/generic.em: Likewise.
* emultempl/gld960.em: Likewise.
* emultempl/gld960c.em: Likewise.
* emultempl/linux.em: Likewise.
* emultempl/lnk960.em: Likewise.
* emultempl/m68kcoff.em: Likewise.
* emultempl/mipsecoff.em: Likewise.
* emultempl/sunos.em: Likewise.
* emultempl/vanilla.em: Likewise.
* emultempl/netbsd.em (gldnetbsd_before_parse): Prototype.
Diffstat (limited to 'ld/ldemul.c')
-rw-r--r-- | ld/ldemul.c | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/ld/ldemul.c b/ld/ldemul.c index 72e324a..427e21d 100644 --- a/ld/ldemul.c +++ b/ld/ldemul.c @@ -133,17 +133,38 @@ ldemul_place_orphan (file, s) return FALSE; } -int +void +ldemul_add_options (ns, shortopts, nl, longopts, nrl, really_longopts) + int ns; + char **shortopts; + int nl; + struct option **longopts; + int nrl; + struct option **really_longopts; +{ + if (ld_emulation->add_options) + (*ld_emulation->add_options) (ns, shortopts, nl, longopts, + nrl, really_longopts); +} + +bfd_boolean +ldemul_handle_option (optc) + int optc; +{ + if (ld_emulation->handle_option) + return (*ld_emulation->handle_option) (optc); + return FALSE; +} + +bfd_boolean ldemul_parse_args (argc, argv) int argc; char **argv; { /* Try and use the emulation parser if there is one. */ if (ld_emulation->parse_args) - { - return ld_emulation->parse_args (argc, argv); - } - return 0; + return (*ld_emulation->parse_args) (argc, argv); + return TRUE; } /* Let the emulation code handle an unrecognized file. */ |