Commit 7be1c489 authored by Alan Modra's avatar Alan Modra

* README-vms: Delete.

	* config-gas.com: Delete.
	* makefile.vms: Delete.
	* vmsconf.sh: Delete.
	* config/atof-tahoe.c: Delete.
	* config/m88k-opcode.h: Delete.
	* config/obj-bout.c: Delete.
	* config/obj-bout.h: Delete.
	* config/obj-hp300.c: Delete.
	* config/obj-hp300.h: Delete.
	* config/tc-a29k.c: Delete.
	* config/tc-a29k.h: Delete.
	* config/tc-h8500.c: Delete.
	* config/tc-h8500.h: Delete.
	* config/tc-m88k.c: Delete.
	* config/tc-m88k.h: Delete.
	* config/tc-tahoe.c: Delete.
	* config/tc-tahoe.h: Delete.
	* config/tc-tic80.c: Delete.
	* config/tc-tic80.h: Delete.
	* config/tc-w65.c: Delete.
	* config/tc-w65.h: Delete.
	* config/te-aux.h: Delete.
	* config/te-delt88.h: Delete.
	* config/te-delta.h: Delete.
	* config/te-dpx2.h: Delete.
	* config/te-hp300.h: Delete.
	* config/te-ic960.h: Delete.
	* config/vms-a-conf.h: Delete.
	* doc/c-a29k.texi: Delete.
	* doc/c-h8500.texi: Delete.
	* doc/c-m88k.texi: Delete.
	* README: Remove obsolete examples, and list of supported targets.
	* Makefile.am: Remove a29k, h8500, m88k, tahoe, tic80, w65,
	bout and hp300 support.
	(DEP_FLAGS): Don't define BFD_ASSEMBLER.
	* configure.in: Remove --enable-bfd-assembler, need_bfd,
	primary_bfd_gas.
	* configure.tgt: Remove a29k, h8300-coff, h8500-*, i960 non-elf,
	m68k non bfd, m88k, or32-coff, tic80-*, vax non-bfd, w65k-*, *-nindy.
	* as.c: Remove all non-BFD_ASSEMBLER code, support for above targets.
	* as.h: Likewise.
	* dw2gencfi.c: Likewise.
	* dwarf2dbg.c: Likewise.
	* ehopt.c: Likewise.
	* input-file.c: Likewise.
	* listing.c: Likewise.
	* literal.c: Likewise.
	* messages.c: Likewise.
	* obj.h: Likewise.
	* output-file.c: Likewise.
	* read.c: Likewise.
	* stabs.c: Likewise.
	* struc-symbol.h: Likewise.
	* subsegs.c: Likewise.
	* subsegs.h: Likewise.
	* symbols.c: Likewise.
	* symbols.h: Likewise.
	* tc.h: Likewise.
	* write.c: Likewise.
	* write.h: Likewise.
	* config/aout_gnu.h: Likewise.
	* config/obj-aout.c: Likewise.
	* config/obj-aout.h: Likewise.
	* config/obj-coff.c: Likewise.
	* config/obj-coff.h: Likewise.
	* config/obj-evax.h: Likewise.
	* config/obj-ieee.h: Likewise.
	* config/tc-arm.c: Likewise.
	* config/tc-arm.h: Likewise.
	* config/tc-avr.c: Likewise.
	* config/tc-avr.h: Likewise.
	* config/tc-crx.h: Likewise.
	* config/tc-d10v.h: Likewise.
	* config/tc-d30v.h: Likewise.
	* config/tc-dlx.h: Likewise.
	* config/tc-fr30.h: Likewise.
	* config/tc-frv.h: Likewise.
	* config/tc-h8300.c: Likewise.
	* config/tc-h8300.h: Likewise.
	* config/tc-hppa.h: Likewise.
	* config/tc-i370.h: Likewise.
	* config/tc-i386.c: Likewise.
	* config/tc-i386.h: Likewise.
	* config/tc-i860.h: Likewise.
	* config/tc-i960.c: Likewise.
	* config/tc-i960.h: Likewise.
	* config/tc-ip2k.h: Likewise.
	* config/tc-iq2000.h: Likewise.
	* config/tc-m32c.h: Likewise.
	* config/tc-m32r.h: Likewise.
	* config/tc-m68hc11.h: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-m68k.h: Likewise.
	* config/tc-maxq.c: Likewise.
	* config/tc-maxq.h: Likewise.
	* config/tc-mcore.c: Likewise.
	* config/tc-mcore.h: Likewise.
	* config/tc-mn10200.h: Likewise.
	* config/tc-mn10300.c: Likewise.
	* config/tc-mn10300.h: Likewise.
	* config/tc-ms1.h: Likewise.
	* config/tc-msp430.c: Likewise.
	* config/tc-msp430.h: Likewise.
	* config/tc-ns32k.c: Likewise.
	* config/tc-ns32k.h: Likewise.
	* config/tc-openrisc.h: Likewise.
	* config/tc-or32.c: Likewise.
	* config/tc-or32.h: Likewise.
	* config/tc-ppc.c: Likewise.
	* config/tc-ppc.h: Likewise.
	* config/tc-s390.h: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-sh.h: Likewise.
	* config/tc-sparc.c: Likewise.
	* config/tc-tic30.c: Likewise.
	* config/tc-tic30.h: Likewise.
	* config/tc-tic4x.c: Likewise.
	* config/tc-tic4x.h: Likewise.
	* config/tc-tic54x.c: Likewise.
	* config/tc-tic54x.h: Likewise.
	* config/tc-v850.h: Likewise.
	* config/tc-vax.c: Likewise.
	* config/tc-vax.h: Likewise.
	* config/tc-xstormy16.h: Likewise.
	* config/tc-xtensa.h: Likewise.
	* config/tc-z8k.c: Likewise.
	* config/tc-z8k.h: Likewise.
	* config/vms-a-conf.h
	* doc/Makefile.am: Likewise.
	* doc/all.texi: Likewise.
	* doc/as.texinfo: Likewise.
	* doc/Makefile.in: Regenerate.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* config.in: Regenerate.
	* po/POTFILES.in: Regenerate.
parent f7348dad
2005-08-11 Alan Modra <amodra@bigpond.net.au>
* README-vms: Delete.
* config-gas.com: Delete.
* makefile.vms: Delete.
* vmsconf.sh: Delete.
* config/atof-tahoe.c: Delete.
* config/m88k-opcode.h: Delete.
* config/obj-bout.c: Delete.
* config/obj-bout.h: Delete.
* config/obj-hp300.c: Delete.
* config/obj-hp300.h: Delete.
* config/tc-a29k.c: Delete.
* config/tc-a29k.h: Delete.
* config/tc-h8500.c: Delete.
* config/tc-h8500.h: Delete.
* config/tc-m88k.c: Delete.
* config/tc-m88k.h: Delete.
* config/tc-tahoe.c: Delete.
* config/tc-tahoe.h: Delete.
* config/tc-tic80.c: Delete.
* config/tc-tic80.h: Delete.
* config/tc-w65.c: Delete.
* config/tc-w65.h: Delete.
* config/te-aux.h: Delete.
* config/te-delt88.h: Delete.
* config/te-delta.h: Delete.
* config/te-dpx2.h: Delete.
* config/te-hp300.h: Delete.
* config/te-ic960.h: Delete.
* config/vms-a-conf.h: Delete.
* doc/c-a29k.texi: Delete.
* doc/c-h8500.texi: Delete.
* doc/c-m88k.texi: Delete.
* README: Remove obsolete examples, and list of supported targets.
* Makefile.am: Remove a29k, h8500, m88k, tahoe, tic80, w65,
bout and hp300 support.
(DEP_FLAGS): Don't define BFD_ASSEMBLER.
* configure.in: Remove --enable-bfd-assembler, need_bfd,
primary_bfd_gas.
* configure.tgt: Remove a29k, h8300-coff, h8500-*, i960 non-elf,
m68k non bfd, m88k, or32-coff, tic80-*, vax non-bfd, w65k-*, *-nindy.
* as.c: Remove all non-BFD_ASSEMBLER code, support for above targets.
* as.h: Likewise.
* dw2gencfi.c: Likewise.
* dwarf2dbg.c: Likewise.
* ehopt.c: Likewise.
* input-file.c: Likewise.
* listing.c: Likewise.
* literal.c: Likewise.
* messages.c: Likewise.
* obj.h: Likewise.
* output-file.c: Likewise.
* read.c: Likewise.
* stabs.c: Likewise.
* struc-symbol.h: Likewise.
* subsegs.c: Likewise.
* subsegs.h: Likewise.
* symbols.c: Likewise.
* symbols.h: Likewise.
* tc.h: Likewise.
* write.c: Likewise.
* write.h: Likewise.
* config/aout_gnu.h: Likewise.
* config/obj-aout.c: Likewise.
* config/obj-aout.h: Likewise.
* config/obj-coff.c: Likewise.
* config/obj-coff.h: Likewise.
* config/obj-evax.h: Likewise.
* config/obj-ieee.h: Likewise.
* config/tc-arm.c: Likewise.
* config/tc-arm.h: Likewise.
* config/tc-avr.c: Likewise.
* config/tc-avr.h: Likewise.
* config/tc-crx.h: Likewise.
* config/tc-d10v.h: Likewise.
* config/tc-d30v.h: Likewise.
* config/tc-dlx.h: Likewise.
* config/tc-fr30.h: Likewise.
* config/tc-frv.h: Likewise.
* config/tc-h8300.c: Likewise.
* config/tc-h8300.h: Likewise.
* config/tc-hppa.h: Likewise.
* config/tc-i370.h: Likewise.
* config/tc-i386.c: Likewise.
* config/tc-i386.h: Likewise.
* config/tc-i860.h: Likewise.
* config/tc-i960.c: Likewise.
* config/tc-i960.h: Likewise.
* config/tc-ip2k.h: Likewise.
* config/tc-iq2000.h: Likewise.
* config/tc-m32c.h: Likewise.
* config/tc-m32r.h: Likewise.
* config/tc-m68hc11.h: Likewise.
* config/tc-m68k.c: Likewise.
* config/tc-m68k.h: Likewise.
* config/tc-maxq.c: Likewise.
* config/tc-maxq.h: Likewise.
* config/tc-mcore.c: Likewise.
* config/tc-mcore.h: Likewise.
* config/tc-mn10200.h: Likewise.
* config/tc-mn10300.c: Likewise.
* config/tc-mn10300.h: Likewise.
* config/tc-ms1.h: Likewise.
* config/tc-msp430.c: Likewise.
* config/tc-msp430.h: Likewise.
* config/tc-ns32k.c: Likewise.
* config/tc-ns32k.h: Likewise.
* config/tc-openrisc.h: Likewise.
* config/tc-or32.c: Likewise.
* config/tc-or32.h: Likewise.
* config/tc-ppc.c: Likewise.
* config/tc-ppc.h: Likewise.
* config/tc-s390.h: Likewise.
* config/tc-sh.c: Likewise.
* config/tc-sh.h: Likewise.
* config/tc-sparc.c: Likewise.
* config/tc-tic30.c: Likewise.
* config/tc-tic30.h: Likewise.
* config/tc-tic4x.c: Likewise.
* config/tc-tic4x.h: Likewise.
* config/tc-tic54x.c: Likewise.
* config/tc-tic54x.h: Likewise.
* config/tc-v850.h: Likewise.
* config/tc-vax.c: Likewise.
* config/tc-vax.h: Likewise.
* config/tc-xstormy16.h: Likewise.
* config/tc-xtensa.h: Likewise.
* config/tc-z8k.c: Likewise.
* config/tc-z8k.h: Likewise.
* config/vms-a-conf.h
* doc/Makefile.am: Likewise.
* doc/all.texi: Likewise.
* doc/as.texinfo: Likewise.
* doc/Makefile.in: Regenerate.
* Makefile.in: Regenerate.
* configure: Regenerate.
* config.in: Regenerate.
* po/POTFILES.in: Regenerate.
2005-08-09 Nick Clifton <nickc@redhat.com>
PR 1070
......
This diff is collapsed.
This diff is collapsed.
......@@ -57,14 +57,6 @@ facility to list all supported host and target names or aliases.
abbreviations to full names; you can read the script, if you wish, or
you can use it to test your guesses on abbreviations--for example:
% sh config.sub sun4
sparc-sun-sunos411
% sh config.sub sun3
m68k-sun-sunos411
% sh config.sub decstation
mips-dec-ultrix42
% sh config.sub hp300bsd
m68k-hp-bsd
% sh config.sub i386v
i386-unknown-sysv
% sh config.sub i786v
......@@ -139,75 +131,6 @@ The `--enable' options recognized by software in the gas distribution are:
been done, it's already the default. So generally you won't need to use
this option.
Supported platforms
===================
At this point I believe gas to be ANSI only code for most target cpu's. That
is, there should be relatively few, if any host system dependencies. So
porting (as a cross-assembler) to hosts not yet supported should be fairly
easy. Porting to a new target shouldn't be too tough if it's a variant of one
already supported.
Native assembling should work on:
sun3
sun4
386bsd
bsd/386
delta (m68k-sysv from Motorola)
delta88 (m88k-sysv from Motorola)
GNU/linux
m68k hpux 8.0 (hpux 7.0 may be a problem)
vax bsd, ultrix, vms
hp9000s300
decstation
irix 4
irix 5
miniframe (m68k-sysv from Convergent Technologies)
i386-aix (ps/2)
hppa (hpux 4.3bsd, osf1)
AIX
unixware
sco 3.2v4.2
sco openserver 5.0 (a.k.a. 3.2v5.0 )
sparc solaris
ns32k (netbsd, lites)
I believe that gas as a cross-assembler can currently be targeted for
most of the above hosts, plus
arm
decstation-bsd (a.out format, to be used in BSD 4.4)
ebmon29k
go32 (DOS on i386, with DJGPP -- old a.out version)
H8/300, H8/500 (Hitachi)
i386-aix (ps/2)
i960-coff
mips ecoff (decstation-ultrix, iris, mips magnum, mips-idt-ecoff)
Mitsubishi d10v and d30v
nindy960
powerpc EABI
SH (Hitachi)
sco386
TI tic30 and tic80
vax bsd or ultrix?
vms
vxworks68k
vxworks960
z8000 (Zilog)
MIPS ECOFF support has been added, but GAS will not run a C-style
preprocessor. If you want that, rename your file to have a ".S" suffix, and
run gcc on it. Or run "gcc -xassembler-with-cpp foo.s".
Support for ELF should work now for sparc, hppa, i386, alpha, m68k,
MIPS, powerpc.
Support for sequent (ns32k), tahoe, i860 may be suffering from bitrot.
If you try out gas on some host or target not listed above, please let me know
the results, so I can update the list.
Compiler Support Hacks
======================
......
This diff is collapsed.
......@@ -43,10 +43,7 @@
#include "dwarf2dbg.h"
#include "dw2gencfi.h"
#include "hash.h"
#ifdef BFD_ASSEMBLER
#include "bfdver.h"
#endif
#ifdef HAVE_ITBL_CPU
#include "itbl-ops.h"
......@@ -112,13 +109,11 @@ int debug_memory = 0;
/* Enable verbose mode. */
int verbose = 0;
#ifdef BFD_ASSEMBLER
segT reg_section;
segT expr_section;
segT text_section;
segT data_section;
segT bss_section;
#endif
/* Name of listing file. */
static char *listing_filename = NULL;
......@@ -225,13 +220,8 @@ print_version_id (void)
return;
printed = 1;
#ifdef BFD_ASSEMBLER
fprintf (stderr, _("GNU assembler version %s (%s) using BFD version %s"),
fprintf (stderr, _("GNU assembler version %s (%s) using BFD version %s\n"),
VERSION, TARGET_ALIAS, BFD_VERSION_STRING);
#else
fprintf (stderr, _("GNU assembler version %s (%s)"), VERSION, TARGET_ALIAS);
#endif
fprintf (stderr, "\n");
}
static void
......@@ -276,7 +266,7 @@ Options:\n\
emulate output (default %s)\n"), def_em);
}
#endif
#if defined BFD_ASSEMBLER && (defined OBJ_ELF || defined OBJ_MAYBE_ELF)
#if defined OBJ_ELF || defined OBJ_MAYBE_ELF
fprintf (stream, _("\
--execstack require executable stack for this object\n"));
fprintf (stream, _("\
......@@ -457,7 +447,7 @@ parse_args (int * pargc, char *** pargv)
,{"defsym", required_argument, NULL, OPTION_DEFSYM}
,{"dump-config", no_argument, NULL, OPTION_DUMPCONFIG}
,{"emulation", required_argument, NULL, OPTION_EMULATION}
#if defined BFD_ASSEMBLER && (defined OBJ_ELF || defined OBJ_MAYBE_ELF)
#if defined OBJ_ELF || defined OBJ_MAYBE_ELF
,{"execstack", no_argument, NULL, OPTION_EXECSTACK}
,{"noexecstack", no_argument, NULL, OPTION_NOEXECSTACK}
#endif
......@@ -598,11 +588,7 @@ parse_args (int * pargc, char *** pargv)
case OPTION_VERSION:
/* This output is intended to follow the GNU standards document. */
#ifdef BFD_ASSEMBLER
printf (_("GNU assembler %s\n"), BFD_VERSION_STRING);
#else
printf (_("GNU assembler %s\n"), VERSION);
#endif
printf (_("Copyright 2005 Free Software Foundation, Inc.\n"));
printf (_("\
This program is free software; you may redistribute it under the terms of\n\
......@@ -643,11 +629,7 @@ the GNU General Public License. This program has absolutely no warranty.\n"));
if (*s == '\0')
as_fatal (_("bad defsym; format is --defsym name=value"));
*s++ = '\0';
#ifdef BFD_ASSEMBLER
i = bfd_scan_vma (s, (const char **) NULL, 0);
#else
i = strtol (s, (char **) NULL, 0);
#endif
n = xmalloc (sizeof *n);
n->next = defsyms;
n->name = optarg;
......@@ -774,7 +756,7 @@ the GNU General Public License. This program has absolutely no warranty.\n"));
flag_fatal_warnings = 1;
break;
#if defined BFD_ASSEMBLER && (defined OBJ_ELF || defined OBJ_MAYBE_ELF)
#if defined OBJ_ELF || defined OBJ_MAYBE_ELF
case OPTION_EXECSTACK:
flag_execstack = 1;
flag_noexecstack = 0;
......@@ -983,44 +965,10 @@ static void
perform_an_assembly_pass (int argc, char ** argv)
{
int saw_a_file = 0;
#ifdef BFD_ASSEMBLER
flagword applicable;
#endif
need_pass_2 = 0;
#ifndef BFD_ASSEMBLER
#ifdef MANY_SEGMENTS
{
unsigned int i;
for (i = SEG_E0; i < SEG_UNKNOWN; i++)
segment_info[i].fix_root = 0;
}
/* Create the three fixed ones. */
{
segT seg;
#ifdef TE_APOLLO
seg = subseg_new (".wtext", 0);
#else
seg = subseg_new (".text", 0);
#endif
assert (seg == SEG_E0);
seg = subseg_new (".data", 0);
assert (seg == SEG_E1);
seg = subseg_new (".bss", 0);
assert (seg == SEG_E2);
#ifdef TE_APOLLO
create_target_segments ();
#endif
}
#else /* not MANY_SEGMENTS. */
text_fix_root = NULL;
data_fix_root = NULL;
bss_fix_root = NULL;
#endif /* not MANY_SEGMENTS. */
#else /* BFD_ASSEMBLER. */
/* Create the standard sections, and those the assembler uses
internally. */
text_section = subseg_new (TEXT_SECTION_NAME, 0);
......@@ -1042,12 +990,10 @@ perform_an_assembly_pass (int argc, char ** argv)
reg_section = subseg_new ("*GAS `reg' section*", 0);
expr_section = subseg_new ("*GAS `expr' section*", 0);
#endif /* BFD_ASSEMBLER. */
subseg_set (text_section, 0);
/* This may add symbol table entries, which requires having an open BFD,
and sections already created, in BFD_ASSEMBLER mode. */
and sections already created. */
md_begin ();
#ifdef USING_CGEN
......@@ -1113,10 +1059,8 @@ main (int argc, char ** argv)
out_file_name = OBJ_DEFAULT_OUTPUT_FILE_NAME;
hex_init ();
#ifdef BFD_ASSEMBLER
bfd_init ();
bfd_set_error_program_name (myname);
#endif
#ifdef USE_EMULATIONS
select_emulation_mode (argc, argv);
......@@ -1140,21 +1084,13 @@ main (int argc, char ** argv)
#ifdef TC_I960
macro_strip_at = flag_mri;
#endif
#ifdef TC_A29K
/* For compatibility with the AMD 29K family macro assembler
specification. */
flag_macro_alternate = 1;
macro_strip_at = 1;
#endif
macro_init (flag_macro_alternate, flag_mri, macro_strip_at, macro_expr);
PROGRESS (1);
#ifdef BFD_ASSEMBLER
output_file_create (out_file_name);
assert (stdoutput != 0);
#endif
#ifdef tc_init_after_args
tc_init_after_args ();
......@@ -1189,7 +1125,7 @@ main (int argc, char ** argv)
md_end ();
#endif
#if defined BFD_ASSEMBLER && (defined OBJ_ELF || defined OBJ_MAYBE_ELF)
#if defined OBJ_ELF || defined OBJ_MAYBE_ELF
if ((flag_execstack || flag_noexecstack)
&& OUTPUT_FLAVOR == bfd_target_elf_flavour)
{
......@@ -1216,13 +1152,11 @@ main (int argc, char ** argv)
else
keep_it = 0;
#if defined (BFD_ASSEMBLER) || !defined (BFD)
/* This used to be done at the start of write_object_file in
write.c, but that caused problems when doing listings when
keep_it was zero. This could probably be moved above md_end, but
I didn't want to risk the change. */
subsegs_finish ();
#endif
if (keep_it)
write_object_file ();
......@@ -1232,10 +1166,7 @@ main (int argc, char ** argv)
#endif
#ifndef OBJ_VMS /* Does its own file handling. */
#ifndef BFD_ASSEMBLER
if (keep_it)
#endif
output_file_close (out_file_name);
output_file_close (out_file_name);
#endif
if (flag_fatal_warnings && had_warnings () > 0 && had_errors () == 0)
......
......@@ -111,9 +111,7 @@ extern void *alloca ();
/* Now GNU header files... */
#include "ansidecl.h"
#ifdef BFD_ASSEMBLER
#include "bfd.h"
#endif
#include "libiberty.h"
/* Define the standard progress macros. */
......@@ -207,14 +205,9 @@ extern char *strstr ();
/* These are assembler-wide concepts */
#ifdef BFD_ASSEMBLER
extern bfd *stdoutput;
typedef bfd_vma addressT;
typedef bfd_signed_vma offsetT;
#else
typedef unsigned long addressT;
typedef long offsetT;
#endif
/* Type of symbol value, etc. For use in prototypes. */
typedef addressT valueT;
......@@ -243,49 +236,11 @@ typedef addressT valueT;
/* subsegs.c Sub-segments. Also, segment(=expression type)s.*/
#ifndef BFD_ASSEMBLER
#ifdef MANY_SEGMENTS
#include "bfd.h"
#define N_SEGMENTS 40
#define SEG_NORMAL(x) ((x) >= SEG_E0 && (x) <= SEG_E39)
#define SEG_LIST SEG_E0,SEG_E1,SEG_E2,SEG_E3,SEG_E4,SEG_E5,SEG_E6,SEG_E7,SEG_E8,SEG_E9,\
SEG_E10,SEG_E11,SEG_E12,SEG_E13,SEG_E14,SEG_E15,SEG_E16,SEG_E17,SEG_E18,SEG_E19,\
SEG_E20,SEG_E21,SEG_E22,SEG_E23,SEG_E24,SEG_E25,SEG_E26,SEG_E27,SEG_E28,SEG_E29,\
SEG_E30,SEG_E31,SEG_E32,SEG_E33,SEG_E34,SEG_E35,SEG_E36,SEG_E37,SEG_E38,SEG_E39
#define SEG_TEXT SEG_E0
#define SEG_DATA SEG_E1
#define SEG_BSS SEG_E2
#define SEG_LAST SEG_E39
#else
#define N_SEGMENTS 3
#define SEG_NORMAL(x) ((x) == SEG_TEXT || (x) == SEG_DATA || (x) == SEG_BSS)
#define SEG_LIST SEG_TEXT,SEG_DATA,SEG_BSS
#endif
typedef enum _segT
{
SEG_ABSOLUTE = 0,
SEG_LIST,
SEG_UNKNOWN,
SEG_GOOF, /* Only happens if AS has a logic error. */
/* Invented so we don't crash printing
error message involving weird segment. */
SEG_EXPR, /* Intermediate expression values. */
SEG_DEBUG, /* Debug segment */
SEG_NTV, /* Transfert vector preload segment. */
SEG_PTV, /* Transfert vector postload segment. */
SEG_REGISTER /* Mythical: a register-valued expression. */
} segT;
#define SEG_MAXIMUM_ORDINAL (SEG_REGISTER)
#else
typedef asection *segT;
#define SEG_NORMAL(SEG) ( (SEG) != absolute_section \
&& (SEG) != undefined_section \
&& (SEG) != reg_section \
&& (SEG) != expr_section)
#endif
typedef int subsegT;
/* What subseg we are accessing now? */
......@@ -294,33 +249,13 @@ COMMON subsegT now_subseg;
/* Segment our instructions emit to. */
COMMON segT now_seg;
#ifdef BFD_ASSEMBLER
#define segment_name(SEG) bfd_get_section_name (stdoutput, SEG)
#else
extern char const *const seg_name[];
#define segment_name(SEG) seg_name[(int) (SEG)]
#endif
#ifndef BFD_ASSEMBLER
extern int section_alignment[];
#endif
#ifdef BFD_ASSEMBLER
extern segT reg_section, expr_section;
/* Shouldn't these be eliminated someday? */
extern segT text_section, data_section, bss_section;
#define absolute_section bfd_abs_section_ptr
#define undefined_section bfd_und_section_ptr
#else
#define reg_section SEG_REGISTER
#define expr_section SEG_EXPR
#define text_section SEG_TEXT
#define data_section SEG_DATA
#define bss_section SEG_BSS
#define absolute_section SEG_ABSOLUTE
#define undefined_section SEG_UNKNOWN
#endif
enum _relax_state
{
......@@ -602,9 +537,7 @@ int seg_not_empty_p (segT);
void start_dependencies (char *);
void register_dependency (char *);
void print_dependencies (void);
#ifdef BFD_ASSEMBLER
segT subseg_get (const char *, int);
#endif
struct expressionS;
struct fix;
......@@ -612,10 +545,8 @@ typedef struct symbol symbolS;
struct relax_type;
typedef struct frag fragS;
#ifdef BFD_ASSEMBLER
/* literal.c */
valueT add_to_literal_pool (symbolS *, valueT, segT, int);
#endif
int check_eh_frame (struct expressionS *, unsigned int *);
int eh_frame_estimate_size_before_relax (fragS *);
......
$!config-gas.com
$! This file sets things up to build gas on a VMS system to generate object
$! files for a VMS system. We do not use the configure script, since we
$! do not have /bin/sh to execute it.
$!
$! Note: Only this script contains vax-vms and alpha-vms support, but vax-vms
$! is no longer supported.
$!
$!
$ gas_host="vms"
$ arch_indx = 1 + ((f$getsyi("CPU").ge.128).and.1) ! vax==1, alpha==2
$ arch = f$element(arch_indx,"|","|VAX|Alpha|")
$ if arch.eqs."VAX"
$ then
$ cpu_type="vax"
$ obj_format="vms"
$ atof="vax"
$ else
$ cpu_type="alpha"
$ obj_format="evax"
$ atof="ieee"
$ endif
$ emulation="generic"
$!
$ DELETE = "delete/noConfirm"
$ ECHO = "write sys$output"
$!
$! Target specific information
$ call make "targ-cpu.h" "[.config]tc-''cpu_type'.h"
$ call make "targ-env.h" "[.config]te-''emulation'.h"
$!
$! Code to handle the object file format.
$ call make "obj-format.h" "[.config]obj-''obj_format'.h"
$!
$! (not currently used for vax or alpha)
$ call make "itbl-cpu.h" "[.config]itbl-''cpu_type'.h"
$!
$!
$! Create the file version.opt, which helps identify the executable.
$!
$if f$trnlnm("IFILE$").nes."" then close/noLog ifile$
$search CONFIGURE.IN "AM_INIT_AUTOMAKE"/Exact/Output=config-gas-tmp.tmp
$open ifile$ config-gas-tmp.tmp
$read ifile$ line
$close ifile$
$DELETE config-gas-tmp.tmp;*
$! Discard "AM_INIT_AUTOMAKE(gas, " and ")" parts.
$ijk=f$locate(",",line)+2
$line=f$extract(ijk,f$length(line)-ijk,line)
$ijk=f$locate(")",line)
$line=f$extract(0,ijk,line)
$!
$ if f$search("version.opt").nes."" then DELETE version.opt;*
$copy _NL: version.opt
$open/Append ifile$ version.opt
$write ifile$ "identification="+""""+line+""""
$close ifile$
$!
$! Now write config.h.
$!
$ if f$search("config.h").nes."" then DELETE config.h;*
$copy _NL: config.h
$open/Append ifile$ config.h
$write ifile$ "/* config.h. Generated by config-gas.com. */
$write ifile$ "#ifndef VERSION"
$write ifile$ "#define VERSION """,line,""""
$write ifile$ "#endif"
$write ifile$ "/*--*/"
$if arch .eqs. "VAX"
$then
$append [.config]vms-conf.h ifile$:
$else
$ append [.config]vms-a-conf.h ifile$:
$endif
$close ifile$
$ECHO "Created config.h."
$!
$! Check for, and possibly make, header file <unistd.h>.
$!
$ if f$search("tmp-chk-h.*").nes."" then DELETE tmp-chk-h.*;*
$!can't use simple `#include HDR' with `gcc /Define="HDR=<foo.h>"'
$!because the 2.6.[0-3] preprocessor handles it wrong (VMS-specific gcc bug)
$ create tmp-chk-h.c
int tmp_chk_h; /* guarantee non-empty output */
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_UNIXIO_H
#include <unixio.h>
#endif
#ifdef HAVE_UNIXLIB_H
#include <unixlib.h>
#endif
$ on warning then continue
$ CHECK = "call tmp_chk_h"
$ CHECK "HAVE_STDIO_H"
$ if .not.$status
$ then type sys$input:
? could not compile <stdio.h>.
If you're compiling with DEC C or VAX C, create config.status as an
empty file and start gnu make again.
If you're compiling with GNU C, there is some setup problem and
gas configuration cannot proceed.
$ DELETE tmp-chk-h.c;*
$ exit %x002C
$ endif
$!
$ CHECK "HAVE_UNISTD_H"
$ if .not.$status
$ then
$ if f$trnlnm("HFILE$").nes."" then close/noLog hfile$
$ CHECK "HAVE_UNIXIO_H"
$ got_unixio = ($status .and. 1)
$ CHECK "HAVE_UNIXLIB_H"
$ got_unixlib = ($status .and. 1)
$ create []unistd.h !with rudimentary contents
/* <unistd.h> substitute for building gas */
#ifndef UNISTD_H
#define UNISTD_H
$ open/Append hfile$ []unistd.h
$ if got_unixio
$ then write hfile$ "#include <unixio.h>"
$ else append sys$input: hfile$:
/* some of the routines normally prototyped in <unixio.h> */
extern int creat(), open(), close(), read(), write();
extern int access(), dup(), dup2(), fstat(), stat();