URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/or1k/trunk/newlib/libgloss/sparc/libsys
- from Rev 1765 to Rev 40
- ↔ Reverse comparison
Rev 1765 → Rev 40
/syscall.h
File deleted
/configure
File deleted
configure
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: syscallasm.h
===================================================================
--- syscallasm.h (revision 1765)
+++ syscallasm.h (nonexistent)
@@ -1,93 +0,0 @@
-#ifndef _SYSCALLASM_H_
-#define _SYSCALLASM_H_
-
-/*
- * This file defines the system calls for SPARC for the assembler.
- * Anything C-ish is not allowed in this file.
- * C files should include syscall.h.
- */
-
-#include "syscall.h"
-
-/* Some macros for writing assember syscall stubs. */
-
-#ifdef SVR4
-#define TEXT_SECTION .section ".text"
-#define DATA_SECTION .section ".data"
-#define ALIGN(x) .align x
-#define GLOBAL(sym) .global sym
-#define WORD(x) .long x
-#define ASM_SYMBOL(name) name
-#define ASM_PRIVATE_SYMBOL(name) _##name
-#define SYSCALL_TRAP 8
-#else
-#define TEXT_SECTION .text
-#define DATA_SECTION .data
-#define ALIGN(x) .align x
-#define GLOBAL(sym) .global sym
-#define WORD(x) .word x
-#define ASM_SYMBOL(name) _##name
-#define ASM_PRIVATE_SYMBOL(name) name
-#define SYSCALL_TRAP 0
-#endif
-
-#define defsyscall(name, n) \
- TEXT_SECTION ; \
- ALIGN (4) ; \
- GLOBAL (ASM_SYMBOL (name)) ; \
-ASM_SYMBOL (name): \
- mov n,%g1 ; \
- ta SYSCALL_TRAP ; \
- bcc noerr ; \
- sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \
- or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \
- jmpl %g1+%g0,%g0 ; \
- nop ; \
-noerr: \
- jmpl %o7+8,%g0 ; \
- nop
-
-/* Support for reentrant syscalls. The "struct _reent *" arg is always the
- the first one. After that we allow up to four additional args. We could
- allow more, but that's all we need for now.
-
- It may seem inefficient to have the reent arg be the first one as it means
- copying all the other args into place (as opposed to making the reent arg
- the last one in which case there wouldn't be any copying). I chose a clean
- design over an extra four instructions in a system call. All other
- reentrant functions use the first arg this way.
- ??? Of course this scheme breaks down if we need to support 6 or more args.
-
- And of course the system calls aren't *really* reentrant. The intent
- is to exercise the reentrancy framework rather than provide/claim
- real reentrancy for this port.
-*/
-
-#define defsyscall_r(name, n) \
- TEXT_SECTION ; \
- ALIGN (4) ; \
- GLOBAL (ASM_SYMBOL (name)) ; \
-ASM_SYMBOL (name): \
- mov n,%g1 ; \
- mov %o0,%o5 ; \
- mov %o1,%o0 ; \
- mov %o2,%o1 ; \
- mov %o3,%o2 ; \
- mov %o4,%o3 ; \
- ta SYSCALL_TRAP ; \
- bcc noerr ; \
- sethi %hi (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 ; \
- or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 ; \
- jmpl %g1+%g0,%g0 ; \
- mov %o5,%o1 ; \
-noerr: \
- jmpl %o7+8,%g0 ; \
- nop
-
-#define seterrno() \
- sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \
- or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \
- jmpl %g1+%g0,%g0 ; \
- nop
-
-#endif /* _SYSCALLASM_H_ */
Index: Makefile.in
===================================================================
--- Makefile.in (revision 1765)
+++ Makefile.in (nonexistent)
@@ -1,167 +0,0 @@
-# Makefile for libgloss/sparc/libsys
-# Copyright (c) 1996 Cygnus Support.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms are permitted
-# provided that the above copyright notice and this paragraph are
-# duplicated in all such forms and that any documentation,
-# advertising materials, and other materials related to such
-# distribution and use acknowledge that the software was developed
-# at Cygnus Support, Inc. Cygnus Support, Inc. may not be used to
-# endorse or promote products derived from this software without
-# specific prior written permission.
-# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
-VPATH = @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@
-
-SHELL = /bin/sh
-
-CC = @CC@
-
-AS = @AS@
-AR = @AR@
-LD = @LD@
-RANLIB = @RANLIB@
-
-# _r.o is for the reentrant syscall stubs.
-# The .S_r.o/.c_r.o rules are from host/any.
-
-.SUFFIXES: .c .S .o _r.o
-
-.S_r.o:
- $(CC) $(CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS) -DREENT $(INCLUDES) -c $< -o $@
-.c_r.o:
- $(CC) $(CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS) -DREENT $(INCLUDES) -c $< -o $@
-
-# CFILES_R, SFILES_R, and TEMPLATE_SFILES_R define those system calls that are
-# needed by the ANSI C part of newlib when REENTRANT_SYSCALLS_PROVIDED is
-# defined.
-
-CFILES = isatty.c
-
-CFILES_R =
-
-SFILES = cerror.S _exit.S
-
-SFILES_R = sbrk.S
-
-# List of files built from template.S (with an '_' suffix).
-
-TEMPLATE_SFILES = chdir_ lstat_
-
-TEMPLATE_SFILES_R = close_ fstat_ getpid_ kill_ \
- lseek_ open_ read_ stat_ unlink_ write_
-
-# If newlib defines REENTRANT_SYSCALLS_PROVIDED, then these are used as well.
-REENTRANT_OFILES = $(SFILES_R:.S=_r.o) $(TEMPLATE_SFILES_R:_=_r.o) \
- $(CFILES_R:.c=_r.o)
-
-OFILES = $(SFILES:.S=.o) $(SFILES_R:.S=.o) \
- $(TEMPLATE_SFILES:_=.o) $(TEMPLATE_SFILES_R:_=.o) \
- $(CFILES:.c=.o) $(CFILES_R:.c=.o) \
- $(REENTRANT_OFILES)
-
-#### Host specific Makefile fragment comes in here.
-@host_makefile_frag@
-
-all: libsys.a libsys-crt0.o
-
-libsys.a: $(OFILES)
- rm -f $@
- $(AR) $(AR_FLAGS) $@ $(OFILES)
-
-install:
- $(INSTALL_DATA) libsys-crt0.o $(tooldir)/lib/libsys-crt0.o
- $(INSTALL_DATA) libsys.a $(tooldir)/lib/libsys.a
-
-doc:
-
-.PHONY: info install-info clean-info
-info:
-install-info:
-clean-info:
-
-clean mostlyclean:
- rm -f *.o *.a *.s stamp-srcs
-
-distclean maintainer-clean realclean: clean
- rm -f Makefile config.status
-
-Makefile: Makefile.in config.status @host_makefile_frag_path@
- $(SHELL) config.status
-
-config.status: configure
- $(SHELL) config.status --recheck
-
-stamp-srcs: Makefile template.S template_r.S
- for f in $(TEMPLATE_SFILES:_=) ; \
- do \
- $(CC) -E -Dfunc=$$f \
- $(CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS) $(INCLUDES) \
- $(srcdir)/template.S >$$f.S ; \
- done
- for f in $(TEMPLATE_SFILES_R:_=) ; \
- do \
- $(CC) -E -Dfunc=$$f \
- $(CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS) $(INCLUDES) \
- $(srcdir)/template_r.S | sed -e 's/^_/#/' >$$f.S ; \
- done
- touch stamp-srcs
-
-# Make a dependency for each file built from a template.
-
-$(TEMPLATE_SFILES:_=.S) $(TEMPLATE_SFILES_R:_=.S): stamp-srcs
-
-# To support SunOS broken VPATH (sigh).
-
-_exit.o: _exit.S
-cerror.o: cerror.S
-chdir.o: chdir.S
-close.o: close.S
-fstat.o: fstat.S
-getpid.o: getpid.S
-isatty.o: isatty.c
-kill.o: kill.S
-libsys-crt0.o: libsys-crt0.S
-lseek.o: lseek.S
-lstat.o: lstat.S
-open.o: open.S
-read.o: read.S
-sbrk.o: sbrk.S
-stat.o: stat.S
-write.o: write.S
-
-# Reentrant versions ...
-# These are all needed to support the ANSI C library routines.
-
-close_r.o: close.S
-fstat_r.o: fstat.S
-getpid_r.o: getpid.S
-kill_r.o: kill.S
-lseek_r.o: lseek.S
-open_r.o: open.S
-read_r.o: read.S
-sbrk_r.o: sbrk.S
-stat_r.o: stat.S
-unlink_r.o: unlink.S
-write_r.o: write.S
Index: sbrk.S
===================================================================
--- sbrk.S (revision 1765)
+++ sbrk.S (nonexistent)
@@ -1,66 +0,0 @@
-! sbrk() system call
-
-#include "syscallasm.h"
-
- TEXT_SECTION
- ALIGN (4)
-#ifdef REENT
- GLOBAL (ASM_SYMBOL (_sbrk_r))
-ASM_SYMBOL (_sbrk_r):
- mov %o0,%o5
- mov %o1,%o0
-#else
- GLOBAL (ASM_SYMBOL (sbrk))
-ASM_SYMBOL (sbrk):
-#endif
- add %o0,7,%o0
- andn %o0,7,%o0
- sethi %hi (ASM_PRIVATE_SYMBOL (curbrk)),%o2
-#ifdef __sparc_v9__
- lduw [%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))],%o3
-#else
- ld [%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))],%o3
-#endif
- add %o3,7,%o3
- andn %o3,7,%o3
- add %o3,%o0,%o0
- mov %o0,%o4
- mov SYS_brk,%g1
- ta SYSCALL_TRAP
- bcs err
- nop
- st %o4,[%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))]
- jmpl %o7+8,%g0
- mov %o3,%o0
-
-#ifdef REENT
- GLOBAL (ASM_SYMBOL (_brk_r))
-ASM_SYMBOL (_brk_r):
- mov %o0,%o5
- mov %o1,%o0
-#else
- GLOBAL (ASM_SYMBOL (brk))
-ASM_SYMBOL (brk):
-#endif
- add %o0,7,%o0
- andn %o0,7,%o0
- mov %o0,%o2
- mov SYS_brk,%g1
- ta SYSCALL_TRAP
- bcs err
- nop
- sethi %hi (ASM_PRIVATE_SYMBOL (curbrk)),%o3
- st %o2,[%o3+%lo (ASM_PRIVATE_SYMBOL (curbrk))]
- retl
- mov %g0,%o0
-
-err:
-#ifdef REENT
- sethi %hi (ASM_PRIVATE_SYMBOL (cerror_r)),%g1
- or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror_r)),%g1
-#else
- sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1
- or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1
-#endif
- jmpl %g1,%g0
- mov %o5,%o1
Index: configure.in
===================================================================
--- configure.in (revision 1765)
+++ configure.in (nonexistent)
@@ -1,50 +0,0 @@
-# Configure.in for libgloss/sparc/libsys
-# Copyright (c) 1996 Cygnus Support
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms are permitted
-# provided that the above copyright notice and this paragraph are
-# duplicated in all such forms and that any documentation,
-# advertising materials, and other materials related to such
-# distribution and use acknowledge that the software was developed
-# at Cygnus Support, Inc. Cygnus Support, Inc. may not be used to
-# endorse or promote products derived from this software without
-# specific prior written permission.
-# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
-dnl Process this file with autoconf to produce a configure script.
-AC_PREREQ(2.5)dnl
-AC_INIT(libsys-crt0.S)
-
-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
-
-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)
Index: _exit.S
===================================================================
--- _exit.S (revision 1765)
+++ _exit.S (nonexistent)
@@ -1,14 +0,0 @@
-! _exit() system call
-
-#include "syscallasm.h"
-
- TEXT_SECTION
- ALIGN (4)
- GLOBAL (ASM_SYMBOL (_exit))
-ASM_SYMBOL (_exit):
- mov SYS_exit,%g1
- ta SYSCALL_TRAP
-
-! If that returns (yikes!), try an illegal insn ...
-
- WORD (0)
\ No newline at end of file
Index: libsys-crt0.S
===================================================================
--- libsys-crt0.S (revision 1765)
+++ libsys-crt0.S (nonexistent)
@@ -1,127 +0,0 @@
-! C run time start off
-
-! This file supports:
-!
-! - both 32bit pointer and 64bit pointer environments (at compile time)
-! - an imposed stack bias (of 2047) (at run time)
-! - medium/low and medium/anywhere code models (at run time)
-
-! Initial stack setup:
-!
-! bottom of stack (higher memory address)
-! ...
-! text of environment strings
-! text of argument strings
-! envp[envc] = 0 (4/8 bytes)
-! ...
-! env[0] (4/8 bytes)
-! argv[argc] = 0 (4/8 bytes)
-! ...
-! argv[0] (4/8 bytes)
-! argc (4/8 bytes)
-! register save area (64 bits by 16 registers = 128 bytes)
-! top of stack (%sp)
-
-! Stack Bias:
-!
-! It is the responsibility of the o/s to set this up.
-! We handle both a 0 and 2047 value for the stack bias.
-
-! Medium/Anywhere code model support:
-!
-! In this model %g4 points to the start of the data segment.
-! The text segment can go anywhere, but %g4 points to the *data* segment.
-! It is up to the compiler/linker to get this right.
-!
-! Since this model is statically linked the start of the data segment
-! is known at link time. Eg:
-!
-! sethi %hh(data_start), %g1
-! sethi %lm(data_start), %g4
-! or %g1, %hm(data_start), %g1
-! or %g4, %lo(data_start), %g4
-! sllx %g1, 32, %g1
-! or %g4, %g1, %g4
-!
-! FIXME: For now we just assume 0.
-
-! FIXME: if %g1 contains a non-zero value, atexit() should be invoked
-! with this value.
-
-#include "syscallasm.h"
-
-#ifndef TARGET_PTR_SIZE
-#define TARGET_PTR_SIZE 32
-#endif
-
- TEXT_SECTION
- ALIGN (4)
- GLOBAL (ASM_PRIVATE_SYMBOL (start))
-ASM_PRIVATE_SYMBOL (start):
- clr %fp
-
-! We use %g4 even if the code model is Medium/Low (simplifies the code).
-
- clr %g4 ! Medium/Anywhere base reg
-
-! If there is a stack bias in effect, account for it in %g5. Then always
-! add %g5 to stack references below. This way the code can be used with
-! or without an imposed bias.
-
- andcc %sp, 1, %g5
- bnz,a .LHaveBias
- mov 2047, %g5
-.LHaveBias:
- add %sp, %g5, %sp
-
-#if TARGET_PTR_SIZE == 32
- ! FIXME: We apparently assume here that there is no reserved word.
- ! This is probably correct, but try to verify it.
- ld [%sp + 0x80], %o0 ! argc
- add %sp, 0x84, %o1 ! argv
- add %o0, 1, %o2
- sll %o2, 2, %o2
-#else /* TARGET_PTR_SIZE == 64 */
- ld [%sp + 0x8c], %o0 ! argc.lo
- add %sp, 0x90, %o1 ! argv
- add %o0, 1, %o2
- sll %o2, 3, %o2
-#endif
- add %o1, %o2, %o2 ! envp
- sethi %hi (ASM_SYMBOL (environ)), %o3
- or %o3, %lo (ASM_SYMBOL (environ)), %o3
-#if TARGET_PTR_SIZE == 32
- st %o2, [%o3 + %g4]
-#else /* TARGET_PTR_SIZE == 64 */
- stx %o2, [%o3 + %g4]
-#endif
-
-! Restore any stack bias before we call main() ...
-
- sub %sp, %g5, %sp
-
- GLOBAL (ASM_SYMBOL (main))
- call ASM_SYMBOL (main)
-
-! FIXME: Not sure if this is needed anymore.
-#if TARGET_PTR_SIZE == 32
- sub %sp, 0x20, %sp ! room to push args
-#else /* TARGET_PTR_SIZE == 64 */
- sub %sp, 0x30, %sp ! room to push args
-#endif
-
- GLOBAL (ASM_SYMBOL (exit))
- call ASM_SYMBOL (exit)
- nop
-
- GLOBAL (ASM_SYMBOL (_exit))
- call ASM_SYMBOL (_exit)
- nop
-
- set SYS_exit, %g1
- ta SYSCALL_TRAP ! in case user redefines __exit
-
-! If all the above methods fail to terminate the program, try an illegal insn.
-! If that does not work, the o/s is hosed more than we are.
-
- WORD (0)
Index: template.S
===================================================================
--- template.S (revision 1765)
+++ template.S (nonexistent)
@@ -1,14 +0,0 @@
-/* system call template */
-
-/* Lots of system calls are trivial functions, so we build their source files
- from a template. New syscalls can be added simply by editing the
- Makefile!
-
- Usage: Compile this file with "func" set to the name of the syscall. */
-
-#include "syscallasm.h"
-
-#define concat(a,b) a##b
-#define makesys(a) concat (SYS_, a)
-
- defsyscall (func, makesys(func))
Index: cerror.S
===================================================================
--- cerror.S (revision 1765)
+++ cerror.S (nonexistent)
@@ -1,47 +0,0 @@
-! Set errno.
-! This function is called by all the syscall stubs.
-!
-! FIXME: We assume errno is the first member of struct _reent.
-! Not sure what to do about this.
-
-#include "syscallasm.h"
-
- DATA_SECTION
- ALIGN (4)
- GLOBAL (ASM_SYMBOL (errno)) ! FIXME: ASM_PRIVATE_SYMBOL ?
-ASM_SYMBOL (errno):
- WORD (0)
-
- TEXT_SECTION
- ALIGN (4)
-
- GLOBAL (ASM_PRIVATE_SYMBOL (cerror))
-ASM_PRIVATE_SYMBOL (cerror):
- sethi %hi (ASM_SYMBOL (errno)),%g1
- st %o0,[%g1+%lo (ASM_SYMBOL (errno))]
- jmpl %o7+8,%g0
- mov -1,%o0
-
- GLOBAL (ASM_PRIVATE_SYMBOL (cerror_r))
-ASM_PRIVATE_SYMBOL (cerror_r):
- st %o0,[%o1]
- jmpl %o7+8,%g0
- mov -1,%o0
-
-! Since all system calls need this file, we put various state globals
-! here as well.
-
- DATA_SECTION
-
-! CURBRK contains the current top of allocated space.
-! END is a private symbol in svr4, but a public one in sunos4.
-! FIXME: CURBRK is 4 bytes for now.
-
- ALIGN (4)
- GLOBAL (ASM_PRIVATE_SYMBOL (curbrk))
-ASM_PRIVATE_SYMBOL (curbrk):
-#ifdef SVR4
- WORD (ASM_PRIVATE_SYMBOL (end))
-#else
- WORD (ASM_SYMBOL (end))
-#endif
Index: template_r.S
===================================================================
--- template_r.S (revision 1765)
+++ template_r.S (nonexistent)
@@ -1,26 +0,0 @@
-/* reentrant system call template */
-
-/* Lots of system calls are trivial functions, so we build their source files
- from a template. New syscalls can be added simply by editing the
- Makefile!
-
- The system calls aren't necessarily reentrant. If we were being used in
- an embedded system they could be. Reentrant syscalls are also used,
- however, to provide ANSI C namespace clean access to the host o/s.
-
- Usage: Compile this file with "func" set to the name of the syscall. */
-
-#include "syscallasm.h"
-
-#define concat(a,b) a##b
-#define concat3(a,b,c) a##b##c
-#define makesys(a) concat (SYS_, a)
-#define make_r_fn(a) concat3 (_, a, _r)
-
-/* The leading _'s get turned into #'s by the Makefile. */
-
-_ifdef REENT
- defsyscall_r (make_r_fn (func), makesys (func))
-_else
- defsyscall (func, makesys (func))
-_endif
Index: isatty.c
===================================================================
--- isatty.c (revision 1765)
+++ isatty.c (nonexistent)
@@ -1,17 +0,0 @@
-/* isatty.c */
-
-/* Dumb implementation so programs will at least run. */
-
-#include
-
-int
-isatty (int fd)
-{
- struct stat buf;
-
- if (fstat (fd, &buf) < 0)
- return 0;
- if (S_ISCHR (buf.st_mode))
- return 1;
- return 0;
-}