aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'binutils')
-rw-r--r--binutils/.Sanitize21
-rw-r--r--binutils/ChangeLog9
-rw-r--r--binutils/nlmconv.c40
3 files changed, 17 insertions, 53 deletions
diff --git a/binutils/.Sanitize b/binutils/.Sanitize
index 74b92ee..8edcc12 100644
--- a/binutils/.Sanitize
+++ b/binutils/.Sanitize
@@ -94,24 +94,3 @@ version.c
Things-to-lose:
Do-last:
-
-ppcfiles="ChangeLog nlmconv.c"
-if ( echo $* | grep keep\-powerpc\-netware > /dev/null ) ; then
- if [ -n "${verbose}" ] ; then
- echo Keeping PowerPC NetWare stuff in $ppcfiles.
- fi
-else
- if [ -n "${verbose}" ]; then
- echo -n Removing PowerPC NetWare in `pwd`:
- fi
- for f in $ppcfiles ; do
- if [ -n "${verbose}" ] ; then
- echo -n " " $f
- fi
- sed '/start\-sanitize\-powerpc\-netware/,/end\-sanitize\-powerpc\-netware/d' < $f > new
- if [ -n "${safe}" ] ; then
- mv $f .Recover
- fi
- mv new $f
- done
-fi
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 5bbb12d4..c49b820 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -102,12 +102,10 @@ Thu Apr 21 12:12:26 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
each section in the sections header.
Wed Apr 20 14:34:51 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-start-sanitize-powerpc-netware
* nlmconv.c (powerpc_build_stubs): Take new outbfd argument.
Change caller. Create custom header for new PowerPC NetWare
format.
-end-sanitize-powerpc-netware
* Makefile.in (nlmheader.o, nlmconv.o): Update dependencies.
* nlmconv.c: Include bfd.h and libiberty.h with "", not <>.
@@ -249,7 +247,6 @@ Thu Mar 17 16:20:28 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
(NM_PROG): Change from nm to nm.new.
(install): Remove the .new when installing.
-start-sanitize-powerpc-netware
Wed Mar 16 16:27:05 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* nlmconv.c (powerpc_build_stubs): Set BSF_DYNAMIC flag for each
@@ -257,7 +254,6 @@ Wed Mar 16 16:27:05 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
(powerpc_mangle_relocs): Only reset TOC pointer for a call to a
symbol with BSF_DYNAMIC flag set.
-end-sanitize-powerpc-netware
Tue Mar 15 23:04:13 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
* objcopy.c (filter_symbols): Use bfd_is_local_label to determine
@@ -277,7 +273,6 @@ Mon Mar 14 12:11:01 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* ar.c (write_archive): Close inarch before unlinking it.
-start-sanitize-powerpc-netware
Fri Mar 11 22:20:48 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* nlmconv.c (main): For PowerPC, call powerpc_build_stubs and
@@ -292,7 +287,6 @@ Fri Mar 11 22:20:48 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
Rearrange reloc handling to handle ELF relocs that are not
partial_inplace. Resolve PC relative relocs.
-end-sanitize-powerpc-netware
Wed Mar 9 13:48:11 1994 Steve Chamberlain (sac@jonny.cygnus.com)
* ar.c (move_members): Fix it so that the abi positional modifiers
@@ -322,14 +316,13 @@ Tue Feb 22 18:25:52 1994 Ian Lance Taylor (ian@cygnus.com)
Sun Feb 20 18:47:42 1994 Ian Lance Taylor (ian@lisa.cygnus.com)
* nlmconv.c: Include libiberty.h.
-start-sanitize-powerpc-netware
+
Support for PowerPC NetWare.
* nlmconv.c (main): For PowerPC NetWare, automatically define the
special symbols __toc_start.
(select_output_format): Handle bfd_arch_powerpc.
(mangle_relocs): Likewise.
(powerpc_mangle_relocs): New function.
-end-sanitize-powerpc-netware
Thu Feb 17 09:28:23 1994 David J. Mackenzie (djm@thepub.cygnus.com)
diff --git a/binutils/nlmconv.c b/binutils/nlmconv.c
index db3a967..43b76ca 100644
--- a/binutils/nlmconv.c
+++ b/binutils/nlmconv.c
@@ -138,13 +138,11 @@ static void i386_mangle_relocs PARAMS ((bfd *, asection *, arelent ***,
static void alpha_mangle_relocs PARAMS ((bfd *, asection *, arelent ***,
long *, char *,
bfd_size_type));
-/* start-sanitize-powerpc-netware */
static void powerpc_build_stubs PARAMS ((bfd *, bfd *, asymbol ***, long *));
static void powerpc_resolve_stubs PARAMS ((bfd *, bfd *));
static void powerpc_mangle_relocs PARAMS ((bfd *, asection *, arelent ***,
long *, char *,
bfd_size_type));
-/* end-sanitize-powerpc-netware */
static void default_mangle_relocs PARAMS ((bfd *, asection *, arelent ***,
long *, char *,
bfd_size_type));
@@ -400,7 +398,6 @@ main (argc, argv)
bfd_fatal ("make .nlmsections section");
if (! bfd_set_section_flags (outbfd, secsec, SEC_HAS_CONTENTS))
bfd_fatal ("set .nlmsections flags");
-/* start-sanitize-powerpc-netware */
/* For PowerPC NetWare we need to build stubs for calls to undefined
symbols. Because each stub requires an entry in the TOC section
@@ -409,7 +406,6 @@ main (argc, argv)
goes in setup_sections. */
if (bfd_get_arch (inbfd) == bfd_arch_powerpc)
powerpc_build_stubs (inbfd, outbfd, &symbols, &symcount);
-/* end-sanitize-powerpc-netware */
/* Set up the sections. */
bfd_map_over_sections (inbfd, setup_sections, (PTR) outbfd);
@@ -526,7 +522,7 @@ main (argc, argv)
sym->section = bss_sec;
endsym = sym;
}
-/* start-sanitize-powerpc-netware */
+
/* For PowerPC NetWare, we define __GOT0. This is the start
of the .got section. */
if (bfd_get_arch (inbfd) == bfd_arch_powerpc
@@ -539,7 +535,6 @@ main (argc, argv)
sym->value = got_sec->output_offset;
sym->section = got_sec->output_section;
}
-/* end-sanitize-powerpc-netware */
}
/* If this is a global symbol, check the export list. */
@@ -881,12 +876,10 @@ main (argc, argv)
nlm_version_header (outbfd)->year = ptm->tm_year + 1900;
strncpy (version_hdr->stamp, "VeRsIoN#", 8);
}
-/* start-sanitize-powerpc-netware */
/* Resolve the stubs we build for PowerPC NetWare. */
if (bfd_get_arch (inbfd) == bfd_arch_powerpc)
powerpc_resolve_stubs (inbfd, outbfd);
-/* end-sanitize-powerpc-netware */
/* Copy over the sections. */
bfd_map_over_sections (inbfd, copy_sections, (PTR) outbfd);
@@ -1136,10 +1129,8 @@ select_output_format (arch, mach, bigendian)
return "nlm32-sparc";
case bfd_arch_alpha:
return "nlm32-alpha";
-/* start-sanitize-powerpc-netware */
case bfd_arch_powerpc:
return "nlm32-powerpc";
-/* end-sanitize-powerpc-netware */
default:
fprintf (stderr, "%s: no default NLM format for %s\n",
program_name, bfd_printable_arch_mach (arch, mach));
@@ -1282,11 +1273,11 @@ copy_sections (inbfd, insec, data_ptr)
arelent **combined;
total_count = reloc_count + outsec->reloc_count;
- combined = (arelent **) xmalloc (total_count * sizeof (arelent));
+ combined = (arelent **) xmalloc (total_count * sizeof (arelent *));
memcpy (combined, outsec->orelocation,
- outsec->reloc_count * sizeof (arelent));
+ outsec->reloc_count * sizeof (arelent *));
memcpy (combined + outsec->reloc_count, relocs,
- (size_t) (reloc_count * sizeof (arelent)));
+ (size_t) (reloc_count * sizeof (arelent *)));
free (outsec->orelocation);
reloc_count = total_count;
relocs = combined;
@@ -1355,12 +1346,10 @@ mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr, contents,
alpha_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr,
contents, contents_size);
break;
-/* start-sanitize-powerpc-netware */
case bfd_arch_powerpc:
powerpc_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr,
contents, contents_size);
break;
-/* end-sanitize-powerpc-netware */
default:
default_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr,
contents, contents_size);
@@ -1646,7 +1635,6 @@ alpha_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr, contents,
(*relocs)->address += insec->output_offset;
}
}
-/* start-sanitize-powerpc-netware */
/* We keep a linked list of stubs which we must build. Because BFD
requires us to know the sizes of all sections before we can set the
@@ -1823,20 +1811,25 @@ powerpc_build_stubs (inbfd, outbfd, symbols_ptr, symcount_ptr)
/* PowerPC NetWare requires a custom header. We create it here.
The first word is the header version number, currently 1. The
- second word is the timestamp of the input file. */
+ second word is the timestamp of the input file. Unfortunately,
+ they do not conform to the emergent standard for custom headers.
+ We must fake the version number and timestamp in the offset and
+ length fields. */
memcpy (nlm_custom_header (outbfd)->stamp, "CuStHeAd", 8);
- nlm_custom_header (outbfd)->dataLength = 8;
- nlm_custom_header (outbfd)->data = xmalloc (8);
- bfd_h_put_32 (outbfd, (bfd_vma) 1,
- (bfd_byte *) nlm_custom_header (outbfd)->data);
+ nlm_custom_header (outbfd)->hdrLength = 0;
+ /* Put version number in dataOffset field. */
+ nlm_custom_header (outbfd)->dataOffset = 1;
+ /* Put timestamp in length field. */
{
struct stat s;
if (stat (bfd_get_filename (inbfd), &s) < 0)
s.st_mtime = 0;
- bfd_h_put_32 (outbfd, (bfd_vma) s.st_mtime,
- (bfd_byte *) nlm_custom_header (outbfd)->data + 4);
+ nlm_custom_header (outbfd)->dataLength = s.st_mtime;
}
+ /* No data stamp. */
+ memset (nlm_custom_header (outbfd)->dataStamp, 0,
+ sizeof (nlm_custom_header (outbfd)->dataStamp));
}
/* Resolve all the stubs for PowerPC NetWare. We fill in the contents
@@ -2058,7 +2051,6 @@ powerpc_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr, contents,
rel->address += insec->output_offset;
}
}
-/* end-sanitize-powerpc-netware */
/* Name of linker. */
#ifndef LD_NAME