* configure.host (sparc-*-netbsd): use sparcnbsd.
(ns32k-*-netbsd): use ns32knbsd. * hosts/{nbsd,i386nbsd,ns32knbsd,sparcnbsd}.h: New files, NetBSD host support. * sparcnetbsd.c: New file, adds support for NetBSD/sparc. * config/sparc-nbsd.mt: Likewise. * netbsd.h: New file, definitions common to all netbsd ports. * i386netbsd.c: Use it. * ns32knetbsd.c: Use it. * Makefile.in, configure.in, targets.c, config/i386-nbsd.mt, config/ns32k-nbsd.mt: canonicalize netbsd targets to conform to file/variable naming conventions. * i386netbsd.c: New file, renamed from netbsd386.c. * ns32knetbsd.c: New file, renamed from netbsd532.c.
This commit is contained in:
parent
5e39c98765
commit
a3f7a777c6
|
@ -145,6 +145,7 @@ i386aout.c
|
|||
i386bsd.c
|
||||
i386dynix.c
|
||||
i386linux.c
|
||||
i386netbsd.c
|
||||
i386lynx.c
|
||||
i386mach3.c
|
||||
i386os9k.c
|
||||
|
@ -170,8 +171,7 @@ m88kmach3.c
|
|||
makefile.dos
|
||||
mipsbsd.c
|
||||
newsos3.c
|
||||
netbsd386.c
|
||||
netbsd532.c
|
||||
netbsd.h
|
||||
nlm-target.h
|
||||
nlm.c
|
||||
nlm32-alpha.c
|
||||
|
@ -182,6 +182,7 @@ nlm32.c
|
|||
nlm64.c
|
||||
nlmcode.h
|
||||
nlmswap.h
|
||||
ns32knetbsd.c
|
||||
oasys.c
|
||||
opncls.c
|
||||
osf-core.c
|
||||
|
@ -195,6 +196,7 @@ section.c
|
|||
som.c
|
||||
som.h
|
||||
sparclynx.c
|
||||
sparcnetbsd.c
|
||||
srec.c
|
||||
stab-syms.c
|
||||
sunos.c
|
||||
|
|
|
@ -1,3 +1,24 @@
|
|||
Tue Sep 13 11:09:39 1994 J.T. Conklin (jtc@rtl.cygnus.com)
|
||||
|
||||
* configure.host (sparc-*-netbsd): use sparcnbsd.
|
||||
(ns32k-*-netbsd): use ns32knbsd.
|
||||
|
||||
* hosts/{nbsd,i386nbsd,ns32knbsd,sparcnbsd}.h: New files, NetBSD
|
||||
host support.
|
||||
|
||||
* sparcnetbsd.c: New file, adds support for NetBSD/sparc.
|
||||
* config/sparc-nbsd.mt: Likewise.
|
||||
|
||||
* netbsd.h: New file, definitions common to all netbsd ports.
|
||||
* i386netbsd.c: Use it.
|
||||
* ns32knetbsd.c: Use it.
|
||||
|
||||
* Makefile.in, configure.in, targets.c, config/i386-nbsd.mt,
|
||||
config/ns32k-nbsd.mt: canonicalize netbsd targets to conform to
|
||||
file/variable naming conventions.
|
||||
* i386netbsd.c: New file, renamed from netbsd386.c.
|
||||
* ns32knetbsd.c: New file, renamed from netbsd532.c.
|
||||
|
||||
Mon Sep 12 21:56:20 1994 Jeff Law (law@snake.cs.utah.edu)
|
||||
|
||||
* som.c (som_reloc_skip): Correct off-by-one error for 4-byte
|
||||
|
@ -287,7 +308,6 @@ Wed Aug 24 11:49:19 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
|
|||
bytes in bits2.
|
||||
|
||||
* configure.host, config.bfd: Change i[34]86 to i[345]86.
|
||||
|
||||
* coffgen.c (coff_real_object_p): Set obj_conv_table_size here,
|
||||
rather than waiting until coff_slurp_symbol_table.
|
||||
(coff_write_alien_symbol): Just ignore BSF_DEBUGGING symbols.
|
||||
|
|
|
@ -157,8 +157,7 @@ BFD32_BACKENDS = \
|
|||
i386bsd.o \
|
||||
i386linux.o \
|
||||
i386lynx.o \
|
||||
netbsd386.o \
|
||||
netbsd532.o \
|
||||
i386netbsd.o \
|
||||
i386mach3.o \
|
||||
i386os9k.o \
|
||||
ieee.o \
|
||||
|
@ -171,6 +170,7 @@ BFD32_BACKENDS = \
|
|||
nlm32-sparc.o \
|
||||
nlm32-ppc.o \
|
||||
nlm32.o \
|
||||
ns32knetbsd.o \
|
||||
oasys.o \
|
||||
pc532-mach.o \
|
||||
reloc16.o \
|
||||
|
@ -237,7 +237,7 @@ CFILES = libbfd.c opncls.c bfd.c archive.c targets.c cache.c \
|
|||
coff-a29k.c coff-rs6000.c coff-sparc.c coffgen.c format.c \
|
||||
section.c core.c syms.c stab-syms.c reloc.c init.c \
|
||||
coff-m88k.c coff-mips.c coff-sh.c trad-core.c cisco-core.c newsos3.c \
|
||||
i386aout.c i386linux.c netbsd386.c i386mach3.c i386os9k.c \
|
||||
i386aout.c i386linux.c i386mach3.c i386netbsd.c i386os9k.c \
|
||||
bout.c aout-adobe.c coff-we32k.c \
|
||||
i386bsd.c i386dynix.c cpu-h8300.c cpu-i960.c cpu-sparc.c cpu-m68k.c \
|
||||
cpu-m88k.c cpu-vax.c cpu-mips.c cpu-a29k.c cpu-i386.c cpu-powerpc.c \
|
||||
|
@ -614,12 +614,12 @@ i386aout.o: i386aout.c libaout.h $(INCDIR)/bfdlink.h \
|
|||
i386linux.o: i386linux.c $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
|
||||
$(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h libaout.h \
|
||||
$(INCDIR)/bfdlink.h aout-target.h
|
||||
netbsd386.o: netbsd386.c libaout.h $(INCDIR)/bfdlink.h \
|
||||
aout-target.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
|
||||
$(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h
|
||||
i386mach3.o: i386mach3.c $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
|
||||
$(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h libaout.h \
|
||||
$(INCDIR)/bfdlink.h aout-target.h
|
||||
i386netbsd.o: i386netbsd.c libaout.h $(INCDIR)/bfdlink.h \
|
||||
aout-target.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
|
||||
$(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h
|
||||
i386os9k.o: i386os9k.c $(INCDIR)/bfdlink.h libaout.h \
|
||||
$(INCDIR)/os9k.h
|
||||
bout.o: bout.c $(INCDIR)/bfdlink.h genlink.h $(INCDIR)/bout.h \
|
||||
|
|
|
@ -180,6 +180,7 @@ do
|
|||
i386lynx_aout_vec) tb="$tb i386lynx.o lynx-core.o aout32.o stab-syms.o" ;;
|
||||
i386lynx_coff_vec) tb="$tb cf-i386lynx.o cofflink.o lynx-core.o stab-syms.o" ;;
|
||||
i386mach3_vec) tb="$tb i386mach3.o aout32.o stab-syms.o" ;;
|
||||
i386netbsd_vec) tb="$tb i386netbsd.o aout32.o stab-syms.o" ;;
|
||||
i386os9k_vec) tb="$tb i386os9k.o aout32.o stab-syms.o" ;;
|
||||
icoff_big_vec) tb="$tb coff-i960.o" ;;
|
||||
icoff_little_vec) tb="$tb coff-i960.o" ;;
|
||||
|
@ -189,8 +190,6 @@ do
|
|||
m68klynx_aout_vec) tb="$tb m68klynx.o lynx-core.o aout32.o stab-syms.o" ;;
|
||||
m68klynx_coff_vec) tb="$tb cf-m68klynx.o coff-m68k.o cofflink.o lynx-core.o stab-syms.o" ;;
|
||||
m88kbcs_vec) tb="$tb coff-m88k.o" ;;
|
||||
netbsd386_vec) tb="$tb netbsd386.o aout32.o stab-syms.o" ;;
|
||||
netbsd532_vec) tb="$tb netbsd532.o aout-ns32k.o stab-syms.o" ;;
|
||||
newsos3_vec) tb="$tb newsos3.o aout32.o stab-syms.o" ;;
|
||||
nlm32_i386_vec) tb="$tb nlm32-i386.o nlm32.o nlm.o" ;;
|
||||
nlm32_sparc_vec) tb="$tb nlm32-sparc.o nlm32.o nlm.o" ;;
|
||||
|
@ -198,12 +197,14 @@ do
|
|||
target64=true ;;
|
||||
riscix_vec) tb="$tb aout32.o riscix.o stab-syms.o" ;;
|
||||
nlm32_powerpc_vec) tb="$tb nlm32-ppc.o nlm32.o nlm.o" ;;
|
||||
ns32knetbsd_vec) tb="$tb ns32knetbsd.o aout-ns32k.o stab-syms.o" ;;
|
||||
pc532machaout_vec) tb="$tb pc532-mach.o aout-ns32k.o stab-syms.o" ;;
|
||||
rs6000coff_vec) tb="$tb coff-rs6000.o" ;;
|
||||
shcoff_vec) tb="$tb coff-sh.o reloc16.o" ;;
|
||||
som_vec) tb="$tb som.o" ;;
|
||||
sparclynx_aout_vec) tb="$tb sparclynx.o lynx-core.o aout32.o stab-syms.o" ;;
|
||||
sparclynx_coff_vec) tb="$tb cf-sparclynx.o lynx-core.o stab-syms.o" ;;
|
||||
sparcnetbsd_vec) tb="$tb sparcnetbsd.o aout32.o stab-syms.o" ;;
|
||||
sparccoff_vec) tb="$tb coff-sparc.o" ;;
|
||||
srec_vec) tb="$tb srec.o" ;;
|
||||
sunos_big_vec) tb="$tb sunos.o aout32.o stab-syms.o" ;;
|
||||
|
|
|
@ -33,16 +33,16 @@ alphaosf.h
|
|||
apollo68.h
|
||||
apollov68.h
|
||||
decstation.h
|
||||
dgux.h
|
||||
delta68.h
|
||||
delta88.h
|
||||
delta88v4.h
|
||||
dgux.h
|
||||
dose.h
|
||||
dpx2.h
|
||||
go32.h
|
||||
harris.h
|
||||
hp300bsd.h
|
||||
hp300.h
|
||||
hp300bsd.h
|
||||
hppabsd.h
|
||||
hppahpux.h
|
||||
hppaosf.h
|
||||
|
@ -51,6 +51,7 @@ i386bsd.h
|
|||
i386linux.h
|
||||
i386lynx.h
|
||||
i386mach3.h
|
||||
i386nbsd.h
|
||||
i386osf1mk.h
|
||||
i386sco.h
|
||||
i386v.h
|
||||
|
@ -64,9 +65,12 @@ m88kmach3.h
|
|||
miniframe.h
|
||||
mipsbsd.h
|
||||
mipsmach3.h
|
||||
news.h
|
||||
news-mips.h
|
||||
nbsd.h
|
||||
ncr3000.h
|
||||
news-mips.h
|
||||
news.h
|
||||
ns32knbsd.h
|
||||
ns32knetbsd.h
|
||||
pc532mach.h
|
||||
riscos.h
|
||||
rs6000.h
|
||||
|
@ -76,6 +80,8 @@ solaris2.h
|
|||
sparc-ll.h
|
||||
sparc.h
|
||||
sparclynx.h
|
||||
sparcnbsd.h
|
||||
sparcnetbsd.h
|
||||
std-host.h
|
||||
stratus.h
|
||||
sun3.h
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
/* Intel 386 running NetBSD */
|
||||
|
||||
#ifndef hosts_i386bsd_H
|
||||
#define hosts_i386bsd_H
|
||||
|
||||
#include "hosts/nbsd.h"
|
||||
|
||||
#define HOST_MACHINE_ARCH bfd_arch_i386
|
||||
|
||||
#define TRAD_UNIX_CORE_FILE_FAILING_SIGNAL(core_bfd) \
|
||||
((core_bfd)->tdata.trad_core_data->u.u_sig)
|
||||
#define u_comm u_kproc.kp_proc.p_comm
|
||||
#endif
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
/* Architecture independant NetBSD host support */
|
||||
|
||||
#ifndef hosts_nbsd_H_
|
||||
#define hosts_nbsd_H__
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <sys/file.h>
|
||||
#include <machine/param.h>
|
||||
#include <machine/vmparam.h>
|
||||
#include <machine/reg.h>
|
||||
|
||||
#ifndef O_ACCMODE
|
||||
#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
|
||||
#endif
|
||||
|
||||
#define SEEK_SET 0
|
||||
#define SEEK_CUR 1
|
||||
|
||||
#define POSIX_UTIME
|
||||
|
||||
#include "fopen-same.h"
|
||||
|
||||
#define HOST_PAGE_SIZE NBPG
|
||||
#define HOST_TEXT_START_ADDR USRTEXT
|
||||
#define HOST_STACK_END_ADDR USRSTACK
|
||||
|
||||
#endif
|
|
@ -0,0 +1,13 @@
|
|||
/* ns32k running NetBSD */
|
||||
|
||||
#ifndef hosts_ns32knbsd_h
|
||||
#define hosts_ns32knbsd_h
|
||||
|
||||
#include "hosts/nbsd.h"
|
||||
|
||||
#define HOST_MACHINE_ARCH bfd_arch_ns32k
|
||||
|
||||
#define TRAD_UNIX_CORE_FILE_FAILING_SIGNAL(core_bfd) \
|
||||
((core_bfd)->tdata.trad_core_data->u.u_sig)
|
||||
#define u_comm u_kproc.kp_proc.p_comm
|
||||
#endif
|
|
@ -0,0 +1,19 @@
|
|||
/* Sparc running NetBSD */
|
||||
|
||||
#ifndef hosts_sparcnbsd_h
|
||||
#define hosts_sparcnbsd_h
|
||||
|
||||
#include "hosts/nbsd.h"
|
||||
|
||||
#define HOST_MACHINE_ARCH bfd_arch_sparc
|
||||
#define HOST_BIG_ENDIAN_P
|
||||
|
||||
#define TRAD_UNIX_CORE_FILE_FAILING_SIGNAL(core_bfd) \
|
||||
((core_bfd)->tdata.trad_core_data->u.u_sig)
|
||||
#define u_comm u_kproc.kp_proc.p_comm
|
||||
#define TRAD_CORE_REGPOS(core_bfd) \
|
||||
((bfd_vma)(core_bfd)->tdata.trad_core_data->u.u_kproc.kp_proc.p_md.md_tf)
|
||||
|
||||
#define CORE_FPU_OFFSET (sizeof(struct trapframe))
|
||||
|
||||
#endif
|
115
bfd/netbsd386.c
115
bfd/netbsd386.c
|
@ -1,115 +0,0 @@
|
|||
/* BFD back-end for NetBSD/386 a.out-ish binaries.
|
||||
Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
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
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#define BYTES_IN_WORD 4
|
||||
|
||||
/* ZMAGIC files never have the header in the text. */
|
||||
#define N_HEADER_IN_TEXT(x) 0
|
||||
|
||||
/* ZMAGIC files start at address 0. This does not apply to QMAGIC. */
|
||||
#define TEXT_START_ADDR 0
|
||||
#define N_SHARED_LIB(x) 0
|
||||
|
||||
#define PAGE_SIZE 4096
|
||||
#define SEGMENT_SIZE PAGE_SIZE
|
||||
|
||||
#define DEFAULT_ARCH bfd_arch_i386
|
||||
#define MACHTYPE_OK(mtype) ((mtype) == M_386 || (mtype) == M_386_NETBSD || (mtype) == M_UNKNOWN)
|
||||
|
||||
#define MY(OP) CAT(netbsd386_,OP)
|
||||
/* This needs to start with a.out so GDB knows it is an a.out variant. */
|
||||
#define TARGETNAME "a.out-netbsd-386"
|
||||
|
||||
#define N_MAGIC(ex) \
|
||||
( (((ex).a_info)&0xffff0000) ? ((((ex).a_info))&0xffff) : ((ex).a_info))
|
||||
#define N_MACHTYPE(ex) \
|
||||
( (((ex).a_info)&0xffff0000) ? (((((ex).a_info))>>16)&0x03ff) : 0 )
|
||||
# define N_FLAGS(ex) \
|
||||
( (((ex).a_info)&0xffff0000) ? ((((ex).a_info)>>26)&0x3f) : 0 )
|
||||
#define N_SET_INFO(ex, mag,mid,flag) \
|
||||
( (ex).a_info = htonl( (((flag)&0x3f)<<26) | (((mid)&0x03ff)<<16) | \
|
||||
(((mag)&0xffff)) ) )
|
||||
#define N_SET_MAGIC(exec,magic) \
|
||||
((exec).a_info = (((exec).a_info & ~0xffff) | ((magic) & 0xffff)))
|
||||
#define N_SET_MACHTYPE(exec,machtype) \
|
||||
((exec).a_info = \
|
||||
(((exec).a_info & ~(0x3ff<<16)) | (((machtype)&0xff) << 16)))
|
||||
#define N_SET_FLAGS(exec, flags) \
|
||||
((exec).a_info = \
|
||||
(((exec).a_info & ~(0x3f<<26)) | (((flags)&0x3f) << 26)))
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
#include "libaout.h"
|
||||
|
||||
#define N_GETMAGIC2(ex) \
|
||||
( (((ex).a_info)&0xffff0000) ? ((((ex).a_info))&0xffff) : \
|
||||
(((ex).a_info) | 0x10000) )
|
||||
|
||||
#define N_TXTADDR(ex) (N_GETMAGIC2(ex) == (ZMAGIC|0x10000) ? 0 : 4096)
|
||||
#define N_TXTOFF(ex) \
|
||||
( N_GETMAGIC2(ex)==ZMAGIC || N_GETMAGIC2(ex)==(QMAGIC|0x10000) ? \
|
||||
0 : (N_GETMAGIC2(ex)==(ZMAGIC|0x10000) ? 4096 : EXEC_BYTES_SIZE ))
|
||||
#define N_ALIGN(ex,x) \
|
||||
(N_MAGIC(ex) == ZMAGIC || N_MAGIC(ex) == QMAGIC ? \
|
||||
((x) + 4096 - 1) & ~(4096 - 1) : (x))
|
||||
#define N_DATADDR(ex) \
|
||||
N_ALIGN(ex, N_TXTADDR(ex) + (ex).a_text)
|
||||
/* Data segment offset. */
|
||||
#define N_DATOFF(ex) \
|
||||
N_ALIGN(ex, N_TXTOFF(ex) + (ex).a_text)
|
||||
|
||||
/* #define N_BADMAG(x) n_badmag(N_MAGIC(x)) */
|
||||
|
||||
/* On NetBSD, the magic number is always in ntohl's "network" (big-endian)
|
||||
format. */
|
||||
#define SWAP_MAGIC(ext) bfd_getb32 (ext)
|
||||
|
||||
#include "aout-target.h"
|
||||
|
||||
#if 0
|
||||
int
|
||||
n_badmag(x)
|
||||
unsigned long x; {
|
||||
union {
|
||||
unsigned long l;
|
||||
unsigned char c[sizeof(unsigned long)];
|
||||
} l;
|
||||
unsigned char temp;
|
||||
|
||||
printf ("x = %o, OMAGIC = %o, NMAGIC = %o, ZMAGIC = %o, QMAGIC = %o\n",
|
||||
x, OMAGIC, NMAGIC, ZMAGIC, QMAGIC);
|
||||
|
||||
l.l = x;
|
||||
temp = l.c[0];
|
||||
l.c[0] = l.c[3];
|
||||
l.c[3] = temp;
|
||||
temp = l.c[2];
|
||||
l.c[2] = l.c[1];
|
||||
l.c[1] = temp;
|
||||
printf ("\tbyte-swapped(x) = %o\n", l.l);
|
||||
|
||||
return (x != OMAGIC
|
||||
&& x != NMAGIC
|
||||
&& x != ZMAGIC
|
||||
&& x != QMAGIC);
|
||||
}
|
||||
#endif
|
||||
|
196
bfd/netbsd532.c
196
bfd/netbsd532.c
|
@ -1,196 +0,0 @@
|
|||
/* BFD back-end for NetBSD/532 a.out-ish binaries.
|
||||
Copyright (C) 1990, 1991, 1992, 1994 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
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
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
/*
|
||||
* Created by Ian Dall
|
||||
* 5-Jun-94
|
||||
*
|
||||
* Largely a copy of netbsd386.c plus some code from aout-pc532-mach.c
|
||||
*/
|
||||
|
||||
#define BYTES_IN_WORD 4
|
||||
|
||||
/* ZMAGIC files never include the header in the text. */
|
||||
#define N_HEADER_IN_TEXT(x) 1
|
||||
|
||||
#define PAGE_SIZE 0x1000
|
||||
|
||||
/* ZMAGIC files start at address 0. This does not apply to QMAGIC. */
|
||||
#define TEXT_START_ADDR PAGE_SIZE
|
||||
#define N_SHARED_LIB(x) 0
|
||||
|
||||
/* Use a_entry of 0 to distinguish object files from OMAGIC executables */
|
||||
#define N_TXTADDR(x) \
|
||||
((N_MAGIC(x) == OMAGIC) && \
|
||||
((x).a_entry < TEXT_START_ADDR) ? 0 : /* object file or NMAGIC */\
|
||||
N_SHARED_LIB(x) ? 0 : \
|
||||
N_HEADER_IN_TEXT(x) ? \
|
||||
TEXT_START_ADDR + EXEC_BYTES_SIZE : /* no padding */\
|
||||
TEXT_START_ADDR /* a page of padding */\
|
||||
)
|
||||
|
||||
#define SEGMENT_SIZE PAGE_SIZE
|
||||
|
||||
#define DEFAULT_ARCH bfd_arch_ns32k
|
||||
|
||||
#define MY(OP) CAT(netbsd532_,OP)
|
||||
/* This needs to start with a.out so GDB knows it is an a.out variant. */
|
||||
#define TARGETNAME "a.out-netbsd-532"
|
||||
#define MACHTYPE_OK(mtype) ((mtype) == M_532_NETBSD)
|
||||
|
||||
#define N_MAGIC(ex) \
|
||||
( (((ex).a_info)&0xffff0000) ? ((((ex).a_info))&0xffff) : ((ex).a_info))
|
||||
#define N_MACHTYPE(ex) \
|
||||
( (((ex).a_info)&0xffff0000) ? (((((ex).a_info))>>16)&0x03ff) : 0 )
|
||||
#define N_FLAGS(ex) \
|
||||
( (((ex).a_info)&0xffff0000) ? ((((ex).a_info)>>26)&0x3f) : 0 )
|
||||
#define N_SET_INFO(ex, mag,mid,flag) \
|
||||
( (ex).a_info = htonl( (((flag)&0x3f)<<26) | (((mid)&0x03ff)<<16) | \
|
||||
(((mag)&0xffff)) ) )
|
||||
#define N_SET_MAGIC(exec,magic) \
|
||||
((exec).a_info = (((exec).a_info & ~0xffff) | ((magic) & 0xffff)))
|
||||
#define N_SET_MACHTYPE(exec,machtype) \
|
||||
((exec).a_info = \
|
||||
(((exec).a_info & ~(0x3ff<<16)) | (((machtype)&0xff) << 16)))
|
||||
#define N_SET_FLAGS(exec, flags) \
|
||||
((exec).a_info = \
|
||||
(((exec).a_info & ~(0x3f<<26)) | (((flags)&0x3f) << 26)))
|
||||
|
||||
#define N_MAG(MAG) ((MAG) == o_magic? OMAGIC: ((MAG) == z_magic? ZMAGIC: ((MAG) == n_magic? NMAGIC: 0)))
|
||||
|
||||
#define WRITE_HEADERS(abfd, execp) \
|
||||
{ \
|
||||
bfd_size_type text_size; /* dummy vars */ \
|
||||
int mag; \
|
||||
file_ptr text_end; \
|
||||
if (adata(abfd).magic == undecided_magic) \
|
||||
NAME(aout,adjust_sizes_and_vmas) (abfd, &text_size, &text_end); \
|
||||
mag = adata(abfd).magic; \
|
||||
N_SET_INFO(*execp, N_MAG(mag), M_532_NETBSD, aout_backend_info (abfd)->exec_hdr_flags); \
|
||||
\
|
||||
execp->a_syms = bfd_get_symcount (abfd) * EXTERNAL_NLIST_SIZE; \
|
||||
execp->a_entry = bfd_get_start_address (abfd); \
|
||||
\
|
||||
execp->a_trsize = ((obj_textsec (abfd)->reloc_count) * \
|
||||
obj_reloc_entry_size (abfd)); \
|
||||
execp->a_drsize = ((obj_datasec (abfd)->reloc_count) * \
|
||||
obj_reloc_entry_size (abfd)); \
|
||||
NAME(aout,swap_exec_header_out) (abfd, execp, &exec_bytes); \
|
||||
\
|
||||
if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) return false; \
|
||||
if (bfd_write ((PTR) &exec_bytes, 1, EXEC_BYTES_SIZE, abfd) \
|
||||
!= EXEC_BYTES_SIZE) \
|
||||
return false; \
|
||||
/* Now write out reloc info, followed by syms and strings */ \
|
||||
\
|
||||
if (bfd_get_outsymbols (abfd) != (asymbol **) NULL \
|
||||
&& bfd_get_symcount (abfd) != 0) \
|
||||
{ \
|
||||
if (bfd_seek (abfd, (file_ptr)(N_SYMOFF(*execp)), SEEK_SET) \
|
||||
!= 0) \
|
||||
return false; \
|
||||
\
|
||||
if (! NAME(aout,write_syms)(abfd)) return false; \
|
||||
\
|
||||
if (bfd_seek (abfd, (file_ptr)(N_TRELOFF(*execp)), SEEK_SET) \
|
||||
!= 0) \
|
||||
return false; \
|
||||
\
|
||||
if (!NAME(aout,squirt_out_relocs) (abfd, obj_textsec (abfd))) \
|
||||
return false; \
|
||||
if (bfd_seek (abfd, (file_ptr)(N_DRELOFF(*execp)), SEEK_SET) \
|
||||
!= 0) \
|
||||
return false; \
|
||||
\
|
||||
if (!NAME(aout,squirt_out_relocs)(abfd, obj_datasec (abfd))) \
|
||||
return false; \
|
||||
} \
|
||||
}
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
#include "libaout.h"
|
||||
|
||||
|
||||
/* On NetBSD, the magic number is always in ntohl's "network" (big-endian)
|
||||
format. */
|
||||
#define SWAP_MAGIC(ext) bfd_getb32 (ext)
|
||||
|
||||
#include "aout/aout64.h"
|
||||
|
||||
/* Forward declaration. Defined in aout-target.h */
|
||||
|
||||
static boolean MY(set_sizes)();
|
||||
|
||||
static CONST struct aout_backend_data MY(backend_data) = {
|
||||
0, /* zmagic contiguous */
|
||||
1, /* text incl header */
|
||||
0,
|
||||
0, /* text vma? */
|
||||
MY(set_sizes),
|
||||
0, /* exec header is counted */
|
||||
};
|
||||
|
||||
#define MY_backend_data &MY(backend_data)
|
||||
|
||||
/* We can`t use the MYNS macro here for cpp reasons too subtle
|
||||
* for me -- IWD
|
||||
*/
|
||||
#define MY_bfd_reloc_type_lookup ns32kaout_bfd_reloc_type_lookup
|
||||
|
||||
/* libaout doesn't use NAME for these ... */
|
||||
#define MY_get_section_contents aout_32_get_section_contents
|
||||
|
||||
#define MYNSX(OP) CAT(ns32kaout_,OP)
|
||||
CONST struct reloc_howto_struct *
|
||||
MYNSX(bfd_reloc_type_lookup)
|
||||
PARAMS((bfd *abfd AND
|
||||
bfd_reloc_code_real_type code));
|
||||
|
||||
boolean
|
||||
MYNSX(write_object_contents)
|
||||
PARAMS((bfd *abfd));
|
||||
|
||||
static boolean
|
||||
MY(write_object_contents) (abfd)
|
||||
bfd *abfd;
|
||||
{
|
||||
struct external_exec exec_bytes;
|
||||
struct internal_exec *execp = exec_hdr (abfd);
|
||||
|
||||
#if CHOOSE_RELOC_SIZE
|
||||
CHOOSE_RELOC_SIZE(abfd);
|
||||
#else
|
||||
obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
|
||||
#endif
|
||||
|
||||
BFD_ASSERT(bfd_get_arch(abfd) == bfd_arch_ns32k);
|
||||
BFD_ASSERT(bfd_get_mach(abfd) == 32532);
|
||||
N_SET_MACHTYPE (*execp, M_532_NETBSD);
|
||||
|
||||
N_SET_FLAGS (*execp, aout_backend_info (abfd)->exec_hdr_flags);
|
||||
|
||||
WRITE_HEADERS(abfd, execp);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#define MY_write_object_contents MY(write_object_contents)
|
||||
|
||||
#include "aout-target.h"
|
|
@ -0,0 +1,38 @@
|
|||
/* BFD back-end for NetBSD/ns32k a.out-ish binaries.
|
||||
Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
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
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
$Id$
|
||||
*/
|
||||
|
||||
#define BYTES_IN_WORD 4
|
||||
#undef TARGET_IS_BIG_ENDIAN_P
|
||||
|
||||
#define PAGE_SIZE 4096
|
||||
#define SEGMENT_SIZE PAGE_SIZE
|
||||
#define __LDPGSZ 4096
|
||||
|
||||
#define DEFAULT_ARCH bfd_arch_ns32k
|
||||
#define MACHTYPE_OK(mtype) ((mtype) == M_NS32K_NETBSD || (mtype) == M_UNKNOWN)
|
||||
|
||||
#define MY(OP) CAT(pc532netbsd_,OP)
|
||||
/* This needs to start with a.out so GDB knows it is an a.out variant. */
|
||||
#define TARGETNAME "a.out-ns32k-netbsd"
|
||||
|
||||
#include "netbsd.h"
|
||||
|
207
bfd/targets.c
207
bfd/targets.c
|
@ -229,7 +229,7 @@ within the target vector structure, one for each format to check.
|
|||
|
||||
Check the format of a file being read. Return a <<bfd_target *>> or zero.
|
||||
|
||||
. struct bfd_target * (*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *));
|
||||
. const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *));
|
||||
|
||||
Set the format of a file being written.
|
||||
|
||||
|
@ -286,7 +286,8 @@ The general target vector.
|
|||
.CAT(NAME,_truncate_arname),\
|
||||
.CAT(NAME,_write_armap),\
|
||||
.CAT(NAME,_openr_next_archived_file),\
|
||||
.CAT(NAME,_generic_stat_arch_elt)
|
||||
.CAT(NAME,_generic_stat_arch_elt),\
|
||||
.CAT(NAME,_update_armap_timestamp)
|
||||
. boolean (*_bfd_slurp_armap) PARAMS ((bfd *));
|
||||
. boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *));
|
||||
. void (*_bfd_truncate_arname) PARAMS ((bfd *, CONST char *, char *));
|
||||
|
@ -295,9 +296,10 @@ The general target vector.
|
|||
. struct orl *map,
|
||||
. unsigned int orl_count,
|
||||
. int stridx));
|
||||
. bfd * (*openr_next_archived_file) PARAMS ((bfd *arch, bfd *prev));
|
||||
. int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *));
|
||||
.
|
||||
. bfd * (*openr_next_archived_file) PARAMS ((bfd *arch, bfd *prev));
|
||||
. int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *));
|
||||
. boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *));
|
||||
.
|
||||
. {* Entry points used for symbols. *}
|
||||
.#define BFD_JUMP_TABLE_SYMBOLS(NAME)\
|
||||
.CAT(NAME,_get_symtab_upper_bound),\
|
||||
|
@ -417,89 +419,94 @@ in this structure.
|
|||
Alphabetized for easy reference.
|
||||
They are listed a second time below, since
|
||||
we can't intermix extern's and initializers. */
|
||||
extern bfd_target a29kcoff_big_vec;
|
||||
extern bfd_target a_out_adobe_vec;
|
||||
extern bfd_target aout_mips_big_vec;
|
||||
extern bfd_target aout_mips_little_vec;
|
||||
extern bfd_target aout0_big_vec;
|
||||
extern bfd_target apollocoff_vec;
|
||||
extern bfd_target b_out_vec_big_host;
|
||||
extern bfd_target b_out_vec_little_host;
|
||||
extern bfd_target bfd_elf32_big_generic_vec;
|
||||
extern bfd_target bfd_elf32_bigmips_vec;
|
||||
extern bfd_target bfd_elf32_hppa_vec;
|
||||
extern bfd_target bfd_elf32_i386_vec;
|
||||
extern bfd_target bfd_elf32_i860_vec;
|
||||
extern bfd_target bfd_elf32_little_generic_vec;
|
||||
extern bfd_target bfd_elf32_littlemips_vec;
|
||||
extern bfd_target bfd_elf32_m68k_vec;
|
||||
extern bfd_target bfd_elf32_m88k_vec;
|
||||
extern bfd_target bfd_elf32_powerpc_vec;
|
||||
extern bfd_target bfd_elf32_sparc_vec;
|
||||
extern bfd_target bfd_elf64_big_generic_vec;
|
||||
extern bfd_target bfd_elf64_little_generic_vec;
|
||||
extern bfd_target bfd_elf64_sparc_vec;
|
||||
extern bfd_target demo_64_vec;
|
||||
extern bfd_target ecoff_big_vec;
|
||||
extern bfd_target ecoff_little_vec;
|
||||
extern bfd_target ecoffalpha_little_vec;
|
||||
extern bfd_target h8300coff_vec;
|
||||
extern bfd_target h8500coff_vec;
|
||||
extern bfd_target host_aout_vec;
|
||||
extern bfd_target hp300bsd_vec;
|
||||
extern bfd_target hp300hpux_vec;
|
||||
extern bfd_target som_vec;
|
||||
extern bfd_target i386aout_vec;
|
||||
extern bfd_target i386bsd_vec;
|
||||
extern bfd_target i386dynix_vec;
|
||||
extern bfd_target i386os9k_vec;
|
||||
extern bfd_target netbsd386_vec;
|
||||
extern bfd_target i386coff_vec;
|
||||
extern bfd_target go32coff_vec;
|
||||
extern bfd_target i386linux_vec;
|
||||
extern bfd_target i386lynx_aout_vec;
|
||||
extern bfd_target i386lynx_coff_vec;
|
||||
extern bfd_target i386mach3_vec;
|
||||
extern bfd_target icoff_big_vec;
|
||||
extern bfd_target icoff_little_vec;
|
||||
extern bfd_target ieee_vec;
|
||||
extern bfd_target m68kcoff_vec;
|
||||
extern bfd_target m68kcoffun_vec;
|
||||
extern bfd_target m68klynx_aout_vec;
|
||||
extern bfd_target m68klynx_coff_vec;
|
||||
extern bfd_target m88kbcs_vec;
|
||||
extern bfd_target newsos3_vec;
|
||||
extern bfd_target nlm32_i386_vec;
|
||||
extern bfd_target nlm32_sparc_vec;
|
||||
extern bfd_target nlm32_alpha_vec;
|
||||
extern bfd_target nlm32_powerpc_vec;
|
||||
extern bfd_target oasys_vec;
|
||||
extern bfd_target rs6000coff_vec;
|
||||
extern bfd_target shcoff_vec;
|
||||
extern bfd_target sparclynx_aout_vec;
|
||||
extern bfd_target sparclynx_coff_vec;
|
||||
extern bfd_target sparccoff_vec;
|
||||
extern bfd_target sunos_big_vec;
|
||||
extern bfd_target tekhex_vec;
|
||||
extern bfd_target we32kcoff_vec;
|
||||
extern bfd_target z8kcoff_vec;
|
||||
extern const bfd_target a29kcoff_big_vec;
|
||||
extern const bfd_target a_out_adobe_vec;
|
||||
extern const bfd_target aout_mips_big_vec;
|
||||
extern const bfd_target aout_mips_little_vec;
|
||||
extern const bfd_target aout0_big_vec;
|
||||
extern const bfd_target apollocoff_vec;
|
||||
extern const bfd_target b_out_vec_big_host;
|
||||
extern const bfd_target b_out_vec_little_host;
|
||||
extern const bfd_target bfd_elf32_big_generic_vec;
|
||||
extern const bfd_target bfd_elf32_bigmips_vec;
|
||||
extern const bfd_target bfd_elf32_hppa_vec;
|
||||
extern const bfd_target bfd_elf32_i386_vec;
|
||||
extern const bfd_target bfd_elf32_i860_vec;
|
||||
extern const bfd_target bfd_elf32_little_generic_vec;
|
||||
extern const bfd_target bfd_elf32_littlemips_vec;
|
||||
extern const bfd_target bfd_elf32_m68k_vec;
|
||||
extern const bfd_target bfd_elf32_m88k_vec;
|
||||
extern const bfd_target bfd_elf32_powerpc_vec;
|
||||
extern const bfd_target bfd_elf32_sparc_vec;
|
||||
extern const bfd_target bfd_elf64_big_generic_vec;
|
||||
extern const bfd_target bfd_elf64_little_generic_vec;
|
||||
extern const bfd_target bfd_elf64_sparc_vec;
|
||||
extern const bfd_target demo_64_vec;
|
||||
extern const bfd_target ecoff_big_vec;
|
||||
extern const bfd_target ecoff_little_vec;
|
||||
extern const bfd_target ecoffalpha_little_vec;
|
||||
extern const bfd_target h8300coff_vec;
|
||||
extern const bfd_target h8500coff_vec;
|
||||
extern const bfd_target host_aout_vec;
|
||||
extern const bfd_target hp300bsd_vec;
|
||||
extern const bfd_target hp300hpux_vec;
|
||||
extern const bfd_target som_vec;
|
||||
extern const bfd_target i386aout_vec;
|
||||
extern const bfd_target i386bsd_vec;
|
||||
extern const bfd_target i386dynix_vec;
|
||||
extern const bfd_target i386os9k_vec;
|
||||
extern const bfd_target i386coff_vec;
|
||||
extern const bfd_target go32coff_vec;
|
||||
extern const bfd_target i386linux_vec;
|
||||
extern const bfd_target i386lynx_aout_vec;
|
||||
extern const bfd_target i386lynx_coff_vec;
|
||||
extern const bfd_target i386mach3_vec;
|
||||
extern const bfd_target i386netbsd_vec;
|
||||
extern const bfd_target icoff_big_vec;
|
||||
extern const bfd_target icoff_little_vec;
|
||||
extern const bfd_target ieee_vec;
|
||||
extern const bfd_target m68kcoff_vec;
|
||||
extern const bfd_target m68kcoffun_vec;
|
||||
extern const bfd_target m68klynx_aout_vec;
|
||||
extern const bfd_target m68klynx_coff_vec;
|
||||
extern const bfd_target m88kbcs_vec;
|
||||
extern const bfd_target m88kmach3_vec;
|
||||
extern const bfd_target newsos3_vec;
|
||||
extern const bfd_target nlm32_i386_vec;
|
||||
extern const bfd_target nlm32_sparc_vec;
|
||||
extern const bfd_target nlm32_alpha_vec;
|
||||
extern const bfd_target nlm32_powerpc_vec;
|
||||
extern const bfd_target ns32knetbsd_vec;
|
||||
extern const bfd_target oasys_vec;
|
||||
extern const bfd_target pc532machaout_vec;
|
||||
extern const bfd_target riscix_vec;
|
||||
extern const bfd_target rs6000coff_vec;
|
||||
extern const bfd_target shcoff_vec;
|
||||
extern const bfd_target sparclynx_aout_vec;
|
||||
extern const bfd_target sparclynx_coff_vec;
|
||||
extern const bfd_target sparcnetbsd_vec;
|
||||
extern const bfd_target sparccoff_vec;
|
||||
extern const bfd_target sunos_big_vec;
|
||||
extern const bfd_target tekhex_vec;
|
||||
extern const bfd_target we32kcoff_vec;
|
||||
extern const bfd_target z8kcoff_vec;
|
||||
|
||||
/* srec is always included. */
|
||||
extern bfd_target srec_vec;
|
||||
extern bfd_target symbolsrec_vec;
|
||||
extern const bfd_target srec_vec;
|
||||
extern const bfd_target symbolsrec_vec;
|
||||
|
||||
/* All of the xvecs for core files. */
|
||||
extern bfd_target aix386_core_vec;
|
||||
extern bfd_target cisco_core_vec;
|
||||
extern bfd_target hpux_core_vec;
|
||||
extern bfd_target hppabsd_core_vec;
|
||||
extern bfd_target irix_core_vec;
|
||||
extern bfd_target osf_core_vec;
|
||||
extern bfd_target sco_core_vec;
|
||||
extern bfd_target trad_core_vec;
|
||||
extern bfd_target ptrace_core_vec;
|
||||
extern const bfd_target aix386_core_vec;
|
||||
extern const bfd_target cisco_core_vec;
|
||||
extern const bfd_target hpux_core_vec;
|
||||
extern const bfd_target hppabsd_core_vec;
|
||||
extern const bfd_target irix_core_vec;
|
||||
extern const bfd_target osf_core_vec;
|
||||
extern const bfd_target sco_core_vec;
|
||||
extern const bfd_target trad_core_vec;
|
||||
extern const bfd_target ptrace_core_vec;
|
||||
|
||||
bfd_target *bfd_target_vector[] = {
|
||||
const bfd_target * const bfd_target_vector[] = {
|
||||
|
||||
#ifdef SELECT_VECS
|
||||
|
||||
|
@ -526,8 +533,8 @@ bfd_target *bfd_target_vector[] = {
|
|||
&b_out_vec_little_host,
|
||||
|
||||
/* This, and other vectors, may not be used in any *.mt configuration.
|
||||
But that does not mean they are unnecessary. If configured
|
||||
--with-targets=all, objdump or gdb should be able to examine
|
||||
But that does not mean they are unnecessary. If configured with
|
||||
--enable-targets=all, objdump or gdb should be able to examine
|
||||
the file even if we don't recognize the machine type. */
|
||||
&bfd_elf32_big_generic_vec,
|
||||
&bfd_elf32_bigmips_vec,
|
||||
|
@ -574,7 +581,6 @@ bfd_target *bfd_target_vector[] = {
|
|||
#endif
|
||||
&i386aout_vec,
|
||||
&i386bsd_vec,
|
||||
&netbsd386_vec,
|
||||
&i386coff_vec,
|
||||
&go32coff_vec,
|
||||
#if 0
|
||||
|
@ -584,6 +590,11 @@ bfd_target *bfd_target_vector[] = {
|
|||
#endif
|
||||
&i386lynx_aout_vec,
|
||||
&i386lynx_coff_vec,
|
||||
#if 0
|
||||
/* No distinguishing features for Mach 3 executables. */
|
||||
&i386mach3_vec,
|
||||
#endif
|
||||
&i386netbsd_vec,
|
||||
&i386os9k_vec,
|
||||
&icoff_big_vec,
|
||||
&icoff_little_vec,
|
||||
|
@ -593,12 +604,14 @@ bfd_target *bfd_target_vector[] = {
|
|||
&m68klynx_aout_vec,
|
||||
&m68klynx_coff_vec,
|
||||
&m88kbcs_vec,
|
||||
&m88kmach3_vec,
|
||||
&newsos3_vec,
|
||||
&nlm32_i386_vec,
|
||||
&nlm32_sparc_vec,
|
||||
#ifdef BFD64
|
||||
&nlm32_alpha_vec,
|
||||
#endif
|
||||
&ns32knetbsd_vec,
|
||||
#if 0
|
||||
/* We have no oasys tools anymore, so we can't test any of this
|
||||
anymore. If you want to test the stuff yourself, go ahead...
|
||||
|
@ -606,11 +619,17 @@ bfd_target *bfd_target_vector[] = {
|
|||
Worse, since there is no magic number for archives, there
|
||||
can be annoying target mis-matches. */
|
||||
&oasys_vec,
|
||||
#endif
|
||||
&pc532machaout_vec,
|
||||
#if 0
|
||||
/* We have no way of distinguishing this from other a.out variants */
|
||||
&riscix_vec,
|
||||
#endif
|
||||
&rs6000coff_vec,
|
||||
&shcoff_vec,
|
||||
&sparclynx_aout_vec,
|
||||
&sparclynx_coff_vec,
|
||||
&sparcnetbsd_vec,
|
||||
&sunos_big_vec,
|
||||
&aout0_big_vec,
|
||||
#if 0
|
||||
|
@ -656,7 +675,7 @@ bfd_target *bfd_target_vector[] = {
|
|||
/* bfd_default_vector[0] contains either the address of the default vector,
|
||||
if there is one, or zero if there isn't. */
|
||||
|
||||
bfd_target *bfd_default_vector[] = {
|
||||
const bfd_target * const bfd_default_vector[] = {
|
||||
#ifdef DEFAULT_VECTOR
|
||||
&DEFAULT_VECTOR,
|
||||
#endif
|
||||
|
@ -666,14 +685,14 @@ bfd_target *bfd_default_vector[] = {
|
|||
/* When there is an ambiguous match, bfd_check_format_matches puts the
|
||||
names of the matching targets in an array. This variable is the maximum
|
||||
number of entries that the array could possibly need. */
|
||||
CONST size_t _bfd_target_vector_entries = sizeof(bfd_target_vector)/sizeof(*bfd_target_vector);
|
||||
const size_t _bfd_target_vector_entries = sizeof(bfd_target_vector)/sizeof(*bfd_target_vector);
|
||||
|
||||
/*
|
||||
FUNCTION
|
||||
bfd_find_target
|
||||
|
||||
SYNOPSIS
|
||||
bfd_target *bfd_find_target(CONST char *target_name, bfd *abfd);
|
||||
const bfd_target *bfd_find_target(CONST char *target_name, bfd *abfd);
|
||||
|
||||
DESCRIPTION
|
||||
Return a pointer to the transfer vector for the object target
|
||||
|
@ -687,12 +706,12 @@ DESCRIPTION
|
|||
targets to find the one that matches the file being read.
|
||||
*/
|
||||
|
||||
bfd_target *
|
||||
const bfd_target *
|
||||
bfd_find_target (target_name, abfd)
|
||||
CONST char *target_name;
|
||||
bfd *abfd;
|
||||
{
|
||||
bfd_target **target;
|
||||
const bfd_target * const *target;
|
||||
extern char *getenv ();
|
||||
CONST char *targname = (target_name ? target_name :
|
||||
(CONST char *) getenv ("GNUTARGET"));
|
||||
|
@ -720,7 +739,7 @@ FUNCTION
|
|||
bfd_target_list
|
||||
|
||||
SYNOPSIS
|
||||
CONST char **bfd_target_list(void);
|
||||
const char **bfd_target_list(void);
|
||||
|
||||
DESCRIPTION
|
||||
Return a freshly malloced NULL-terminated
|
||||
|
@ -729,7 +748,7 @@ DESCRIPTION
|
|||
|
||||
*/
|
||||
|
||||
CONST char **
|
||||
const char **
|
||||
bfd_target_list ()
|
||||
{
|
||||
int vec_length= 0;
|
||||
|
@ -738,7 +757,7 @@ bfd_target_list ()
|
|||
to loop endlessly when compiling this file. This avoids it. */
|
||||
volatile
|
||||
#endif
|
||||
bfd_target **target;
|
||||
const bfd_target * const *target;
|
||||
CONST char **name_list, **name_ptr;
|
||||
|
||||
for (target = &bfd_target_vector[0]; *target != NULL; target++)
|
||||
|
|
Loading…
Reference in New Issue