Add support for AIX -blibpath and -bnolibpath.

This commit is contained in:
Tom Rix 2002-04-30 23:29:21 +00:00
parent 47f21bcc3d
commit aa67bccfe2
2 changed files with 27 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2002-04-30 Tom Rix <trix@redhat.com>
* emultempl/aix.em (gld*_parse_arge, gld*_before_allocation): Add
-blibpath, -bnolibpath support.
2002-04-30 Mark Mitchell <mark@codesourcery.com>
* Makefile.am (ALL_EMULATIONS): Add elf32ppcwindiss.o.

View File

@ -134,6 +134,9 @@ static lang_input_statement_type *initfini_file;
/* Whether to do run time linking */
static boolean rtld;
/* Explicit command line library path, -blibpath */
static char *command_line_blibpath = NULL;
/* This routine is called before anything else is done. */
static void
@ -196,6 +199,8 @@ gld${EMULATION_NAME}_parse_args (argc, argv)
OPTION_UNIX,
OPTION_32,
OPTION_64,
OPTION_LIBPATH,
OPTION_NOLIBPATH,
};
/* -binitfini has special handling in the linker backend. The native linker
@ -252,6 +257,8 @@ gld${EMULATION_NAME}_parse_args (argc, argv)
{"b64", no_argument, NULL, OPTION_64},
{"static", no_argument, NULL, OPTION_NOAUTOIMP},
{"unix", no_argument, NULL, OPTION_UNIX},
{"blibpath", required_argument, NULL, OPTION_LIBPATH},
{"bnolibpath", required_argument, NULL, OPTION_NOLIBPATH},
{NULL, no_argument, NULL, 0}
};
@ -518,6 +525,14 @@ gld${EMULATION_NAME}_parse_args (argc, argv)
symbol_mode_mask = 0x0e;
break;
case OPTION_LIBPATH:
command_line_blibpath=optarg;
break;
case OPTION_NOLIBPATH:
command_line_blibpath=NULL;
break;
}
return 1;
@ -638,10 +653,13 @@ gld${EMULATION_NAME}_before_allocation ()
.loader relocs for them. */
lang_for_each_statement (gld${EMULATION_NAME}_find_relocs);
/* We need to build LIBPATH from the -L arguments. If any -rpath
arguments were used, though, we use -rpath instead, as a GNU
extension. */
if (command_line.rpath != NULL)
/* Precedence of LIBPATH
-blibpath: native support always first
-rpath: gnu extension
-L build from command line -L's */
if (command_line_blibpath != NULL)
libpath = command_line_blibpath;
else if (command_line.rpath != NULL)
libpath = command_line.rpath;
else if (search_head == NULL)
libpath = (char *) "";