* deffilep.y (def_image_name): If the image name does not have
authorDanny Smith <dannysmith@users.sourceforge.net>
Wed, 1 Feb 2006 21:28:29 +0000 (21:28 +0000)
committerDanny Smith <dannysmith@users.sourceforge.net>
Wed, 1 Feb 2006 21:28:29 +0000 (21:28 +0000)
a suffix, append the default.
* ld.texinfo: Document NAME, LIBRARY usage in PE-COFF .def files.

ld/ChangeLog
ld/deffilep.y
ld/ld.texinfo

index f06eade6d5f76768147ee09b982493cd413e14a0..81a0e3981580d04c0c2980e741cd8e9240d4c1a4 100644 (file)
@@ -1,3 +1,9 @@
+2006-02-01  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * deffilep.y (def_image_name): If the image name does not have
+       a suffix, append the default.
+       * ld.texinfo: Document NAME, LIBRARY usage in PE-COFF .def files.
+
 2006-01-31  Danny Smith  dannysmith@users.sourceforge.net
 
        * NEWS: Mention support for forward exports in PE-COFF dll's.
index d349537ee6f63804a5ab0eed05659cf175ece6e4..78da27a1d97615ae45cddcf2c4d2474637831458 100644 (file)
@@ -654,7 +654,16 @@ def_image_name (const char *name, int base, int is_dll)
          def_filename, linenumber, is_dll ? "LIBRARY" : "NAME", name);
   if (def->name)
     free (def->name);
-  def->name = xstrdup (image_name);
+  /* Append the default suffix, if none specified.  */ 
+   if (strchr (image_name, '.') == 0)
+     {
+        const char * suffix = is_dll ? ".dll" : ".exe";
+
+        def->name = xmalloc (strlen (image_name) + strlen (suffix) + 1);
+        sprintf (def->name, "%s%s", image_name, suffix);
+     }
+  else
+    def->name = xstrdup (image_name);
   def->base_address = base;
   def->is_dll = is_dll;
 }
index 4f809f3ec536d414247d60a41b6a11a06bbc88c5..d455727f5ccfe69d1fa2ea3e576041f7db3349e1 100644 (file)
@@ -5598,6 +5598,22 @@ by "forwarding" to another module and treating it as an alias for
 @code{afoo} exported from the DLL @samp{abc.dll}. The final symbol
 @code{var1} is declared to be a data object.
 
+The optional @code{LIBRARY <name>} command indicates the @emph{internal}
+name of the output DLL. If @samp{<name>} does not include a suffix,
+the default library suffix, @samp{.DLL} is appended.
+
+When the .DEF file is used to build an application. rather than a
+library, the @code{NAME <name>} command shoud be used instead of
+@code{LIBRARY}. If @samp{<name>} does not include a suffix, the default
+executable suffix, @samp{.EXE} is appended. 
+
+With either @code{LIBRARY <name>} or @code{NAME <name>} the optional
+specification @code{BASE = <number>} may be used to specify a
+non-default base address for the image. 
+
+If neither @code{LIBRARY <name>} nor  @code{NAME <name>} is specified,
+the internal name is the same as the filename specified on the command line. 
+
 The complete specification of an export symbol is:
 
 @example