20000317 sourceware import
This commit is contained in:
		
							
								
								
									
										142
									
								
								libgloss/i960/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								libgloss/i960/Makefile.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,142 @@
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
VPATH = @srcdir@ @srcdir@/..
 | 
			
		||||
srcdir = @srcdir@
 | 
			
		||||
objdir = .
 | 
			
		||||
srcroot = $(srcdir)/../..
 | 
			
		||||
objroot = $(objdir)/../..
 | 
			
		||||
 | 
			
		||||
prefix = @prefix@
 | 
			
		||||
exec_prefix = @exec_prefix@
 | 
			
		||||
 | 
			
		||||
host_alias = @host_alias@
 | 
			
		||||
target_alias = @target_alias@
 | 
			
		||||
 | 
			
		||||
bindir = @bindir@
 | 
			
		||||
libdir = @libdir@
 | 
			
		||||
tooldir = $(exec_prefix)/$(target_alias)
 | 
			
		||||
 | 
			
		||||
INSTALL = @INSTALL@
 | 
			
		||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
 | 
			
		||||
INSTALL_DATA = @INSTALL_DATA@
 | 
			
		||||
 | 
			
		||||
# Multilib support variables.
 | 
			
		||||
# TOP is used instead of MULTI{BUILD,SRC}TOP.
 | 
			
		||||
MULTIDIRS =
 | 
			
		||||
MULTISUBDIR =
 | 
			
		||||
 | 
			
		||||
SHELL =	/bin/sh
 | 
			
		||||
 | 
			
		||||
CC = @CC@
 | 
			
		||||
 | 
			
		||||
AS = @AS@
 | 
			
		||||
AR = @AR@
 | 
			
		||||
LD = @LD@
 | 
			
		||||
RANLIB = @RANLIB@
 | 
			
		||||
 | 
			
		||||
OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
 | 
			
		||||
	then echo ${objroot}/../binutils/objdump ; \
 | 
			
		||||
	else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
 | 
			
		||||
OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
 | 
			
		||||
	then echo ${objroot}/../binutils/objcopy ; \
 | 
			
		||||
	else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
 | 
			
		||||
 | 
			
		||||
OBJS		= putnum.o unlink.o
 | 
			
		||||
CFLAGS		= -g
 | 
			
		||||
SCRIPTS		= 
 | 
			
		||||
 | 
			
		||||
# Here is all of the simulator stuff
 | 
			
		||||
SIM_SCRIPTS	=
 | 
			
		||||
SIM_LDFLAGS	=
 | 
			
		||||
SIM_BSP		= libsim.a
 | 
			
		||||
SIM_CRT0	= sim-crt0.o
 | 
			
		||||
SIM_OBJS	= sim-print.o sim-inbyte.o sim-sbrk.o sim-abort.o sim-errno.o simulator.o
 | 
			
		||||
SIM_TEST	= sim-test
 | 
			
		||||
SIM_INSTALL	= install-sim
 | 
			
		||||
 | 
			
		||||
# Here is all of the mon960 stuff
 | 
			
		||||
MON_LDFLAGS	=
 | 
			
		||||
MON_BSP		= libmon960.a
 | 
			
		||||
MON_CRT0	= crt0.o
 | 
			
		||||
MON_OBJS	= mon-read.o mon-write.o mon-syscalls.o mon960.o
 | 
			
		||||
MON_SCRIPTS	= mon960.ld
 | 
			
		||||
MON_TEST	=
 | 
			
		||||
MON_INSTALL	= install-mon
 | 
			
		||||
 | 
			
		||||
# Host specific makefile fragment comes in here.
 | 
			
		||||
@host_makefile_frag@
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# build a test program for each target board. Just trying to get
 | 
			
		||||
# it to link is a good test, so we ignore all the errors for now.
 | 
			
		||||
#
 | 
			
		||||
all: ${MON_CRT0} ${MON_BSP}
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# here's where we build the board support packages for each target
 | 
			
		||||
#
 | 
			
		||||
${SIM_BSP}: ${OBJS} ${SIM_OBJS}
 | 
			
		||||
	${AR} ${ARFLAGS} ${SIM_BSP} ${SIM_OBJS} ${OBJS}
 | 
			
		||||
	${RANLIB} ${SIM_BSP}
 | 
			
		||||
 | 
			
		||||
${MON_BSP}: ${OBJS} ${MON_OBJS}
 | 
			
		||||
	${AR} ${ARFLAGS} ${MON_BSP} ${MON_OBJS} ${OBJS}
 | 
			
		||||
	${RANLIB} ${MON_BSP}
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# here's where we build the test programs for each target
 | 
			
		||||
#
 | 
			
		||||
.PHONY: test
 | 
			
		||||
test:	${SIM_TEST} ${MVME_TEST} ${EVM_TEST} 
 | 
			
		||||
 | 
			
		||||
sim-test:	sim-test.x sim-test.dis
 | 
			
		||||
 | 
			
		||||
sim-test.x:	test.o ${SIM_CRT0} ${SIM_BSP}
 | 
			
		||||
	${CC} ${LDFLAGS_FOR_TARGET} -L${objdir} \
 | 
			
		||||
	${SIM_CRT0} test.o \
 | 
			
		||||
	-o sim-test.x ${LIBS_FOR_TARGET} -lc ${SIM_BSP}
 | 
			
		||||
 | 
			
		||||
sim-test.dis:	sim-test.x
 | 
			
		||||
	${OBJDUMP} -d sim-test.x > sim-test.dis
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
.c.S:
 | 
			
		||||
	${CC} ${CFLAGS_FOR_TARGET} -c $<
 | 
			
		||||
 | 
			
		||||
simulator.o: simulator.S
 | 
			
		||||
sim-crt0.o: sim-crt0.S
 | 
			
		||||
mvme-crt0.o: mvme-crt0.S
 | 
			
		||||
mvme-exit.o: mvme-exit.S
 | 
			
		||||
mvme-inbyte.o: mvme-inbyte.S
 | 
			
		||||
mvme-outbyte.o: mvme-outbyte.S
 | 
			
		||||
 | 
			
		||||
clean mostlyclean:
 | 
			
		||||
	rm -f a.out core *.i *.o *-test *.srec *.dis *.x
 | 
			
		||||
 | 
			
		||||
distclean maintainer-clean realclean: clean
 | 
			
		||||
	rm -f Makefile config.status *~
 | 
			
		||||
 | 
			
		||||
.PHONY: install info install-info clean-info
 | 
			
		||||
install: ${MON_INSTALL}
 | 
			
		||||
 | 
			
		||||
install-mon:
 | 
			
		||||
	set -e; for x in ${MON_CRT0} ${MON_BSP}; do ${INSTALL_DATA} $$x ${tooldir}/lib${MULTISUBDIR}/$$x; done
 | 
			
		||||
	set -e; for x in ${MON_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/$$x ${tooldir}/lib${MULTISUBDIR}/$$x; done
 | 
			
		||||
 | 
			
		||||
install-sim:
 | 
			
		||||
	set -e; for x in ${SIM_CRT0} ${SIM_BSP} ${SIM_SCRIPTS}; do ${INSTALL_DATA} $$x ${tooldir}/lib/$$x; done
 | 
			
		||||
 | 
			
		||||
doc:
 | 
			
		||||
info:
 | 
			
		||||
install-info:
 | 
			
		||||
clean-info:
 | 
			
		||||
 | 
			
		||||
Makefile: Makefile.in config.status @host_makefile_frag_path@
 | 
			
		||||
	$(SHELL) config.status
 | 
			
		||||
 | 
			
		||||
config.status: configure
 | 
			
		||||
	$(SHELL) config.status --recheck
 | 
			
		||||
							
								
								
									
										17
									
								
								libgloss/i960/asm.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								libgloss/i960/asm.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
#ifndef ASM_H
 | 
			
		||||
#define ASM_H
 | 
			
		||||
 | 
			
		||||
#ifdef __STDC__
 | 
			
		||||
# define _C_LABEL(x)    _ ## x
 | 
			
		||||
#else
 | 
			
		||||
# define _C_LABEL(x)    _/**/x
 | 
			
		||||
#endif
 | 
			
		||||
#define _ASM_LABEL(x)   x
 | 
			
		||||
 | 
			
		||||
#define _ENTRY(name)	\
 | 
			
		||||
	.text; .align 4; .globl name; name:
 | 
			
		||||
 | 
			
		||||
#define ENTRY(name)	\
 | 
			
		||||
	_ENTRY(_C_LABEL(name))
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										1219
									
								
								libgloss/i960/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										1219
									
								
								libgloss/i960/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										75
									
								
								libgloss/i960/configure.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								libgloss/i960/configure.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
dnl Process this file with autoconf to produce a configure script.
 | 
			
		||||
AC_PREREQ(2.5)dnl
 | 
			
		||||
AC_INIT(crt0.c)
 | 
			
		||||
 | 
			
		||||
AC_CANONICAL_SYSTEM
 | 
			
		||||
AC_ARG_PROGRAM
 | 
			
		||||
 | 
			
		||||
if test "$srcdir" = "." ; then
 | 
			
		||||
  mdir=`echo "${with_multisubdir}/" \
 | 
			
		||||
    | sed -e 's,\([[^/]][[^/]]*\),..,g' -e 's,^/$,,'`
 | 
			
		||||
  AC_CONFIG_AUX_DIR(${mdir}../../..)
 | 
			
		||||
else
 | 
			
		||||
  AC_CONFIG_AUX_DIR(${srcdir}/../..)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AC_PROG_INSTALL
 | 
			
		||||
 | 
			
		||||
# FIXME: We temporarily define our own version of AC_PROG_CC.  This is
 | 
			
		||||
# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS.  We
 | 
			
		||||
# are probably using a cross compiler, which will not be able to fully
 | 
			
		||||
# link an executable.  This should really be fixed in autoconf
 | 
			
		||||
# itself.
 | 
			
		||||
 | 
			
		||||
AC_DEFUN(LIB_AC_PROG_CC,
 | 
			
		||||
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
 | 
			
		||||
AC_CHECK_PROG(CC, gcc, gcc)
 | 
			
		||||
if test -z "$CC"; then
 | 
			
		||||
  AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
 | 
			
		||||
  test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AC_PROG_CC_GNU
 | 
			
		||||
 | 
			
		||||
if test $ac_cv_prog_gcc = yes; then
 | 
			
		||||
  GCC=yes
 | 
			
		||||
dnl Check whether -g works, even if CFLAGS is set, in case the package
 | 
			
		||||
dnl plays around with CFLAGS (such as to build both debugging and
 | 
			
		||||
dnl normal versions of a library), tasteless as that idea is.
 | 
			
		||||
  ac_test_CFLAGS="${CFLAGS+set}"
 | 
			
		||||
  ac_save_CFLAGS="$CFLAGS"
 | 
			
		||||
  CFLAGS=
 | 
			
		||||
  AC_PROG_CC_G
 | 
			
		||||
  if test "$ac_test_CFLAGS" = set; then
 | 
			
		||||
    CFLAGS="$ac_save_CFLAGS"
 | 
			
		||||
  elif test $ac_cv_prog_cc_g = yes; then
 | 
			
		||||
    CFLAGS="-g -O2"
 | 
			
		||||
  else
 | 
			
		||||
    CFLAGS="-O2"
 | 
			
		||||
  fi
 | 
			
		||||
else
 | 
			
		||||
  GCC=
 | 
			
		||||
  test "${CFLAGS+set}" = set || CFLAGS="-g"
 | 
			
		||||
fi
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
LIB_AC_PROG_CC
 | 
			
		||||
AS=${AS-as}
 | 
			
		||||
AC_SUBST(AS)
 | 
			
		||||
AR=${AR-ar}
 | 
			
		||||
AC_SUBST(AR)
 | 
			
		||||
LD=${LD-ld}
 | 
			
		||||
AC_SUBST(LD)
 | 
			
		||||
AC_PROG_RANLIB
 | 
			
		||||
 | 
			
		||||
host_makefile_frag=${srcdir}/../config/default.mh
 | 
			
		||||
 | 
			
		||||
dnl We have to assign the same value to other variables because autoconf
 | 
			
		||||
dnl doesn't provide a mechanism to substitute a replacement keyword with
 | 
			
		||||
dnl arbitrary data or pathnames.
 | 
			
		||||
dnl
 | 
			
		||||
host_makefile_frag_path=$host_makefile_frag
 | 
			
		||||
AC_SUBST(host_makefile_frag_path)
 | 
			
		||||
AC_SUBST_FILE(host_makefile_frag)
 | 
			
		||||
 | 
			
		||||
AC_OUTPUT(Makefile)
 | 
			
		||||
							
								
								
									
										66
									
								
								libgloss/i960/crt0.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								libgloss/i960/crt0.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
extern int main(int argc, char **argv, char **envp);
 | 
			
		||||
extern int brk (void *value);
 | 
			
		||||
 | 
			
		||||
extern char bss_start;
 | 
			
		||||
extern char end;
 | 
			
		||||
 | 
			
		||||
char *__env[1] = {0};
 | 
			
		||||
char **environ = __env;
 | 
			
		||||
 | 
			
		||||
#define ENABLE_TRACE_MASK 1
 | 
			
		||||
 | 
			
		||||
__inline static void 
 | 
			
		||||
enable_tracing (void)
 | 
			
		||||
{
 | 
			
		||||
    register int mask = ENABLE_TRACE_MASK;
 | 
			
		||||
    __asm__ volatile ("modpc %0,%0,%0"
 | 
			
		||||
	              :
 | 
			
		||||
	              : "d" (mask));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define STACK_ALIGN 64
 | 
			
		||||
 | 
			
		||||
__inline static void
 | 
			
		||||
set_stack (void* ptr)
 | 
			
		||||
{
 | 
			
		||||
    ptr = (void *)(((int)ptr + STACK_ALIGN - 1) & ~(STACK_ALIGN - 1));
 | 
			
		||||
    /* SP must be 64 bytes larger than FP at start.  */
 | 
			
		||||
    __asm__ volatile ("mov %0,sp"
 | 
			
		||||
	              :
 | 
			
		||||
	              : "d" (ptr+STACK_ALIGN));
 | 
			
		||||
    __asm__ volatile ("mov %0,fp"
 | 
			
		||||
	              :
 | 
			
		||||
	              : "d" (ptr));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__inline static void 
 | 
			
		||||
init_Cregs (void)
 | 
			
		||||
{
 | 
			
		||||
    /* set register values gcc like */
 | 
			
		||||
    register unsigned int mask0=0x3b001000;
 | 
			
		||||
    register unsigned int mask1=0x00009107;
 | 
			
		||||
    __asm__ volatile ("mov   %0,g14"
 | 
			
		||||
                      :                      /* no output */
 | 
			
		||||
                      : "I" (0));            /* gnu structure pointer */
 | 
			
		||||
    __asm__ volatile ("modac %1,%0,%0"
 | 
			
		||||
                      :                      /* no output */
 | 
			
		||||
                      : "d" (mask0),
 | 
			
		||||
                        "d" (mask1));        /* fpu control kb */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
_start(void)
 | 
			
		||||
{
 | 
			
		||||
  char *p;
 | 
			
		||||
 | 
			
		||||
  enable_tracing ();
 | 
			
		||||
  set_stack (&end);
 | 
			
		||||
  init_Cregs ();
 | 
			
		||||
  /* The stack grows upwards, so this makes the heap start after a 256K
 | 
			
		||||
     stack area.  PlumHall known to fail with less than 73K of stack.  */
 | 
			
		||||
  brk (&end+0x40000);
 | 
			
		||||
  /* clear bss */
 | 
			
		||||
  memset (&bss_start, 0, &end - &bss_start);
 | 
			
		||||
  main(0, 0, 0);
 | 
			
		||||
  exit(0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								libgloss/i960/mon-read.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								libgloss/i960/mon-read.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
 | 
			
		||||
read (fd, buf, sz)
 | 
			
		||||
     int fd;
 | 
			
		||||
     char *buf;
 | 
			
		||||
     int sz;
 | 
			
		||||
{
 | 
			
		||||
  int nread;
 | 
			
		||||
  int r;
 | 
			
		||||
 | 
			
		||||
  r = _sys_read (fd, buf, sz, &nread);
 | 
			
		||||
  if (r != 0)
 | 
			
		||||
    {
 | 
			
		||||
      errno = r;
 | 
			
		||||
      return -1;
 | 
			
		||||
    }
 | 
			
		||||
  return nread;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								libgloss/i960/mon-syscalls.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								libgloss/i960/mon-syscalls.S
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
#include "asm.h"
 | 
			
		||||
 | 
			
		||||
ENTRY(_exit)
 | 
			
		||||
	lda	257,g13
 | 
			
		||||
	calls	g13
 | 
			
		||||
 | 
			
		||||
ENTRY(_sys_open)
 | 
			
		||||
	lda	230,g13
 | 
			
		||||
        calls	g13
 | 
			
		||||
	ret
 | 
			
		||||
 | 
			
		||||
ENTRY(_sys_read)
 | 
			
		||||
        lda	231,g13
 | 
			
		||||
	calls	g13
 | 
			
		||||
	ret
 | 
			
		||||
 | 
			
		||||
ENTRY(_sys_write)
 | 
			
		||||
	lda	232,g13
 | 
			
		||||
	calls	g13
 | 
			
		||||
	ret
 | 
			
		||||
 | 
			
		||||
ENTRY(_sys_lseek)
 | 
			
		||||
	lda	233,g13
 | 
			
		||||
	calls	g13
 | 
			
		||||
	ret
 | 
			
		||||
 | 
			
		||||
ENTRY(_sys_close)
 | 
			
		||||
	lda	234,g13
 | 
			
		||||
	calls	g13
 | 
			
		||||
	ret
 | 
			
		||||
							
								
								
									
										14
									
								
								libgloss/i960/mon-write.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								libgloss/i960/mon-write.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
write (int fd, const char *buf, int sz)
 | 
			
		||||
{
 | 
			
		||||
  int nwritten;
 | 
			
		||||
  int r = _sys_write (fd, buf, sz, &nwritten);
 | 
			
		||||
  if (r != 0)
 | 
			
		||||
    {
 | 
			
		||||
      errno = r;
 | 
			
		||||
      return -1;
 | 
			
		||||
    }
 | 
			
		||||
  return nwritten;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										83
									
								
								libgloss/i960/mon960.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								libgloss/i960/mon960.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,83 @@
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
 | 
			
		||||
static char *heap_end = 0;
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
brk (void *ptr)
 | 
			
		||||
{
 | 
			
		||||
  heap_end = ptr;
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
caddr_t
 | 
			
		||||
sbrk (int amt)
 | 
			
		||||
{
 | 
			
		||||
  extern char end;
 | 
			
		||||
  char *prev_heap_end;
 | 
			
		||||
 | 
			
		||||
  if (heap_end == 0) 
 | 
			
		||||
    heap_end = &end;
 | 
			
		||||
  prev_heap_end = heap_end;
 | 
			
		||||
  heap_end += amt;
 | 
			
		||||
  return ((caddr_t) prev_heap_end);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
isatty (int file)
 | 
			
		||||
{
 | 
			
		||||
  return file<3;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
fstat (int file, struct stat *st)
 | 
			
		||||
{
 | 
			
		||||
  st->st_mode = S_IFCHR;
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
stat (const char *filename, struct stat *st)
 | 
			
		||||
{
 | 
			
		||||
  st->st_mode = S_IFCHR;
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
lseek (int fd, off_t offset, int type)
 | 
			
		||||
{
 | 
			
		||||
  return _sys_lseek (fd, offset, type);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
open (char *file, int mode, int perms)
 | 
			
		||||
{
 | 
			
		||||
  return _sys_open (file, mode, perms);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
close (int fd)
 | 
			
		||||
{
 | 
			
		||||
  return _sys_close (fd);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
getpid ()
 | 
			
		||||
{
 | 
			
		||||
  return -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
kill (int pid, int signal)
 | 
			
		||||
{
 | 
			
		||||
  exit (signal);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
/* This conflicts with the abort defined in newlib.  */
 | 
			
		||||
void
 | 
			
		||||
abort ()
 | 
			
		||||
{
 | 
			
		||||
  exit (6);
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										36
									
								
								libgloss/i960/mon960.ld
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								libgloss/i960/mon960.ld
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
GROUP(-lc -lgcc -lmon960)
 | 
			
		||||
 | 
			
		||||
SECTIONS
 | 
			
		||||
{ 
 | 
			
		||||
    . = 0xa0008000;
 | 
			
		||||
    .text : 
 | 
			
		||||
    { 
 | 
			
		||||
	 CREATE_OBJECT_SYMBOLS
 | 
			
		||||
	*(.text) 
 | 
			
		||||
	 _etext = .;
 | 
			
		||||
	
 | 
			
		||||
	___CTOR_LIST__ = .;
 | 
			
		||||
	LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
 | 
			
		||||
	*(.ctors)
 | 
			
		||||
	LONG(0)
 | 
			
		||||
	___CTOR_END__ = .;
 | 
			
		||||
	___DTOR_LIST__ = .;
 | 
			
		||||
	LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
 | 
			
		||||
	*(.dtors)
 | 
			
		||||
	LONG(0)
 | 
			
		||||
	___DTOR_END__ = .;
 | 
			
		||||
    }  
 | 
			
		||||
    .data SIZEOF(.text) + ADDR(.text):
 | 
			
		||||
    { 
 | 
			
		||||
 	*(.data) 
 | 
			
		||||
	CONSTRUCTORS
 | 
			
		||||
	 _edata = .;
 | 
			
		||||
    }  
 | 
			
		||||
    .bss SIZEOF(.data) + ADDR(.data):
 | 
			
		||||
    { 
 | 
			
		||||
	 _bss_start = .;
 | 
			
		||||
	*(.bss)	 
 | 
			
		||||
	*(COMMON) 
 | 
			
		||||
	 _end = .;
 | 
			
		||||
    } 
 | 
			
		||||
} 
 | 
			
		||||
							
								
								
									
										51
									
								
								libgloss/i960/syscall.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								libgloss/i960/syscall.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
/* mon960 syscall.h file.  This is used only by the simulator.  This matches
 | 
			
		||||
   the syscall numbers used by mon-syscalls.S, but is otherwise a copy of
 | 
			
		||||
   the libgloss/syscall.h file.  */
 | 
			
		||||
/* ??? This file should be used by mon-syscalls.S to avoid maintenance
 | 
			
		||||
   problems.  */
 | 
			
		||||
 | 
			
		||||
#ifndef LIBGLOSS_SYSCALL_H
 | 
			
		||||
#define LIBGLOSS_SYSCALL_H
 | 
			
		||||
 | 
			
		||||
/* Note: This file may be included by assembler source.  */
 | 
			
		||||
 | 
			
		||||
/* These should be as small as possible to allow a port to use a trap type
 | 
			
		||||
   instruction, which the system call # as the trap (the d10v for instance
 | 
			
		||||
   supports traps 0..31).  An alternative would be to define one trap for doing
 | 
			
		||||
   system calls, and put the system call number in a register that is not used
 | 
			
		||||
   for the normal calling sequence (so that you don't have to shift down the
 | 
			
		||||
   arguments to add the system call number).  Obviously, if these system call
 | 
			
		||||
   numbers are ever changed, all of the simulators and potentially user code
 | 
			
		||||
   will need to be updated.  */
 | 
			
		||||
 | 
			
		||||
/* There is no current need for the following: SYS_execv, SYS_creat, SYS_wait,
 | 
			
		||||
   etc. etc.  Don't add them.  */
 | 
			
		||||
 | 
			
		||||
/* These are required by the ANSI C part of newlib (excluding system() of
 | 
			
		||||
   course).  */
 | 
			
		||||
#define	SYS_exit	257
 | 
			
		||||
#define	SYS_open	230
 | 
			
		||||
#define	SYS_close	234
 | 
			
		||||
#define	SYS_read	231
 | 
			
		||||
#define	SYS_write	232
 | 
			
		||||
#define	SYS_lseek	233
 | 
			
		||||
 | 
			
		||||
/* ??? The following system calls apparently aren't support by mon960.  */
 | 
			
		||||
#define	SYS_unlink	7
 | 
			
		||||
#define	SYS_getpid	8
 | 
			
		||||
#define	SYS_kill	9
 | 
			
		||||
#define SYS_fstat       10
 | 
			
		||||
/*#define SYS_sbrk	11 - not currently a system call, but reserved.  */
 | 
			
		||||
 | 
			
		||||
/* ARGV support.  */
 | 
			
		||||
#define SYS_argvlen	12
 | 
			
		||||
#define SYS_argv	13
 | 
			
		||||
 | 
			
		||||
/* These are extras added for one reason or another.  */
 | 
			
		||||
#define SYS_chdir	14
 | 
			
		||||
#define SYS_stat	15
 | 
			
		||||
#define SYS_chmod 	16
 | 
			
		||||
#define SYS_utime 	17
 | 
			
		||||
#define SYS_time 	18
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Reference in New Issue
	
	Block a user