* som.c: Don't include <sys/dir.h> or <sys/user.h>.
(som_reloc_queue_find): Call memcmp instead of bcmp. (som_bfd_reloc_type_lookup): Change first argument to bfd *. (compare_syms): Change types of arguments to const void *. (bfd_section_from_som_symbol): Removed unused local found. (som_write_armap): Add elength, map, orl_count and int arguments. (som_write_armap): Use %ld and cast to long for getuid result.
This commit is contained in:
parent
44e8d616e5
commit
82492ca110
2 changed files with 34 additions and 18 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
Wed May 18 08:29:04 1994 Ian Lance Taylor (ian@cygnus.com)
|
||||||
|
|
||||||
|
* som.c: Don't include <sys/dir.h> or <sys/user.h>.
|
||||||
|
(som_reloc_queue_find): Call memcmp instead of bcmp.
|
||||||
|
(som_bfd_reloc_type_lookup): Change first argument to bfd *.
|
||||||
|
(compare_syms): Change types of arguments to const void *.
|
||||||
|
(bfd_section_from_som_symbol): Removed unused local found.
|
||||||
|
(som_write_armap): Add elength, map, orl_count and int arguments.
|
||||||
|
(som_write_armap): Use %ld and cast to long for getuid result.
|
||||||
|
|
||||||
Wed May 18 09:09:32 1994 Jeff Law (law@snake.cs.utah.edu)
|
Wed May 18 09:09:32 1994 Jeff Law (law@snake.cs.utah.edu)
|
||||||
|
|
||||||
* elf32-hppa.h (R_HPPA_ABS_CALL): Define.
|
* elf32-hppa.h (R_HPPA_ABS_CALL): Define.
|
||||||
|
|
42
bfd/som.c
42
bfd/som.c
|
@ -31,10 +31,8 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/dir.h>
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <machine/reg.h>
|
#include <machine/reg.h>
|
||||||
#include <sys/user.h> /* After a.out.h */
|
|
||||||
#include <sys/file.h>
|
#include <sys/file.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
@ -197,7 +195,7 @@ static unsigned char * som_reloc_call PARAMS ((bfd *, unsigned char *,
|
||||||
struct reloc_queue *));
|
struct reloc_queue *));
|
||||||
static unsigned long som_count_spaces PARAMS ((bfd *));
|
static unsigned long som_count_spaces PARAMS ((bfd *));
|
||||||
static unsigned long som_count_subspaces PARAMS ((bfd *));
|
static unsigned long som_count_subspaces PARAMS ((bfd *));
|
||||||
static int compare_syms PARAMS ((asymbol **, asymbol **));
|
static int compare_syms PARAMS ((const void *, const void *));
|
||||||
static unsigned long som_compute_checksum PARAMS ((bfd *));
|
static unsigned long som_compute_checksum PARAMS ((bfd *));
|
||||||
static boolean som_prep_headers PARAMS ((bfd *));
|
static boolean som_prep_headers PARAMS ((bfd *));
|
||||||
static int som_sizeof_headers PARAMS ((bfd *, boolean));
|
static int som_sizeof_headers PARAMS ((bfd *, boolean));
|
||||||
|
@ -212,7 +210,7 @@ static boolean som_write_symbol_strings PARAMS ((bfd *, unsigned long,
|
||||||
unsigned *));
|
unsigned *));
|
||||||
static boolean som_begin_writing PARAMS ((bfd *));
|
static boolean som_begin_writing PARAMS ((bfd *));
|
||||||
static const reloc_howto_type * som_bfd_reloc_type_lookup
|
static const reloc_howto_type * som_bfd_reloc_type_lookup
|
||||||
PARAMS ((bfd_arch_info_type *, bfd_reloc_code_real_type));
|
PARAMS ((bfd *, bfd_reloc_code_real_type));
|
||||||
static char som_section_type PARAMS ((const char *));
|
static char som_section_type PARAMS ((const char *));
|
||||||
static int som_decode_symclass PARAMS ((asymbol *));
|
static int som_decode_symclass PARAMS ((asymbol *));
|
||||||
static boolean som_bfd_count_ar_symbols PARAMS ((bfd *, struct lst_header *,
|
static boolean som_bfd_count_ar_symbols PARAMS ((bfd *, struct lst_header *,
|
||||||
|
@ -221,7 +219,8 @@ static boolean som_bfd_count_ar_symbols PARAMS ((bfd *, struct lst_header *,
|
||||||
static boolean som_bfd_fill_in_ar_symbols PARAMS ((bfd *, struct lst_header *,
|
static boolean som_bfd_fill_in_ar_symbols PARAMS ((bfd *, struct lst_header *,
|
||||||
carsym **syms));
|
carsym **syms));
|
||||||
static boolean som_slurp_armap PARAMS ((bfd *));
|
static boolean som_slurp_armap PARAMS ((bfd *));
|
||||||
static boolean som_write_armap PARAMS ((bfd *));
|
static boolean som_write_armap PARAMS ((bfd *, unsigned int, struct orl *,
|
||||||
|
unsigned int, int));
|
||||||
static void som_bfd_derive_misc_symbol_info PARAMS ((bfd *, asymbol *,
|
static void som_bfd_derive_misc_symbol_info PARAMS ((bfd *, asymbol *,
|
||||||
struct som_misc_symbol_info *));
|
struct som_misc_symbol_info *));
|
||||||
static boolean som_bfd_prep_for_ar_write PARAMS ((bfd *, unsigned int *,
|
static boolean som_bfd_prep_for_ar_write PARAMS ((bfd *, unsigned int *,
|
||||||
|
@ -1063,16 +1062,16 @@ som_reloc_queue_find (p, size, queue)
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
struct reloc_queue *queue;
|
struct reloc_queue *queue;
|
||||||
{
|
{
|
||||||
if (queue[0].reloc && !bcmp (p, queue[0].reloc, size)
|
if (queue[0].reloc && !memcmp (p, queue[0].reloc, size)
|
||||||
&& size == queue[0].size)
|
&& size == queue[0].size)
|
||||||
return 0;
|
return 0;
|
||||||
if (queue[1].reloc && !bcmp (p, queue[1].reloc, size)
|
if (queue[1].reloc && !memcmp (p, queue[1].reloc, size)
|
||||||
&& size == queue[1].size)
|
&& size == queue[1].size)
|
||||||
return 1;
|
return 1;
|
||||||
if (queue[2].reloc && !bcmp (p, queue[2].reloc, size)
|
if (queue[2].reloc && !memcmp (p, queue[2].reloc, size)
|
||||||
&& size == queue[2].size)
|
&& size == queue[2].size)
|
||||||
return 2;
|
return 2;
|
||||||
if (queue[3].reloc && !bcmp (p, queue[3].reloc, size)
|
if (queue[3].reloc && !memcmp (p, queue[3].reloc, size)
|
||||||
&& size == queue[3].size)
|
&& size == queue[3].size)
|
||||||
return 3;
|
return 3;
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -1530,9 +1529,10 @@ hppa_som_gen_reloc_type (abfd, base_type, format, field)
|
||||||
/* Return the address of the correct entry in the PA SOM relocation
|
/* Return the address of the correct entry in the PA SOM relocation
|
||||||
howto table. */
|
howto table. */
|
||||||
|
|
||||||
|
/*ARGSUSED*/
|
||||||
static const reloc_howto_type *
|
static const reloc_howto_type *
|
||||||
som_bfd_reloc_type_lookup (arch, code)
|
som_bfd_reloc_type_lookup (abfd, code)
|
||||||
bfd_arch_info_type *arch;
|
bfd *abfd;
|
||||||
bfd_reloc_code_real_type code;
|
bfd_reloc_code_real_type code;
|
||||||
{
|
{
|
||||||
if ((int) code < (int) R_NO_RELOCATION + 255)
|
if ((int) code < (int) R_NO_RELOCATION + 255)
|
||||||
|
@ -2168,11 +2168,13 @@ som_count_subspaces (abfd)
|
||||||
count. Doing so compacts the relocation stream. */
|
count. Doing so compacts the relocation stream. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
compare_syms (sym1, sym2)
|
compare_syms (arg1, arg2)
|
||||||
asymbol **sym1;
|
const PTR arg1;
|
||||||
asymbol **sym2;
|
const PTR arg2;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
asymbol **sym1 = (asymbol **) arg1;
|
||||||
|
asymbol **sym2 = (asymbol **) arg2;
|
||||||
unsigned int count1, count2;
|
unsigned int count1, count2;
|
||||||
|
|
||||||
/* Get relocation count for each symbol. Note that the count
|
/* Get relocation count for each symbol. Note that the count
|
||||||
|
@ -3612,7 +3614,6 @@ bfd_section_from_som_symbol (abfd, symbol)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
unsigned int value = symbol->symbol_value;
|
unsigned int value = symbol->symbol_value;
|
||||||
unsigned int found = 0;
|
|
||||||
|
|
||||||
/* For executables we will have to use the symbol's address and
|
/* For executables we will have to use the symbol's address and
|
||||||
find out what section would contain that address. Yuk. */
|
find out what section would contain that address. Yuk. */
|
||||||
|
@ -5342,9 +5343,14 @@ som_bfd_ar_write_symbol_stuff (abfd, nsyms, string_size, lst)
|
||||||
|
|
||||||
You'll never believe this is really how armaps are handled in SOM... */
|
You'll never believe this is really how armaps are handled in SOM... */
|
||||||
|
|
||||||
|
/*ARGSUSED*/
|
||||||
static boolean
|
static boolean
|
||||||
som_write_armap (abfd)
|
som_write_armap (abfd, elength, map, orl_count, stridx)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
|
unsigned int elength;
|
||||||
|
struct orl *map;
|
||||||
|
unsigned int orl_count;
|
||||||
|
int stridx;
|
||||||
{
|
{
|
||||||
bfd *curr_bfd;
|
bfd *curr_bfd;
|
||||||
struct stat statbuf;
|
struct stat statbuf;
|
||||||
|
@ -5429,8 +5435,8 @@ som_write_armap (abfd)
|
||||||
|
|
||||||
sprintf (hdr.ar_name, "/ ");
|
sprintf (hdr.ar_name, "/ ");
|
||||||
sprintf (hdr.ar_date, "%ld", bfd_ardata (abfd)->armap_timestamp);
|
sprintf (hdr.ar_date, "%ld", bfd_ardata (abfd)->armap_timestamp);
|
||||||
sprintf (hdr.ar_uid, "%d", getuid ());
|
sprintf (hdr.ar_uid, "%ld", (long) getuid ());
|
||||||
sprintf (hdr.ar_gid, "%d", getgid ());
|
sprintf (hdr.ar_gid, "%ld", (long) getgid ());
|
||||||
sprintf (hdr.ar_mode, "%-8o", (unsigned int) statbuf.st_mode);
|
sprintf (hdr.ar_mode, "%-8o", (unsigned int) statbuf.st_mode);
|
||||||
sprintf (hdr.ar_size, "%-10d", (int) lst_size);
|
sprintf (hdr.ar_size, "%-10d", (int) lst_size);
|
||||||
hdr.ar_fmag[0] = '`';
|
hdr.ar_fmag[0] = '`';
|
||||||
|
|
Loading…
Reference in a new issue