This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

patch, ld AIX -blibpath -bnolibpath support


This patch adds -blibpath and -bnolibpath emulation support to the
linker.

Tom

--
Tom Rix
GCC Engineer
trix@redhat.com


2002-04-30  Tom Rix  <trix@redhat.com>

	* emultempl/aix.em (gld*_parse_arge, gld*_before_allocation): Add 
	-blibpath, -bnolibpath support. 

Index: ld/emultempl/aix.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/aix.em,v
retrieving revision 1.20
diff -d -u -p -r1.20 aix.em
--- ld/emultempl/aix.em	18 Mar 2002 12:46:27 -0000	1.20
+++ ld/emultempl/aix.em	30 Apr 2002 23:11:55 -0000
@@ -134,6 +134,9 @@ static lang_input_statement_type *initfi
 /* 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, a
     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, a
     {"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, a
       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 *) "";

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]