diff --git a/gas/config-gas.com b/gas/config-gas.com index 7ad1a0a98fd..56e5be23489 100644 --- a/gas/config-gas.com +++ b/gas/config-gas.com @@ -4,6 +4,7 @@ $! files for a VMS system. We do not use the configure script, since we $! do not have /bin/sh to execute it. $! $! If you are running this file, then obviously the host is vax-dec-vms. +$! [That's no longer obvious, but there's not much we can do about alpha yet.] $! $gas_host="vms" $! @@ -12,8 +13,8 @@ $emulation="generic" $obj_format="vms" $atof="vax" $! -$! host specific information -$call link host.h [.config]ho-'gas_host'.h +$ DELETE = "delete/noConfirm" +$ ECHO = "write sys$output" $! $! Target specific information $call link targ-cpu.c [.config]tc-'cpu_type'.c @@ -28,34 +29,42 @@ $! Code to handle floating point. $call link atof-targ.c [.config]atof-'atof'.c $! $! -$! Create the file version.opt, which helps identify the executalbe. +$! Create the file version.opt, which helps identify the executable. $! -$search Makefile.in "VERSION="/match=and/output=t.tmp -$open ifile$ t.tmp +$if f$trnlnm("IFILE$").nes."" then close/noLog ifile$ +$search Makefile.in "VERSION="/Exact/Output=config-gas-tmp.tmp +$open ifile$ config-gas-tmp.tmp $read ifile$ line $close ifile$ -$delete/nolog t.tmp;* +$DELETE config-gas-tmp.tmp;* $! Discard "VERSION=" and "\n" parts. $ijk=f$locate("=",line)+1 $line=f$extract(ijk,f$length(line)-ijk,line) +$! [what "\n" part?? this seems to be useless, but is benign] $ijk=f$locate("\n",line) $line=f$extract(0,ijk,line) $! -$ if f$search("version.opt").nes."" then delete/noconfirm version.opt;* -$open ifile$ version.opt/write -$write ifile$ "ident="+""""+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/noconfirm config.h;* -$open ifile$ config.h/write -$write ifile$ "#define TARGET_CPU """,cpu_type,""" -$write ifile$ "#define TARGET_ALIAS ""vms""" -$write ifile$ "#define TARGET_CANONICAL ""vax-dec-vms""" +$ 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 GAS_VERSION" $write ifile$ "#define GAS_VERSION """,line,"""" +$write ifile$ "#endif" +$write ifile$ "/*--*/" +$append [.config]vms-conf.h ifile$: $close ifile$ +$ECHO "Created config.h." $! -$ if f$search("config.status") .nes. "" then delete config.status.* -$ open/write file config.status +$ if f$search("config.status") .nes. "" then DELETE config.status;* +$ copy _NL: config.status +$ open/Append file config.status $ write file "Links are now set up for use with a vax running VMS." $ close file $ type config.status @@ -64,7 +73,7 @@ $! $! $link: $subroutine -$if f$search(p1).nes."" then delete/nolog 'p1'; -$copy 'p2' 'p1' -$write sys$output "Linked ''p2' to ''p1'." +$ if f$search(p1).nes."" then DELETE 'p1';* +$ copy 'p2' 'p1' +$ ECHO "Copied ''f$edit(p2,"LOWERCASE")' to ''f$edit(p1,"LOWERCASE")'." $endsubroutine diff --git a/gas/config/vms-conf.h b/gas/config/vms-conf.h new file mode 100644 index 00000000000..31c587abc69 --- /dev/null +++ b/gas/config/vms-conf.h @@ -0,0 +1,132 @@ +/* vms-conf.h. Generated manually from conf.in, + and used by config-gas.com when constructing config.h. */ + +/* Define if using alloca.c. */ +#ifdef __GNUC__ +#undef C_ALLOCA +#else +#define C_ALLOCA +#endif + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +#undef CRAY_STACKSEG_END + +/* Define if you have and it should be used (not on Ultrix). */ +#undef HAVE_ALLOCA_H + +/* Define as __inline if that's what the C compiler calls it. */ +#ifdef __GNUC__ +#undef inline +#else +#define inline +#endif + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +#define STACK_DIRECTION (-1) + +/* Should gas use high-level BFD interfaces? */ +#undef BFD_ASSEMBLER + +/* Some assert/preprocessor combinations are incapable of handling + certain kinds of constructs in the argument of assert. For example, + quoted strings (if requoting isn't done right) or newlines. */ +#ifdef __GNUC__ +#undef BROKEN_ASSERT +#else +#define BROKEN_ASSERT +#endif + +/* If we aren't doing cross-assembling, some operations can be optimized, + since byte orders and value sizes don't need to be adjusted. */ +#undef CROSS_COMPILE + +/* Some IBM compilers can't handle some of the (rather basic) constructs + used in the 68k support code. */ +#undef IBM_COMPILER_SUX + +/* Some gas code wants to know these parameters. */ +#define TARGET_ALIAS "vms" +#define TARGET_CPU "vax" +#define TARGET_CANONICAL "vax-dec-vms" +#define TARGET_OS "vms" +#define TARGET_VENDOR "dec" + +/* Some operating systems, for example DOS, require the use of "wb" mode when + opening a binary file for writing. If only "w" is used, the file will not + be correct. However, some other systems reject such a mode. This indicates + which ../include/fopen-*.h header file we want to include, so that we can + get macros that'll do the right thing for this system. */ +#undef WANT_FOPEN_BIN + +/* Sometimes the system header files don't declare malloc and realloc. */ +#undef NEED_DECLARATION_MALLOC + +/* Sometimes the system header files don't declare free. */ +#undef NEED_DECLARATION_FREE + +/* Sometimes errno.h doesn't declare errno itself. */ +#undef NEED_DECLARATION_ERRNO + +#undef MANY_SEGMENTS + +/* Needed only for sparc configuration */ +#undef sparcv9 + +/* Define if you have the delete function. */ +#define HAVE_DELETE + +/* Define if you have the unlink function. */ +#undef HAVE_UNLINK + +/* Define if you have the header file. */ +#define HAVE_ERRNO_H + +/* Define if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define if you have the header file. */ +#define HAVE_STDARG_H + +/* Define if you have the header file. */ +#define HAVE_STDLIB_H + +/* Define if you have the header file. */ +#define HAVE_STRING_H + +/* Define if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define if you have the header file. */ +#ifdef __GNUC__ +#define HAVE_SYS_TYPES_H +#else +#undef HAVE_SYS_TYPES_H +#endif + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the header file. */ +#undef HAVE_VARARGS_H + +/* VMS-specific: we need to set up EXIT_xxx here because the default + values in as.h are inappropriate for VMS, but we also want to prevent + as.h's inclusion of from triggering redefinition warnings. + guards itself against multiple inclusion, so including it + here turns as.h's later #include into a no-op. (We can't simply use + #ifndef HAVE_STDLIB_H here, because the in several older + gcc-vms distributions neglects to define these two required macros.) */ +#ifdef HAVE_STDLIB_H +#include +#undef EXIT_SUCCESS +#undef EXIT_FAILURE +#endif +#define EXIT_SUCCESS 1 /* SS$_NORMAL, STS$K_SUCCESS */ +#define EXIT_FAILURE 0x10000002 /* (STS$K_ERROR | STS$M_INHIB_MSG) */