Commit 71cd2220 by Douglas B Rupp Committed by Douglas Rupp

vms-cc.c: Deleted.


	* config/alpha/vms-cc.c: Deleted.
	* config/alpha/vms-ld.c: Deleted.
	* config/alpha/t-vms64: Moved to config/vms
	* config/alpha/vms-crt0-64.c: Moved to config/vms
	* config/alpha/vms-crt0.c: Moved to config/vms
	* config/alpha/vms-psxcrt0-64.c: Moved to config/vms
	* config/alpha/vms-psxcrt0.c: Moved to config/vms
	* config/alpha/xm-vms.h: Moved to config/vms
	* config/alpha/x-vms: Moved to config/vms
	* config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
	config/vms/t-vms.
	* config/vms/t-vms: Moved here from config/alpha. Alpha specific
	parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
	(version): Set.
	* config/vms/t-vms64: Moved here from config/alpha
	* config/vms/vms-crt0-64.c: Moved here from config/alpha.
	(argc,argv,envp): Enforce 32bit malloc'ing.
	* config/vms/vms-psxcrt0-64.c: Likewise.
	* config/vms/vms-crt0.c: Moved here from config/alpha.
	* config/vms/vms-psxcrt0.c: Likewise.
	* config/vms/vms-crtl-64.h: New file.
	* config/vms/vms-crtl.h: New file.
	* config/vms/vms.opt: New file.
	* config/vms/xm-vms64.h: New file.
	* config/vms/xm-vms.h: Moved here from config/alpha.
	(STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
	Set.
	* config/vms/x-vms: Moved here from config/alpha.
	(version, VMS_EXTRA_PARTS): Moved to t-vms.
	(vms-ld.o, vms-cc.o): Removed.
	(LN, LN_S, USE_COLLECT2, POD2MAN): Set.

From-SVN: r150230
parent 0699748f
2009-07-29 Douglas B Rupp <rupp@gnat.com>
* config/alpha/vms-cc.c: Deleted.
* config/alpha/vms-ld.c: Deleted.
* config/alpha/t-vms64: Moved to config/vms
* config/alpha/vms-crt0-64.c: Moved to config/vms
* config/alpha/vms-crt0.c: Moved to config/vms
* config/alpha/vms-psxcrt0-64.c: Moved to config/vms
* config/alpha/vms-psxcrt0.c: Moved to config/vms
* config/alpha/xm-vms.h: Moved to config/vms
* config/alpha/x-vms: Moved to config/vms
* config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
config/vms/t-vms.
* config/vms/t-vms: Moved here from config/alpha. Alpha specific
parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
(version): Set.
* config/vms/t-vms64: Moved here from config/alpha
* config/vms/vms-crt0-64.c: Moved here from config/alpha.
(argc,argv,envp): Enforce 32bit malloc'ing.
* config/vms/vms-psxcrt0-64.c: Likewise.
* config/vms/vms-crt0.c: Moved here from config/alpha.
* config/vms/vms-psxcrt0.c: Likewise.
* config/vms/vms-crtl-64.h: New file.
* config/vms/vms-crtl.h: New file.
* config/vms/vms.opt: New file.
* config/vms/xm-vms64.h: New file.
* config/vms/xm-vms.h: Moved here from config/alpha.
(STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
Set.
* config/vms/x-vms: Moved here from config/alpha.
(version, VMS_EXTRA_PARTS): Moved to t-vms.
(vms-ld.o, vms-cc.o): Removed.
(LN, LN_S, USE_COLLECT2, POD2MAN): Set.
2009-07-29 Douglas B Rupp <rupp@gnat.com>
* dwarf2out.c (add_name_and_src_coords_attributes): Push on the
correct stack (obvious VMS fix).
......
# Copyright (C) 1996, 1997, 1998, 2001, 2002,
# 2007 Free Software Foundation, Inc.
# 2007, 2009 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
......@@ -32,13 +32,6 @@ $(T)vms-dwarf2.o : $(srcdir)/config/alpha/vms-dwarf2.asm
$(T)vms-dwarf2eh.o : $(srcdir)/config/alpha/vms-dwarf2eh.asm
gcc -c -x assembler $< -o $@
# Assemble startup files.
$(T)vcrt0.o: $(CRT0_S) $(GCC_PASSES)
decc -c /names=as_is $(srcdir)/config/alpha/vms-crt0.c -o $(T)vcrt0.o
$(T)pcrt0.o: $(CRT0_S) $(GCC_PASSES)
decc -c /names=as_is $(srcdir)/config/alpha/vms-psxcrt0.c -o $(T)pcrt0.o
MULTILIB_OPTIONS = mcpu=ev6
MULTILIB_DIRNAMES = ev6
LIBGCC = stmp-multilib
......
# Assemble startup files.
$(T)vcrt0.o: $(CRT0_S) $(GCC_PASSES)
decc -c /names=as_is /pointer_size=64 \
$(srcdir)/config/alpha/vms-crt0-64.c -o $(T)vcrt0.o
$(T)pcrt0.o: $(CRT0_S) $(GCC_PASSES)
decc -c /names=as_is /pointer_size=64 \
$(srcdir)/config/alpha/vms-psxcrt0-64.c -o $(T)pcrt0.o
/* VMS DEC C wrapper.
Copyright (C) 2001, 2003, 2007 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
GCC 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 3, or (at your option)
any later version.
GCC 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 GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* This program is a wrapper around the VMS DEC C compiler.
It translates Unix style command line options into corresponding
VMS style qualifiers and then spawns the DEC C compiler. */
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#undef PATH_SEPARATOR
#undef PATH_SEPARATOR_STR
#define PATH_SEPARATOR ','
#define PATH_SEPARATOR_STR ","
/* These can be set by command line arguments */
static int verbose = 0;
static int save_temps = 0;
static int comp_arg_max = -1;
static const char **comp_args = 0;
static int comp_arg_index = -1;
static char *objfilename = 0;
static char *system_search_dirs = (char *) "";
static char *search_dirs;
static char *default_defines = (char *) "";
static char *defines;
/* Translate a Unix syntax directory specification into VMS syntax.
If indicators of VMS syntax found, return input string. */
static char *to_host_dir_spec (char *);
/* Translate a Unix syntax file specification into VMS syntax.
If indicators of VMS syntax found, return input string. */
static char *to_host_file_spec (char *);
/* Add a translated arg to the list to be passed to DEC CC. */
static void addarg (const char *);
/* Preprocess the number of args in P_ARGC and contained in ARGV.
Look for special flags, etc. that must be handled first. */
static void preprocess_args (int *, char **);
/* Process the number of args in P_ARGC and contained in ARGV. Look
for special flags, etc. that must be handled for the VMS compiler. */
static void process_args (int *, char **);
/* Action routine called by decc$to_vms */
static int translate_unix (char *, int);
/* Add the argument contained in STR to the list of arguments to pass to the
compiler. */
static void
addarg (const char *str)
{
int i;
if (++comp_arg_index >= comp_arg_max)
{
const char **new_comp_args
= (const char **) xcalloc (comp_arg_max + 1000, sizeof (char *));
for (i = 0; i <= comp_arg_max; i++)
new_comp_args [i] = comp_args [i];
if (comp_args)
free (comp_args);
comp_arg_max += 1000;
comp_args = new_comp_args;
}
comp_args [comp_arg_index] = str;
}
static void
preprocess_args (int *p_argc, char *argv[])
{
int i;
for (i = 1; i < *p_argc; i++)
{
if (strcmp (argv[i], "-o") == 0)
{
char *buff, *ptr;
i++;
ptr = to_host_file_spec (argv[i]);
objfilename = xstrdup (ptr);
buff = concat ("/obj=", ptr, NULL);
addarg (buff);
}
}
}
static void
process_args (int *p_argc, char *argv[])
{
int i;
for (i = 1; i < *p_argc; i++)
{
if (strlen (argv[i]) < 2)
continue;
if (strncmp (argv[i], "-I", 2) == 0)
{
char *ptr;
int new_len, search_dirs_len;
ptr = to_host_dir_spec (&argv[i][2]);
new_len = strlen (ptr);
search_dirs_len = strlen (search_dirs);
search_dirs = xrealloc (search_dirs, search_dirs_len + new_len + 2);
if (search_dirs_len > 0)
strcat (search_dirs, PATH_SEPARATOR_STR);
strcat (search_dirs, ptr);
}
else if (strncmp (argv[i], "-D", 2) == 0)
{
char *ptr;
int new_len, defines_len;
ptr = &argv[i][2];
new_len = strlen (ptr);
defines_len = strlen (defines);
defines = xrealloc (defines, defines_len + new_len + 4);
if (defines_len > 0)
strcat (defines, ",");
strcat (defines, "\"");
strcat (defines, ptr);
strcat (defines, "\"");
}
else if (strcmp (argv[i], "-v") == 0)
verbose = 1;
else if (strcmp (argv[i], "-g0") == 0)
addarg ("/nodebug");
else if (strcmp (argv[i], "-O0") == 0)
addarg ("/noopt");
else if (strncmp (argv[i], "-g", 2) == 0)
addarg ("/debug");
else if (strcmp (argv[i], "-E") == 0)
addarg ("/preprocess");
else if (strcmp (argv[i], "-save-temps") == 0)
save_temps = 1;
}
}
/* The main program. Spawn the VMS DEC C compiler after fixing up the
Unix-like flags and args to be what VMS DEC C wants. */
typedef struct dsc {unsigned short len, mbz; char *adr; } Descr;
int
main (int argc, char **argv)
{
int i;
char cwdev [128], *devptr;
int devlen;
char *cwd = getcwd (0, 1024);
devptr = strchr (cwd, ':');
devlen = (devptr - cwd) + 1;
strncpy (cwdev, cwd, devlen);
cwdev [devlen] = '\0';
search_dirs = xstrdup (system_search_dirs);
defines = xstrdup (default_defines);
addarg ("cc");
preprocess_args (&argc , argv);
process_args (&argc , argv);
if (strlen (search_dirs) > 0)
{
addarg ("/include=(");
addarg (search_dirs);
addarg (")");
}
if (strlen (defines) > 0)
{
addarg ("/define=(");
addarg (defines);
addarg (")");
}
for (i = 1; i < argc; i++)
{
int arg_len = strlen (argv[i]);
if (strcmp (argv[i], "-o") == 0)
i++;
else if (strcmp (argv[i], "-v" ) == 0
|| strcmp (argv[i], "-E") == 0
|| strcmp (argv[i], "-c") == 0
|| strncmp (argv[i], "-g", 2 ) == 0
|| strncmp (argv[i], "-O", 2 ) == 0
|| strcmp (argv[i], "-save-temps") == 0
|| (arg_len > 2 && strncmp (argv[i], "-I", 2) == 0)
|| (arg_len > 2 && strncmp (argv[i], "-D", 2) == 0))
;
/* Unix style file specs and VMS style switches look alike, so assume
an arg consisting of one and only one slash, and that being first, is
really a switch. */
else if ((argv[i][0] == '/') && (strchr (&argv[i][1], '/') == 0))
addarg (argv[i]);
else
{
/* Assume filename arg */
char buff [256], *ptr;
ptr = to_host_file_spec (argv[i]);
arg_len = strlen (ptr);
if (ptr[0] == '[')
sprintf (buff, "%s%s", cwdev, ptr);
else if (strchr (ptr, ':'))
sprintf (buff, "%s", ptr);
else
sprintf (buff, "%s%s", cwd, ptr);
ptr = xstrdup (buff);
addarg (ptr);
}
}
addarg (NULL);
if (verbose)
{
int i;
for (i = 0; i < comp_arg_index; i++)
printf ("%s ", comp_args [i]);
putchar ('\n');
}
{
int i;
int len = 0;
for (i = 0; comp_args[i]; i++)
len = len + strlen (comp_args[i]) + 1;
{
char *allargs = (char *) alloca (len + 1);
Descr cmd;
int status;
int status1 = 1;
for (i = 0; i < len + 1; i++)
allargs [i] = 0;
for (i = 0; comp_args [i]; i++)
{
strcat (allargs, comp_args [i]);
strcat (allargs, " ");
}
cmd.adr = allargs;
cmd.len = len;
cmd.mbz = 0;
i = LIB$SPAWN (&cmd, 0, 0, 0, 0, 0, &status);
if ((i & 1) != 1)
{
LIB$SIGNAL (i);
exit (1);
}
if ((status & 1) == 1 && (status1 & 1) == 1)
exit (0);
exit (1);
}
}
}
static char new_host_filespec [255];
static char new_host_dirspec [255];
static char filename_buff [256];
static int
translate_unix (char *name, int type ATTRIBUTE_UNUSED)
{
strcpy (filename_buff, name);
return 0;
}
static char *
to_host_dir_spec (char *dirspec)
{
int len = strlen (dirspec);
strcpy (new_host_dirspec, dirspec);
if (strchr (new_host_dirspec, ']') || strchr (new_host_dirspec, ':'))
return new_host_dirspec;
while (len > 1 && new_host_dirspec [len-1] == '/')
{
new_host_dirspec [len-1] = 0;
len--;
}
decc$to_vms (new_host_dirspec, translate_unix, 1, 2);
strcpy (new_host_dirspec, filename_buff);
return new_host_dirspec;
}
static char *
to_host_file_spec (char *filespec)
{
strcpy (new_host_filespec, "");
if (strchr (filespec, ']') || strchr (filespec, ':'))
strcpy (new_host_filespec, filespec);
else
{
decc$to_vms (filespec, translate_unix, 1, 1);
strcpy (new_host_filespec, filename_buff);
}
return new_host_filespec;
}
# Copyright (C) 2009
# Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC 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 3, or (at your option)
# any later version.
#
# GCC 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 GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
STMP_FIXPROTO =
STMP_FIXINC =
LIMITS_H_TEST = false
# Under VMS, directory names cannot contain dots.
version:=$(shell echo $(BASEVER_c) | sed -e 's/\./_/g')
# Temporary restriction: VMS_EXTRA_PARTS must be compiled by DEC C.
#VMS_EXTRA_PARTS=vcrt0.o pcrt0.o
VMS_EXTRA_PARTS=
DECC=`echo $(CC) | sed -e 's/xgcc -B.*/decc$(exeext)/' -e 's/^gcc/decc/' -e 's/^decc/.\/decc/' -e 's/\(.*\)-gcc/\1-decc/'`
# Assemble startup files.
$(T)vcrt0.o: $(CRT0_S) $(GCC_PASSES)
$(DECC) -c /names=as_is $(srcdir)/config/vms/vms-crt0.c -o $(T)vcrt0.o
$(T)pcrt0.o: $(CRT0_S) $(GCC_PASSES)
$(DECC) -c /names=as_is $(srcdir)/config/vms/vms-psxcrt0.c -o $(T)pcrt0.o
# Copyright (C) 2009
# Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC 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 3, or (at your option)
# any later version.
#
# GCC 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 GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
# Assemble startup files.
$(T)vcrt0.o: $(CRT0_S) $(GCC_PASSES)
$(DECC) -c /names=as_is /pointer_size=64 \
$(srcdir)/config/vms/vms-crt0-64.c -o $(T)vcrt0.o
$(T)pcrt0.o: $(CRT0_S) $(GCC_PASSES)
$(DECC) -c /names=as_is /pointer_size=64 \
$(srcdir)/config/vms/vms-psxcrt0-64.c -o $(T)pcrt0.o
......@@ -2,26 +2,26 @@
Copyright (C) 2001, 2009 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
This file is part of GCC.
GCC 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 3, or (at your option)
any later version.
GCC 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 3, or (at your option)
any later version.
GCC 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.
GCC 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.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
#if !defined(__DECC)
You Lose! This file can only be compiled with DEC C.
......@@ -72,18 +72,19 @@ __main (arg1, arg2, arg3, image_file_desc, arg5, arg6)
#pragma __pointer_size long
/* Reallocate argv with 64-bit pointers. */
long_argv = (char **) malloc (sizeof (char *) * (argc + 1));
/* Reallocate argv with 64 bit pointers. */
long_argv = (char **) _malloc32 (sizeof (char *) * (argc + 1));
for (i = 0; i < argc; i++)
long_argv[i] = strdup (argv[i]);
long_argv[i] = (char *) _strdup32 (argv[i]);
long_argv[argc] = (char *) 0;
long_envp = (char **) malloc (sizeof (char *) * 5);
for (i = 0; envp[i]; i++);
long_envp = (char **) _malloc32 (sizeof (char *) * (i + 1));
for (i = 0; envp[i]; i++)
long_envp[i] = strdup (envp[i]);
long_envp[i] = (char *) _strdup32 (envp[i]);
long_envp[i] = (char *) 0;
......
......@@ -2,26 +2,26 @@
Copyright (C) 2001, 2009 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
This file is part of GCC.
GCC 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 3, or (at your option)
any later version.
GCC 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 3, or (at your option)
any later version.
GCC 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.
GCC 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.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
#if !defined(__DECC)
You Lose! This file can only be compiled with DEC C.
......
/* Definitions of target machine GNU compiler. 64bit VMS version.
Copyright (C) 2009 Free Software Foundation, Inc.
Contributed by Douglas B Rupp (rupp@gnat.com).
This file is part of GCC.
GCC 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 3, or (at your option)
any later version.
GCC 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 GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/*
Correlation array of 64bit standard CRTL names with DECCRTL
function names. Currently contains only a partial list,
e.g. those functions use in GNAT and GCC. Memory allocation
routines are 32bit but this can be overridden by -mmalloc
subtarget switch.
Note: Please keep in alphabetical order.
*/
#undef CRTL_NAMES
#define CRTL_NAMES \
{ \
{"_calloc32", "decc$calloc", 0}, \
{"_malloc32", "decc$malloc", 0}, \
{"_realloc32", "decc$realloc", 0}, \
{"_strdup32", "decc$strdup", 0}, \
{"abs", "decc$abs", 0}, \
{"abort", "decc$abort", 0}, \
{"access", "decc$access", 0}, \
{"accept", "decc$accept", 0}, \
{"acos", "decc$tacos", 0}, \
{"alarm", "decc$alarm", 0}, \
{"asin", "decc$tasin", 0}, \
{"atan", "decc$tatan", 0}, \
{"atan2", "decc$tatan2", 0}, \
{"atexit", "decc$atexit", 0}, \
{"atoi", "decc$atoi", 0}, \
{"atoll", "decc$atoll", 0}, \
{"atoq", "decc$atoq", 0}, \
{"basename", "decc$_basename64", 0}, \
{"bcmp", "decc$bcmp", 0}, \
{"bcopy", "decc$bcopy", 0}, \
{"bsearch", "decc$_bsearch64", 0}, \
{"bzero", "decc$bzero", 0}, \
{"calloc", "decc$calloc", 0}, \
{"ceil", "decc$tceil", 0}, \
{"chdir", "decc$chdir", 0}, \
{"chown", "decc$chown", 0}, \
{"clearerr", "decc$clearerr", 0}, \
{"clock", "decc$clock", 0}, \
{"close", "decc$close", 0}, \
{"cos", "decc$tcos", 0}, \
{"connect", "decc$connect", 0}, \
{"ctime", "decc$ctime", 0}, \
{"dup", "decc$dup", 0}, \
{"dup2", "decc$dup2", 0}, \
{"exit", "decc$exit", 0}, \
{"exp", "decc$texp", 0}, \
{"fabs", "decc$tfabs", 0}, \
{"fclose", "decc$fclose", 0}, \
{"fdopen", "decc$fdopen", 0}, \
{"fgetc", "decc$fgetc", 0}, \
{"fgets", "decc$_fgets64", 0}, \
{"fflush", "decc$fflush", 0}, \
{"ffs", "decc$ffs", 0}, \
{"floor", "decc$tfloor", 0}, \
{"fopen", "decc$fopen", 0}, \
{"fputc", "decc$fputc", 0}, \
{"fputs", "decc$fputs", 0}, \
{"free", "decc$free", 0}, \
{"fread", "decc$fread", 0}, \
{"freopen", "decc$freopen", 0}, \
{"fseek", "decc$fseek", 0}, \
{"ftell", "decc$ftell", 0}, \
{"fwrite", "decc$fwrite", 0}, \
{"getcwd", "decc$_getcwd64", 0}, \
{"getegid", "decc$getegid", 0}, \
{"getenv", "decc$getenv", 0}, \
{"geteuid", "decc$geteuid", 0}, \
{"getgid", "decc$getgid", 0}, \
{"gethostbyname","decc$gethostbyname",0}, \
{"getpagesize", "decc$getpagesize", 0}, \
{"getpid", "decc$getpid", 0}, \
{"getservbyname","decc$getservbyname",0}, \
{"gettimeofday", "decc$gettimeofday", 0}, \
{"getuid", "decc$getuid", 0}, \
{"htons", "decc$htons", 0}, \
{"iconv", "decc$iconv", 0}, \
{"index", "decc$_index64", 0}, \
{"isatty", "decc$isatty", 0}, \
{"isdigit", "decc$isdigit", 0}, \
{"kill", "decc$kill", 0}, \
{"log", "decc$tlog", 0}, \
{"log10", "decc$tlog10", 0}, \
{"lseek", "decc$lseek", 0}, \
{"ioctl", "decc$ioctl", 0}, \
{"malloc", "decc$malloc", 0}, \
{"mbstowcs", "decc$_mbstowcs64", 0}, \
{"memchr", "decc$_memchr64", 0}, \
{"memcmp", "decc$memcmp", 0}, \
{"memcpy", "decc$_memcpy64", 0}, \
{"memmove", "decc$_memmove64", 0}, \
{"memset", "decc$_memset64", 0}, \
{"mkstemp", "decc$mkstemp", 0}, \
{"mktemp", "decc$_mktemp64", 0}, \
{"mmap", "decc$_mmap64", 0}, \
{"munmap", "decc$munmap", 0}, \
{"nl_langinfo", "decc$nl_langinfo", 0}, \
{"pclose", "decc$pclose", 0}, \
{"popen", "decc$popen", 0}, \
{"pow", "decc$tpow", 0}, \
{"printf", "decc$txprintf", 0}, \
{"putenv", "decc$putenv", 0}, \
{"puts", "decc$puts", 0}, \
{"random", "decc$random", 0}, \
{"read", "decc$read", 0}, \
{"realloc", "decc$realloc", 0}, \
{"recv", "decc$recv", 0}, \
{"recvfrom", "decc$recvfrom", 0}, \
{"rename", "decc$rename", 0}, \
{"rewind", "decc$rewind", 0}, \
{"rindex", "decc$_rindex64", 0}, \
{"rmdir", "decc$rmdir", 0}, \
{"send", "decc$send", 0}, \
{"sendto", "decc$sendto", 0}, \
{"setenv", "decc$setenv", 0}, \
{"setlocale", "decc$setlocale", 0}, \
{"setvbuf", "decc$setvbuf", 0}, \
{"signal", "decc$signal", 0}, \
{"sigsetmask", "decc$sigsetmask", 0}, \
{"sin", "decc$tsin", 0}, \
{"snprintf", "decc$txsnprintf", 0}, \
{"socket", "decc$socket", 0}, \
{"sqrt", "decc$tsqrt", 0}, \
{"strcasecmp", "decc$strcasecmp", 0}, \
{"strchr", "decc$_strchr64", 0}, \
{"strcpy", "decc$_strcpy64", 0}, \
{"strdup", "decc$strdup", 0}, \
{"strerror", "decc$strerror", 0}, \
{"strlen", "decc$strlen", 0}, \
{"strncasecmp", "decc$strncasecmp", 0}, \
{"strncmp", "decc$strncmp", 0}, \
{"strncpy", "decc$_strncpy64", 0}, \
{"strrchr", "decc$_strrchr64", 0}, \
{"strstr", "decc$_strstr64", 0}, \
{"strtod", "decc$t_strtod64", 0}, \
{"strtol", "decc$_strtoll64", 0}, \
{"strtoul", "decc$_strtoull64", 0}, \
{"sysconf", "decc$sysconf", 0}, \
{"system", "decc$system", 0}, \
{"tan", "decc$ttan", 0}, \
{"time", "decc$time", 0}, \
{"times", "decc$times", 0}, \
{"tmpfile", "decc$tmpfile", 0}, \
{"tmpnam", "decc$_tmpnam64", 0}, \
{"ungetc", "decc$ungetc", 0}, \
{"unlink", "decc$unlink", 0}, \
{"umask", "decc$umask", 0}, \
{"utime", "decc$utime", 0}, \
{"wait", "decc$wait", 0}, \
{"waitpid", "decc$waitpid", 0}, \
{"wcswidth", "decc$wcswidth", 0}, \
{"write", "decc$write", 0}, \
{"vfprintf", "decc$txvfprintf", 0}, \
{"vprintf", "decc$txvprintf", 0}, \
{"vsprintf", "decc$txvsprintf", 0}, \
{"vsnprintf", "decc$txvsnprintf", 0}, \
{NULL, NULL, 0} \
}
/* Initialize of libfuncs that are 32/64 bit memory specific. */
#undef MEM_LIBFUNCS_INIT
#define MEM_LIBFUNCS_INIT \
do { \
memcpy_libfunc = init_one_libfunc ("decc$_memcpy64"); \
memmove_libfunc = init_one_libfunc ("decc$_memmove64"); \
memset_libfunc = init_one_libfunc ("decc$_memset64"); \
} while (0)
/* Definitions of target machine GNU compiler. 32bit VMS version.
Copyright (C) 2009 Free Software Foundation, Inc.
Contributed by Douglas B Rupp (rupp@gnat.com).
This file is part of GCC.
GCC 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 3, or (at your option)
any later version.
GCC 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 GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/*
Correlation array of standard CRTL names with DECCRTL
function names. Currently contains only a partial list,
e.g. those functions use in GNAT and GCC
Note: Please keep in alphabetical order.
*/
#define CRTL_NAMES \
{ \
{"_calloc32", "decc$calloc", 0}, \
{"_malloc32", "decc$malloc", 0}, \
{"_realloc32", "decc$realloc", 0}, \
{"_strdup32", "decc$strdup", 0}, \
{"abs", "decc$abs", 0}, \
{"abort", "decc$abort", 0}, \
{"access", "decc$access", 0}, \
{"accept", "decc$accept", 0}, \
{"acos", "decc$tacos", 0}, \
{"alarm", "decc$alarm", 0}, \
{"asin", "decc$tasin", 0}, \
{"atan", "decc$tatan", 0}, \
{"atan2", "decc$tatan2", 0}, \
{"atexit", "decc$atexit", 0}, \
{"atoi", "decc$atoi", 0}, \
{"atoll", "decc$atoll", 0}, \
{"atoq", "decc$atoq", 0}, \
{"basename", "decc$basename", 0}, \
{"bcmp", "decc$bcmp", 0}, \
{"bcopy", "decc$bcopy", 0}, \
{"bsearch", "decc$bsearch", 0}, \
{"bzero", "decc$bzero", 0}, \
{"calloc", "decc$calloc", 0}, \
{"ceil", "decc$tceil", 0}, \
{"chdir", "decc$chdir", 0}, \
{"chown", "decc$chown", 0}, \
{"clearerr", "decc$clearerr", 0}, \
{"clock", "decc$clock", 0}, \
{"close", "decc$close", 0}, \
{"cos", "decc$tcos", 0}, \
{"connect", "decc$connect", 0}, \
{"ctime", "decc$ctime", 0}, \
{"dup", "decc$dup", 0}, \
{"dup2", "decc$dup2", 0}, \
{"exit", "decc$exit", 0}, \
{"exp", "decc$texp", 0}, \
{"fabs", "decc$tfabs", 0}, \
{"fclose", "decc$fclose", 0}, \
{"fdopen", "decc$fdopen", 0}, \
{"fgetc", "decc$fgetc", 0}, \
{"fgets", "decc$fgets", 0}, \
{"fflush", "decc$fflush", 0}, \
{"ffs", "decc$ffs", 0}, \
{"floor", "decc$tfloor", 0}, \
{"fopen", "decc$fopen", 0}, \
{"fputc", "decc$fputc", 0}, \
{"fputs", "decc$fputs", 0}, \
{"free", "decc$free", 0}, \
{"fread", "decc$fread", 0}, \
{"freopen", "decc$freopen", 0}, \
{"fseek", "decc$fseek", 0}, \
{"ftell", "decc$ftell", 0}, \
{"fwrite", "decc$fwrite", 0}, \
{"getcwd", "decc$getcwd", 0}, \
{"getegid", "decc$getegid", 0}, \
{"getenv", "decc$getenv", 0}, \
{"geteuid", "decc$geteuid", 0}, \
{"getgid", "decc$getgid", 0}, \
{"gethostbyname","decc$gethostbyname",0}, \
{"getpagesize", "decc$getpagesize", 0}, \
{"getpid", "decc$getpid", 0}, \
{"getservbyname","decc$getservbyname",0}, \
{"gettimeofday", "decc$gettimeofday", 0}, \
{"getuid", "decc$getuid", 0}, \
{"htons", "decc$htons", 0}, \
{"iconv", "decc$iconv", 0}, \
{"index", "decc$index", 0}, \
{"isatty", "decc$isatty", 0}, \
{"isdigit", "decc$isdigit", 0}, \
{"kill", "decc$kill", 0}, \
{"log", "decc$tlog", 0}, \
{"log10", "decc$tlog10", 0}, \
{"lseek", "decc$lseek", 0}, \
{"ioctl", "decc$ioctl", 0}, \
{"malloc", "decc$malloc", 0}, \
{"mbstowcs", "decc$mbstowcs", 0}, \
{"memchr", "decc$memchr", 0}, \
{"memcmp", "decc$memcmp", 0}, \
{"memcpy", "decc$memcpy", 0}, \
{"memmove", "decc$memmove", 0}, \
{"memset", "decc$memset", 0}, \
{"mkstemp", "decc$mkstemp", 0}, \
{"mktemp", "decc$mktemp", 0}, \
{"mmap", "decc$mmap", 0}, \
{"munmap", "decc$munmap", 0}, \
{"nl_langinfo", "decc$nl_langinfo", 0}, \
{"pclose", "decc$pclose", 0}, \
{"popen", "decc$popen", 0}, \
{"pow", "decc$tpow", 0}, \
{"printf", "decc$txprintf", 0}, \
{"putenv", "decc$putenv", 0}, \
{"puts", "decc$puts", 0}, \
{"random", "decc$random", 0}, \
{"read", "decc$read", 0}, \
{"realloc", "decc$realloc", 0}, \
{"recv", "decc$recv", 0}, \
{"recvfrom", "decc$recvfrom", 0}, \
{"rename", "decc$rename", 0}, \
{"rewind", "decc$rewind", 0}, \
{"rindex", "decc$rindex", 0}, \
{"rmdir", "decc$rmdir", 0}, \
{"send", "decc$send", 0}, \
{"sendto", "decc$sendto", 0}, \
{"setenv", "decc$setenv", 0}, \
{"setlocale", "decc$setlocale", 0}, \
{"setvbuf", "decc$setvbuf", 0}, \
{"signal", "decc$signal", 0}, \
{"sigsetmask", "decc$sigsetmask", 0}, \
{"sin", "decc$tsin", 0}, \
{"snprintf", "decc$txsnprintf", 0}, \
{"socket", "decc$socket", 0}, \
{"sqrt", "decc$tsqrt", 0}, \
{"strcasecmp", "decc$strcasecmp", 0}, \
{"strchr", "decc$strchr", 0}, \
{"strcpy", "decc$strcpy", 0}, \
{"strdup", "decc$strdup", 0}, \
{"strerror", "decc$strerror", 0}, \
{"strlen", "decc$strlen", 0}, \
{"strncasecmp", "decc$strncasecmp", 0}, \
{"strncmp", "decc$strncmp", 0}, \
{"strncpy", "decc$strncpy", 0}, \
{"strrchr", "decc$strrchr", 0}, \
{"strstr", "decc$strstr", 0}, \
{"strtod", "decc$tstrtod", 0}, \
{"strtol", "decc$strtoll", 0}, \
{"strtoul", "decc$strtoull", 0}, \
{"sysconf", "decc$sysconf", 0}, \
{"system", "decc$system", 0}, \
{"tan", "decc$ttan", 0}, \
{"time", "decc$time", 0}, \
{"times", "decc$times", 0}, \
{"tmpfile", "decc$tmpfile", 0}, \
{"tmpnam", "decc$tmpnam", 0}, \
{"ungetc", "decc$ungetc", 0}, \
{"unlink", "decc$unlink", 0}, \
{"umask", "decc$umask", 0}, \
{"utime", "decc$utime", 0}, \
{"wait", "decc$wait", 0}, \
{"waitpid", "decc$waitpid", 0}, \
{"wcswidth", "decc$wcswidth", 0}, \
{"write", "decc$write", 0}, \
{"vfprintf", "decc$txvfprintf", 0}, \
{"vprintf", "decc$txvprintf", 0}, \
{"vsprintf", "decc$txvsprintf", 0}, \
{"vsnprintf", "decc$txvsnprintf", 0}, \
{NULL, NULL, 0} \
}
/* Initialize of libfuncs that are 32/64 bit memory specific. */
#define MEM_LIBFUNCS_INIT \
do { \
memcpy_libfunc = init_one_libfunc ("decc$memcpy"); \
memmove_libfunc = init_one_libfunc ("decc$memmove"); \
memset_libfunc = init_one_libfunc ("decc$memset"); \
} while (0)
......@@ -2,26 +2,26 @@
Copyright (C) 2001, 2009 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
This file is part of GCC.
GCC 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 3, or (at your option)
any later version.
GCC 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 3, or (at your option)
any later version.
GCC 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.
GCC 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.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
#if !defined(__DECC)
You Lose! This file can only be compiled with DEC C.
......@@ -53,7 +53,7 @@ int
__main (arg1, arg2, arg3, image_file_desc, arg5, arg6)
void *arg1, *arg2, *arg3;
void *image_file_desc;
void *arg5, *arg6)
void *arg5, *arg6;
{
int argc;
char **argv;
......@@ -74,18 +74,19 @@ __main (arg1, arg2, arg3, image_file_desc, arg5, arg6)
#pragma __pointer_size long
/* Reallocate argv with 64-bit pointers. */
long_argv = (char **) malloc (sizeof (char *) * (argc + 1));
/* Reallocate argv with 64 bit pointers. */
long_argv = (char **) _malloc32 (sizeof (char *) * (argc + 1));
for (i = 0; i < argc; i++)
long_argv[i] = strdup (argv[i]);
long_argv[i] = (char *) _strdup32 (argv[i]);
long_argv[argc] = (char *) 0;
long_envp = (char **) malloc (sizeof (char *) * 5);
for (i = 0; envp[i]; i++);
long_envp = (char **) _malloc32 (sizeof (char *) * (i + 1));
for (i = 0; envp[i]; i++)
long_envp[i] = strdup (envp[i]);
long_envp[i] = (char *) _strdup32 (envp[i]);
long_envp[i] = (char *) 0;
......
......@@ -2,26 +2,26 @@
Copyright (C) 2001, 2009 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
GCC 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 3, or (at your option)
any later version.
GCC 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.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
This file is part of GCC.
GCC 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 3, or (at your option)
any later version.
GCC 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.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
#if !defined(__DECC)
You Lose! This file can only be compiled with DEC C.
......
; Copyright (C) 2009 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC 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 3, or (at your option) any later
; version.
;
; GCC 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 GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
mmalloc64
Target Report Mask(MALLOC64)
Malloc data into P2 space
mdebug-main=
Target RejectNegative Joined Var(vms_debug_main)
Set name of main routine for the debugger
# Copyright (C) 2001, 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
# Copyright (C) 2001, 2002, 2004, 2005, 2008, 2009
# Free Software Foundation, Inc.
#
# This file is part of GCC.
#
......@@ -15,24 +16,12 @@
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
#
# Under VMS, directory names cannot contain dots.
version:=$(shell echo $(BASEVER_c) | sed -e 's/\./_/g')
libsubdir=$(libdir)/gcc-lib
# Rules for linker and compiler wrappers. These are only useful on
# a VMS host.
vms-ld.o : $(srcdir)/config/alpha/vms-ld.c
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
ld.exe : vms-ld.o
$(CC) -o $@ vms-ld.o ../libiberty/libiberty.a
LN = cp -p
LN_S = cp -p
vms-cc.o : $(srcdir)/config/alpha/vms-cc.c
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
decc.exe : vms-cc.o
$(CC) -o $@ vms-cc.o ../libiberty/libiberty.a
# Doesn't work on VMS
USE_COLLECT2=
# These extra parts can only be compiled on a VMS host and are only needed
# on a VMS target. The rules are in t-vms.
VMS_EXTRA_PARTS=vcrt0.o pcrt0.o
# There are no man pages on VMS
POD2MAN = false
/* Configuration for GNU C-compiler for openVMS/Alpha.
Copyright (C) 1996, 1997, 2001, 2004, 2007 Free Software Foundation, Inc.
Contributed by Klaus Kaempf (kkaempf@progis.de).
/* Configuration for GCC for hosting on VMS
using a Unix style C library.
Copyright (C) 1996, 1997, 2001, 2004, 2007, 2009
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -23,17 +24,14 @@ along with GCC; see the file COPYING3. If not see
#define VMS
#endif
/* Define a local equivalent (sort of) for unlink */
#define unlink remove
/* Causes exit() to be redefined to __posix_exit() and
Posix compatible failure and success codes to be used */
Posix compatible failure and success codes to be used. */
#define _POSIX_EXIT 1
/* Open files in stream mode if not otherwise explicitly specified */
/* Open files in stream mode if not otherwise explicitly specified. */
#define __UNIX_FOPEN 1
/* Write to stdout using fputc to avoid record terminators in pipes */
/* Write to stdout using fputc to avoid record terminators in pipes. */
#define __UNIX_FWRITE 1
#define STDC_HEADERS 1
......@@ -54,3 +52,7 @@ do \
break; \
} \
} while (0)
#define STANDARD_EXEC_PREFIX "/gnu/libexec/gcc/"
#define STANDARD_STARTFILE_PREFIX "/gnu/lib/"
#define STANDARD_INCLUDE_DIR "/gnu/include"
/* Configuration for GCC for hosting on 64bit VMS
using a Unix style C library.
Copyright (C) 2009
Free Software Foundation, Inc.
This file is part of GCC.
GCC 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 3, or (at your option)
any later version.
GCC 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 GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define HOST_LONG_FORMAT "ll"
#define HOST_PTR_PRINTF "%llp"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment