* deffilep.y (def_image_name): If LIBRARY or NAME statement
specifies an empty string, retain the name specified on command line. * ld.texinfo: Document above
This commit is contained in:
parent
61353e4284
commit
a287798505
|
@ -1,3 +1,10 @@
|
|||
2006-04-01 Danny Smith <dannysmith@users.sourceforge.net>
|
||||
|
||||
* deffilep.y (def_image_name): If LIBRARY or NAME statement
|
||||
specifies an empty string, retain the name specified on command
|
||||
line.
|
||||
* ld.texinfo: Document above.
|
||||
|
||||
2006-03-31 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* ldmisc.c (vfinfo): Revert 2005-10-05 changes. If
|
||||
|
|
|
@ -648,22 +648,30 @@ def_file_add_directive (def_file *my_def, const char *param, int len)
|
|||
static void
|
||||
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);
|
||||
/* Append the default suffix, if none specified. */
|
||||
if (strchr (image_name, '.') == 0)
|
||||
{
|
||||
const char * suffix = is_dll ? ".dll" : ".exe";
|
||||
/* If a LIBRARY or NAME statement is specified without a name, there is nothing
|
||||
to do here. We retain the output filename specified on command line. */
|
||||
if (*name)
|
||||
{
|
||||
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);
|
||||
/* 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->name = xmalloc (strlen (image_name) + strlen (suffix) + 1);
|
||||
sprintf (def->name, "%s%s", image_name, suffix);
|
||||
}
|
||||
else
|
||||
def->name = xstrdup (image_name);
|
||||
}
|
||||
|
||||
/* Honor a BASE address statement, even if LIBRARY string is empty. */
|
||||
def->base_address = base;
|
||||
def->is_dll = is_dll;
|
||||
}
|
||||
|
|
|
@ -5618,7 +5618,8 @@ 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.
|
||||
or they specify an empty string, the internal name is the same as the
|
||||
filename specified on the command line.
|
||||
|
||||
The complete specification of an export symbol is:
|
||||
|
||||
|
|
Loading…
Reference in New Issue