Add support for AIX -blibpath and -bnolibpath.
authorTom Rix <trix@redhat.com>
Tue, 30 Apr 2002 23:29:21 +0000 (23:29 +0000)
committerTom Rix <trix@redhat.com>
Tue, 30 Apr 2002 23:29:21 +0000 (23:29 +0000)
ld/ChangeLog
ld/emultempl/aix.em

index 1319dbb198b41030ab9ddb907201d2ec6975437b..646c43066eed65f2d9a0eb4f00fc44d9a7595f87 100644 (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.
index a540d0b480941633d34133aaacfa51f488314c0c..f4dff857c127dacddf76e1ebe5430dbbdbddd3be 100644 (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 *) "";