projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** empty log message ***
[deliverable/binutils-gdb.git]
/
binutils
/
nlmconv.c
diff --git
a/binutils/nlmconv.c
b/binutils/nlmconv.c
index aa68b6ea35b388a5473cefae70b0c2d383a82f2f..157b41c21f8b014d86f4c190668616f568b7492c 100644
(file)
--- a/
binutils/nlmconv.c
+++ b/
binutils/nlmconv.c
@@
-1,12
+1,12
@@
/* nlmconv.c -- NLM conversion program
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
/* nlmconv.c -- NLM conversion program
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2003, 2004, 2005
, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GNU Binutils.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This file is part of GNU Binutils.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version
2
of the License, or
+ the Free Software Foundation; either version
3
of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@
-16,7
+16,9
@@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
/* Written by Ian Lance Taylor <ian@cygnus.com>.
/* Written by Ian Lance Taylor <ian@cygnus.com>.
@@
-32,9
+34,10
@@
#endif
#endif
#endif
#endif
+#include "sysdep.h"
#include "bfd.h"
#include "libiberty.h"
#include "bfd.h"
#include "libiberty.h"
-#include "
bucomm
.h"
+#include "
filenames
.h"
#include "safe-ctype.h"
#include "ansidecl.h"
#include "safe-ctype.h"
#include "ansidecl.h"
@@
-53,6
+56,8
@@
#include "coff/ecoff.h"
#endif
#include "coff/ecoff.h"
#endif
+#include "bucomm.h"
+
/* If strerror is just a macro, we want to use the one from libiberty
since it will handle undefined values. */
#undef strerror
/* If strerror is just a macro, we want to use the one from libiberty
since it will handle undefined values. */
#undef strerror
@@
-210,6
+215,8
@@
main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
program_name = argv[0];
xmalloc_set_program_name (program_name);
+ expandargv (&argc, &argv);
+
bfd_init ();
set_default_bfd_target ();
bfd_init ();
set_default_bfd_target ();
@@
-262,7
+269,7
@@
main (int argc, char **argv)
++optind;
if (optind < argc)
show_usage (stderr, 1);
++optind;
if (optind < argc)
show_usage (stderr, 1);
- if (
str
cmp (input_file, output_file) == 0)
+ if (
filename_
cmp (input_file, output_file) == 0)
{
fatal (_("input and output files must be different"));
}
{
fatal (_("input and output files must be different"));
}
@@
-389,9
+396,10
@@
main (int argc, char **argv)
bss_sec = bfd_get_section_by_name (outbfd, NLM_UNINITIALIZED_DATA_NAME);
if (bss_sec == NULL)
{
bss_sec = bfd_get_section_by_name (outbfd, NLM_UNINITIALIZED_DATA_NAME);
if (bss_sec == NULL)
{
- bss_sec = bfd_make_section (outbfd, NLM_UNINITIALIZED_DATA_NAME);
+ bss_sec = bfd_make_section_with_flags (outbfd,
+ NLM_UNINITIALIZED_DATA_NAME,
+ SEC_ALLOC);
if (bss_sec == NULL
if (bss_sec == NULL
- || ! bfd_set_section_flags (outbfd, bss_sec, SEC_ALLOC)
|| ! bfd_set_section_alignment (outbfd, bss_sec, 1))
bfd_fatal (_("make .bss section"));
}
|| ! bfd_set_section_alignment (outbfd, bss_sec, 1))
bfd_fatal (_("make .bss section"));
}
@@
-400,11
+408,10
@@
main (int argc, char **argv)
so that programs which understand it can resurrect the original
sections from the NLM. We will put a pointer to .nlmsections in
the NLM header area. */
so that programs which understand it can resurrect the original
sections from the NLM. We will put a pointer to .nlmsections in
the NLM header area. */
- secsec = bfd_make_section (outbfd, ".nlmsections");
+ secsec = bfd_make_section_with_flags (outbfd, ".nlmsections",
+ SEC_HAS_CONTENTS);
if (secsec == NULL)
bfd_fatal (_("make .nlmsections section"));
if (secsec == NULL)
bfd_fatal (_("make .nlmsections section"));
- if (! bfd_set_section_flags (outbfd, secsec, SEC_HAS_CONTENTS))
- bfd_fatal (_("set .nlmsections flags"));
#ifdef NLMCONV_POWERPC
/* For PowerPC NetWare we need to build stubs for calls to undefined
#ifdef NLMCONV_POWERPC
/* For PowerPC NetWare we need to build stubs for calls to undefined
@@
-470,23
+477,23
@@
main (int argc, char **argv)
++sym->name;
else
{
++sym->name;
else
{
- char *new;
+ char *new
_name
;
- new = xmalloc (strlen (bfd_asymbol_name (sym)) + 1);
- new[0] = outlead;
- strcpy (new + 1, bfd_asymbol_name (sym) + 1);
- sym->name = new;
+ new
_name
= xmalloc (strlen (bfd_asymbol_name (sym)) + 1);
+ new
_name
[0] = outlead;
+ strcpy (new
_name
+ 1, bfd_asymbol_name (sym) + 1);
+ sym->name = new
_name
;
}
}
}
else
{
}
}
}
else
{
- char *new;
+ char *new
_name
;
- new = xmalloc (strlen (bfd_asymbol_name (sym)) + 2);
- new[0] = outlead;
- strcpy (new + 1, bfd_asymbol_name (sym));
- sym->name = new;
+ new
_name
= xmalloc (strlen (bfd_asymbol_name (sym)) + 2);
+ new
_name
[0] = outlead;
+ strcpy (new
_name
+ 1, bfd_asymbol_name (sym));
+ sym->name = new
_name
;
}
}
}
}
@@
-708,11
+715,10
@@
main (int argc, char **argv)
else
{
custom_size = st.st_size;
else
{
custom_size = st.st_size;
- custom_section = bfd_make_section (outbfd, ".nlmcustom");
+ custom_section = bfd_make_section_with_flags (outbfd, ".nlmcustom",
+ SEC_HAS_CONTENTS);
if (custom_section == NULL
if (custom_section == NULL
- || ! bfd_set_section_size (outbfd, custom_section, custom_size)
- || ! bfd_set_section_flags (outbfd, custom_section,
- SEC_HAS_CONTENTS))
+ || ! bfd_set_section_size (outbfd, custom_section, custom_size))
bfd_fatal (_("custom section"));
}
}
bfd_fatal (_("custom section"));
}
}
@@
-729,13
+735,12
@@
main (int argc, char **argv)
else
{
help_size = st.st_size;
else
{
help_size = st.st_size;
- help_section = bfd_make_section (outbfd, ".nlmhelp");
+ help_section = bfd_make_section_with_flags (outbfd, ".nlmhelp",
+ SEC_HAS_CONTENTS);
if (help_section == NULL
if (help_section == NULL
- || ! bfd_set_section_size (outbfd, help_section, help_size)
- || ! bfd_set_section_flags (outbfd, help_section,
- SEC_HAS_CONTENTS))
+ || ! bfd_set_section_size (outbfd, help_section, help_size))
bfd_fatal (_("help section"));
bfd_fatal (_("help section"));
-
strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8
);
+
LITMEMCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs"
);
}
}
if (message_file != NULL)
}
}
if (message_file != NULL)
@@
-751,13
+756,13
@@
main (int argc, char **argv)
else
{
message_size = st.st_size;
else
{
message_size = st.st_size;
- message_section = bfd_make_section (outbfd, ".nlmmessages");
+ message_section = bfd_make_section_with_flags (outbfd,
+ ".nlmmessages",
+ SEC_HAS_CONTENTS);
if (message_section == NULL
if (message_section == NULL
- || ! bfd_set_section_size (outbfd, message_section, message_size)
- || ! bfd_set_section_flags (outbfd, message_section,
- SEC_HAS_CONTENTS))
+ || ! bfd_set_section_size (outbfd, message_section, message_size))
bfd_fatal (_("message section"));
bfd_fatal (_("message section"));
-
strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8
);
+
LITMEMCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs"
);
}
}
if (modules != NULL)
}
}
if (modules != NULL)
@@
-767,11
+772,10
@@
main (int argc, char **argv)
module_size = 0;
for (l = modules; l != NULL; l = l->next)
module_size += strlen (l->string) + 1;
module_size = 0;
for (l = modules; l != NULL; l = l->next)
module_size += strlen (l->string) + 1;
- module_section = bfd_make_section (outbfd, ".nlmmodules");
+ module_section = bfd_make_section_with_flags (outbfd, ".nlmmodules",
+ SEC_HAS_CONTENTS);
if (module_section == NULL
if (module_section == NULL
- || ! bfd_set_section_size (outbfd, module_section, module_size)
- || ! bfd_set_section_flags (outbfd, module_section,
- SEC_HAS_CONTENTS))
+ || ! bfd_set_section_size (outbfd, module_section, module_size))
bfd_fatal (_("module section"));
}
if (rpc_file != NULL)
bfd_fatal (_("module section"));
}
if (rpc_file != NULL)
@@
-787,13
+791,12
@@
main (int argc, char **argv)
else
{
rpc_size = st.st_size;
else
{
rpc_size = st.st_size;
- rpc_section = bfd_make_section (outbfd, ".nlmrpc");
+ rpc_section = bfd_make_section_with_flags (outbfd, ".nlmrpc",
+ SEC_HAS_CONTENTS);
if (rpc_section == NULL
if (rpc_section == NULL
- || ! bfd_set_section_size (outbfd, rpc_section, rpc_size)
- || ! bfd_set_section_flags (outbfd, rpc_section,
- SEC_HAS_CONTENTS))
+ || ! bfd_set_section_size (outbfd, rpc_section, rpc_size))
bfd_fatal (_("rpc section"));
bfd_fatal (_("rpc section"));
-
strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8
);
+
LITMEMCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs"
);
}
}
if (sharelib_file != NULL)
}
}
if (sharelib_file != NULL)
@@
-843,27
+846,27
@@
main (int argc, char **argv)
if (shared_offset > (size_t) sharedhdr.publicsOffset)
shared_offset = sharedhdr.publicsOffset;
shared_size = st.st_size - shared_offset;
if (shared_offset > (size_t) sharedhdr.publicsOffset)
shared_offset = sharedhdr.publicsOffset;
shared_size = st.st_size - shared_offset;
- shared_section = bfd_make_section (outbfd, ".nlmshared");
+ shared_section = bfd_make_section_with_flags (outbfd,
+ ".nlmshared",
+ SEC_HAS_CONTENTS);
if (shared_section == NULL
|| ! bfd_set_section_size (outbfd, shared_section,
if (shared_section == NULL
|| ! bfd_set_section_size (outbfd, shared_section,
- shared_size)
- || ! bfd_set_section_flags (outbfd, shared_section,
- SEC_HAS_CONTENTS))
+ shared_size))
bfd_fatal (_("shared section"));
bfd_fatal (_("shared section"));
-
strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8
);
+
LITMEMCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs"
);
}
}
}
/* Check whether a version was given. */
}
}
}
/* Check whether a version was given. */
- if (
strncmp (version_hdr->stamp, "VeRsIoN#", 8) != 0
)
+ if (
!CONST_STRNEQ (version_hdr->stamp, "VeRsIoN#")
)
non_fatal (_("warning: No version number given"));
/* At least for now, always create an extended header, because that
is what NLMLINK does. */
non_fatal (_("warning: No version number given"));
/* At least for now, always create an extended header, because that
is what NLMLINK does. */
-
strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8
);
+
LITMEMCPY (nlm_extended_header (outbfd)->stamp, "MeSsAgEs"
);
-
strncpy (nlm_cygnus_ext_header (outbfd)->stamp, "CyGnUsEx", 8
);
+
LITMEMCPY (nlm_cygnus_ext_header (outbfd)->stamp, "CyGnUsEx"
);
/* If the date was not given, force it in. */
if (nlm_version_header (outbfd)->month == 0
/* If the date was not given, force it in. */
if (nlm_version_header (outbfd)->month == 0
@@
-878,7
+881,7
@@
main (int argc, char **argv)
nlm_version_header (outbfd)->month = ptm->tm_mon + 1;
nlm_version_header (outbfd)->day = ptm->tm_mday;
nlm_version_header (outbfd)->year = ptm->tm_year + 1900;
nlm_version_header (outbfd)->month = ptm->tm_mon + 1;
nlm_version_header (outbfd)->day = ptm->tm_mday;
nlm_version_header (outbfd)->year = ptm->tm_year + 1900;
-
strncpy (version_hdr->stamp, "VeRsIoN#", 8
);
+
LITMEMCPY (version_hdr->stamp, "VeRsIoN#"
);
}
#ifdef NLMCONV_POWERPC
}
#ifdef NLMCONV_POWERPC
@@
-1103,10
+1106,11
@@
show_usage (FILE *file, int status)
-T --header-file=<file> Read <file> for NLM header information\n\
-l --linker=<linker> Use <linker> for any linking\n\
-d --debug Display on stderr the linker command line\n\
-T --header-file=<file> Read <file> for NLM header information\n\
-l --linker=<linker> Use <linker> for any linking\n\
-d --debug Display on stderr the linker command line\n\
+ @<file> Read options from <file>.\n\
-h --help Display this information\n\
-v --version Display the program's version\n\
"));
-h --help Display this information\n\
-v --version Display the program's version\n\
"));
- if (status == 0)
+ if (
REPORT_BUGS_TO[0] &&
status == 0)
fprintf (file, _("Report bugs to %s\n"), REPORT_BUGS_TO);
exit (status);
}
fprintf (file, _("Report bugs to %s\n"), REPORT_BUGS_TO);
exit (status);
}
@@
-1694,13
+1698,12
@@
powerpc_build_stubs (bfd *inbfd, bfd *outbfd ATTRIBUTE_UNUSED,
/* Make a section to hold stubs. We don't set SEC_HAS_CONTENTS for
the section to prevent copy_sections from reading from it. */
/* Make a section to hold stubs. We don't set SEC_HAS_CONTENTS for
the section to prevent copy_sections from reading from it. */
- stub_sec = bfd_make_section (inbfd, ".stubs");
+ stub_sec = bfd_make_section_with_flags (inbfd, ".stubs",
+ (SEC_CODE
+ | SEC_RELOC
+ | SEC_ALLOC
+ | SEC_LOAD));
if (stub_sec == (asection *) NULL
if (stub_sec == (asection *) NULL
- || ! bfd_set_section_flags (inbfd, stub_sec,
- (SEC_CODE
- | SEC_RELOC
- | SEC_ALLOC
- | SEC_LOAD))
|| ! bfd_set_section_alignment (inbfd, stub_sec, 2))
bfd_fatal (".stubs");
|| ! bfd_set_section_alignment (inbfd, stub_sec, 2))
bfd_fatal (".stubs");
@@
-1708,14
+1711,13
@@
powerpc_build_stubs (bfd *inbfd, bfd *outbfd ATTRIBUTE_UNUSED,
got_sec = bfd_get_section_by_name (inbfd, ".got");
if (got_sec == (asection *) NULL)
{
got_sec = bfd_get_section_by_name (inbfd, ".got");
if (got_sec == (asection *) NULL)
{
- got_sec = bfd_make_section (inbfd, ".got");
+ got_sec = bfd_make_section_with_flags (inbfd, ".got",
+ (SEC_DATA
+ | SEC_RELOC
+ | SEC_ALLOC
+ | SEC_LOAD
+ | SEC_HAS_CONTENTS));
if (got_sec == (asection *) NULL
if (got_sec == (asection *) NULL
- || ! bfd_set_section_flags (inbfd, got_sec,
- (SEC_DATA
- | SEC_RELOC
- | SEC_ALLOC
- | SEC_LOAD
- | SEC_HAS_CONTENTS))
|| ! bfd_set_section_alignment (inbfd, got_sec, 2))
bfd_fatal (".got");
}
|| ! bfd_set_section_alignment (inbfd, got_sec, 2))
bfd_fatal (".got");
}
@@
-1744,9
+1746,9
@@
powerpc_build_stubs (bfd *inbfd, bfd *outbfd ATTRIBUTE_UNUSED,
/* Make a new undefined symbol with the same name but without
the leading `.'. */
/* Make a new undefined symbol with the same name but without
the leading `.'. */
- newsym =
(asymbol *)
xmalloc (sizeof (asymbol));
+ newsym = xmalloc (sizeof (asymbol));
*newsym = *sym;
*newsym = *sym;
- newname =
(char *)
xmalloc (strlen (bfd_asymbol_name (sym)));
+ newname = xmalloc (strlen (bfd_asymbol_name (sym)));
strcpy (newname, bfd_asymbol_name (sym) + 1);
newsym->name = newname;
strcpy (newname, bfd_asymbol_name (sym) + 1);
newsym->name = newname;
@@
-2038,7
+2040,7
@@
powerpc_mangle_relocs (bfd *outbfd, asection *insec,
file. */
static char *
file. */
static char *
-link_inputs (struct string_list *inputs, char *ld, char * m
ap_
file)
+link_inputs (struct string_list *inputs, char *ld, char * mfile)
{
size_t c;
struct string_list *q;
{
size_t c;
struct string_list *q;
@@
-2087,12
+2089,12
@@
link_inputs (struct string_list *inputs, char *ld, char * map_file)
argv[3] = unlink_on_exit;
/* If we have been given the name of a mapfile and that
name is not 'stderr' then pass it on to the linker. */
argv[3] = unlink_on_exit;
/* If we have been given the name of a mapfile and that
name is not 'stderr' then pass it on to the linker. */
- if (m
ap_
file
- && * m
ap_
file
- && strcmp (m
ap_
file, "stderr") == 0)
+ if (mfile
+ && * mfile
+ && strcmp (mfile, "stderr") == 0)
{
argv[4] = (char *) "-Map";
{
argv[4] = (char *) "-Map";
- argv[5] = m
ap_
file;
+ argv[5] = mfile;
i = 6;
}
else
i = 6;
}
else
This page took
0.029238 seconds
and
4
git commands to generate.