* defilep.y (def_name, def_library): Combine into...
authorDanny Smith <dannysmith@users.sourceforge.net>
Sun, 16 Jan 2005 09:18:35 +0000 (09:18 +0000)
committerDanny Smith <dannysmith@users.sourceforge.net>
Sun, 16 Jan 2005 09:18:35 +0000 (09:18 +0000)
(def_image_name): New function.  Strip name to basename,
with warning.

ld/ChangeLog
ld/deffilep.y

index d072d91864cc5998d4619a7e8cfd5b6ec412c6c4..c81d57dc8c464ad7d6c3a89e3ecce4a623cd4f58 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * defilep.y (def_name, def_library): Combine into...
+       (def_image_name): New function.  Strip name to basename,
+       with warning.
+
 2005-01-12  Mark Kettenis  <kettenis@gnu.org>
 
        * configure.in: Be sure to invoke config.sub using the shell.
index 80cf5487f57e25b305d85f1165636e6897c3e1d5..5dc26c6cb397bc17d883f99d768515e0073a11ba 100644 (file)
@@ -83,8 +83,7 @@ static void def_exports (const char *, const char *, int, int);
 static void def_heapsize (int, int);
 static void def_import (const char *, const char *, const char *, const char *,
                        int);
-static void def_library (const char *, int);
-static void def_name (const char *, int);
+static void def_image_name (const char *, int, int);
 static void def_section (const char *, int);
 static void def_section_alt (const char *, const char *);
 static void def_stacksize (int, int);
@@ -122,8 +121,8 @@ start: start command
        ;
 
 command: 
-               NAME opt_name opt_base { def_name ($2, $3); }
-       |       LIBRARY opt_name opt_base { def_library ($2, $3); }
+               NAME opt_name opt_base { def_image_name ($2, $3, 0); }
+       |       LIBRARY opt_name opt_base { def_image_name ($2, $3, 1); }
        |       DESCRIPTION ID { def_description ($2);}
        |       STACKSIZE NUMBER opt_number { def_stacksize ($2, $3);}
        |       HEAPSIZE NUMBER opt_number { def_heapsize ($2, $3);}
@@ -647,23 +646,17 @@ def_file_add_directive (def_file *my_def, const char *param, int len)
 /* Parser Callbacks.  */
 
 static void
-def_name (const char *name, int base)
+def_image_name (const char *name, int base, int is_dll)
 {
+  const char* image_name = lbasename (name);
+  if (image_name != name)
+    einfo ("%s:%d: Warning: path components stripped from %s, '%s'\n",
+         def_filename, linenumber, is_dll ? "LIBRARY" : "NAME", name);
   if (def->name)
     free (def->name);
-  def->name = xstrdup (name);
+  def->name = xstrdup (image_name);
   def->base_address = base;
-  def->is_dll = 0;
-}
-
-static void
-def_library (const char *name, int base)
-{
-  if (def->name)
-    free (def->name);
-  def->name = xstrdup (name);
-  def->base_address = base;
-  def->is_dll = 1;
+  def->is_dll = is_dll;
 }
 
 static void