2006-08-16 Joel Schopp <jschopp@austin.ibm.com>
*  configure.in: Add spu support.
        *  configure: Regenerated.
        *  spu/Makefile.in: New file.
        *  spu/aclocal.m4: Ditto.
        *  spu/configure: Ditto.
        *  spu/configure.in: Ditto.
        *  spu/crt0.c: Ditto.
        *  spu/exit.c: Ditto.
        *  spu/init.c: Ditto.
        *  spu/jsre.h: Ditto.
        *  spu/sbrk.c: Ditto.
        *  spu/syscalls.c: Ditto.
			
			
This commit is contained in:
		| @@ -1,3 +1,18 @@ | ||||
| 2006-08-16  Joel Schopp  <jschopp@austin.ibm.com> | ||||
|  | ||||
| 	*  configure.in: Add spu support. | ||||
| 	*  configure: Regenerated. | ||||
| 	*  spu/Makefile.in: New file. | ||||
| 	*  spu/aclocal.m4: Ditto. | ||||
| 	*  spu/configure: Ditto. | ||||
| 	*  spu/configure.in: Ditto. | ||||
| 	*  spu/crt0.c: Ditto. | ||||
| 	*  spu/exit.c: Ditto. | ||||
| 	*  spu/init.c: Ditto. | ||||
| 	*  spu/jsre.h: Ditto. | ||||
| 	*  spu/sbrk.c: Ditto. | ||||
| 	*  spu/syscalls.c: Ditto. | ||||
|  | ||||
| 2006-07-05  Shaun Jackman  <sjackman@gmail.com> | ||||
|  | ||||
| 	* arm/linux-crt0.S: Remove file. | ||||
|   | ||||
							
								
								
									
										8
									
								
								libgloss/configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								libgloss/configure
									
									
									
									
										vendored
									
									
								
							| @@ -296,6 +296,7 @@ ac_subdirs_all="$ac_subdirs_all mt" | ||||
| ac_subdirs_all="$ac_subdirs_all xstormy16" | ||||
| ac_subdirs_all="$ac_subdirs_all m32c" | ||||
| ac_subdirs_all="$ac_subdirs_all arm" | ||||
| ac_subdirs_all="$ac_subdirs_all spu" | ||||
| ac_subdirs_all="$ac_subdirs_all iq2000" | ||||
| ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar subdirs CC DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE AS AR LD RANLIB ac_ct_RANLIB CCAS CCASFLAGS host_makefile_frag_path LIBOBJS LTLIBOBJS' | ||||
| ac_subst_files='host_makefile_frag' | ||||
| @@ -1976,6 +1977,13 @@ subdirs="$subdirs arm" | ||||
|  | ||||
| 	config_testsuite = true; | ||||
| 	;; | ||||
|   spu-*-elf) | ||||
|  | ||||
|  | ||||
| subdirs="$subdirs spu" | ||||
|  | ||||
| 	config_testsuite = false; | ||||
| 	;; | ||||
|   iq2000-*-*) | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -116,6 +116,10 @@ case "${target}" in | ||||
| 	AC_CONFIG_SUBDIRS(arm) | ||||
| 	config_testsuite = true; | ||||
| 	;; | ||||
|   spu-*-elf) | ||||
| 	AC_CONFIG_SUBDIRS(spu) | ||||
| 	config_testsuite = false; | ||||
| 	;; | ||||
|   iq2000-*-*) | ||||
| 	AC_CONFIG_SUBDIRS(iq2000) | ||||
| 	config_testsuite = true; | ||||
|   | ||||
							
								
								
									
										135
									
								
								libgloss/spu/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								libgloss/spu/Makefile.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,135 @@ | ||||
| # Copyright (c) 1998 Cygnus Support | ||||
| # | ||||
| # The authors hereby grant permission to use, copy, modify, distribute, | ||||
| # and license this software and its documentation for any purpose, provided | ||||
| # that existing copyright notices are retained in all copies and that this | ||||
| # notice is included verbatim in any distributions. No written agreement, | ||||
| # license, or royalty fee is required for any of the authorized uses. | ||||
| # Modifications to this software may be copyrighted by their authors | ||||
| # and need not follow the licensing terms described here, provided that | ||||
| # the new terms are clearly indicated on the first page of each file where | ||||
| # they apply. | ||||
|  | ||||
| VPATH = @srcdir@ | ||||
| srcdir = @srcdir@ | ||||
| objdir = . | ||||
| srcroot = $(srcdir)/../.. | ||||
| objroot = $(objdir)/../.. | ||||
|  | ||||
| prefix = @prefix@ | ||||
| exec_prefix = @exec_prefix@ | ||||
|  | ||||
| host_alias = @host_alias@ | ||||
| target_alias = @target_alias@ | ||||
| program_transform_name = @program_transform_name@ | ||||
|  | ||||
| bindir = @bindir@ | ||||
| libdir = @libdir@ | ||||
| tooldir = $(exec_prefix)/$(target_alias) | ||||
|  | ||||
| # Multilib support variables. | ||||
| # TOP is used instead of MULTI{BUILD,SRC}TOP. | ||||
| MULTIDIRS = | ||||
| MULTISUBDIR = | ||||
| MULTIDO = true | ||||
| MULTICLEAN = true | ||||
|  | ||||
| INSTALL = @INSTALL@ | ||||
| INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||||
| INSTALL_DATA = @INSTALL_DATA@ | ||||
|  | ||||
| SHELL =	/bin/sh | ||||
|  | ||||
| CC = @CC@ | ||||
|  | ||||
| AS = @AS@ | ||||
|  | ||||
| AR = @AR@ | ||||
|  | ||||
| LD = @LD@ | ||||
|  | ||||
| RANLIB = @RANLIB@ | ||||
|  | ||||
| OBJDUMP = `t='$(program_transform_name)'; echo objdump | sed -e $$t` | ||||
| OBJCOPY = `t='$(program_transform_name)'; echo objcopy | sed -e $$t` | ||||
|  | ||||
| # object files needed | ||||
| OBJS = syscalls.o init.o exit.o sbrk.o | ||||
|  | ||||
| # Object files specific to particular targets. | ||||
| EVALOBJS = ${OBJS} | ||||
|  | ||||
| GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \ | ||||
| 	then echo -L${objroot}/../gcc ; fi` | ||||
|  | ||||
| OUTPUTS = libgloss.a crt0.o | ||||
|  | ||||
| NEWLIB_CFLAGS = `if [ -d ${objroot}/newlib ]; then echo -I${objroot}/newlib/targ-include -I${srcroot}/newlib/libc/include; fi` | ||||
| NEWLIB_LDFLAGS = `if [ -d ${objroot}/newlib ]; then echo -B${objroot}/newlib/ -L${objroot}/newlib/; fi` | ||||
|  | ||||
| INCLUDES = -I. -I$(srcdir)/.. | ||||
|  | ||||
| # TODO: Once libspu is installed on the system we can remove this hack | ||||
| INCLUDES += -I${srcroot}/../libspu/include | ||||
|  | ||||
| # Note that when building the library, ${MULTILIB} is not the way multilib | ||||
| # options are passed; they're passed in $(CFLAGS). | ||||
| CFLAGS_FOR_TARGET = ${MULTILIB} ${INCLUDES} ${NEWLIB_CFLAGS} | ||||
| LDFLAGS_FOR_TARGET = ${MULTILIB} ${NEWLIB_LDFLAGS} | ||||
| AR_FLAGS = qc | ||||
|  | ||||
| .c.o: | ||||
| 	$(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $< | ||||
|  | ||||
| .C.o: | ||||
| 	$(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $< | ||||
| .s.o: | ||||
| 	$(AS) $(ASFLAGS_FOR_TARGET) $(INCLUDES) $(ASFLAGS) -o $*.o $< | ||||
|  | ||||
| # | ||||
| # GCC knows to run the preprocessor on .S files before it assembles them. | ||||
| # | ||||
| .S.o: | ||||
| 	$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -c $< | ||||
|  | ||||
| # | ||||
| # this is a bogus target that'll produce an assembler from the | ||||
| # C source with the right compiler options. this is so we can | ||||
| # track down code generation or debug symbol bugs. | ||||
| # | ||||
| .c.s: | ||||
| 	$(CC) $(CFLAGS_FOR_TARGET) -S $(INCLUDES) $(CFLAGS) $< | ||||
|  | ||||
| all: ${OUTPUTS} | ||||
|  | ||||
| # | ||||
| # here's where we build the library for each target | ||||
| # | ||||
|  | ||||
| libgloss.a: $(EVALOBJS) | ||||
| 	${AR} ${ARFLAGS} $@ $(EVALOBJS) | ||||
| 	${RANLIB} $@ | ||||
|  | ||||
| doc:	 | ||||
|  | ||||
| clean mostlyclean: | ||||
| 	rm -f $(OUTPUTS) *.i *~ *.o *-test *.srec *.dis *.map *.x | ||||
|  | ||||
| distclean maintainer-clean realclean: clean | ||||
| 	rm -f Makefile config.status $(OUTPUTS) | ||||
|  | ||||
| .PHONY: install info install-info clean-info | ||||
| install: | ||||
| 	for outputs in ${OUTPUTS}; do\ | ||||
| 	 ${INSTALL_DATA} $${outputs} $(DESTDIR)/${tooldir}/lib${MULTISUBDIR}/$${outputs}; \ | ||||
| 	done | ||||
|  | ||||
| info: | ||||
| install-info: | ||||
| clean-info: | ||||
|  | ||||
| Makefile: Makefile.in config.status @host_makefile_frag_path@ | ||||
| 	$(SHELL) config.status | ||||
|  | ||||
| config.status: configure | ||||
| 	$(SHELL) config.status --recheck | ||||
							
								
								
									
										400
									
								
								libgloss/spu/aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										400
									
								
								libgloss/spu/aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,400 @@ | ||||
| # generated automatically by aclocal 1.9.2 -*- Autoconf -*- | ||||
|  | ||||
| # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 | ||||
| # Free Software Foundation, Inc. | ||||
| # This file is free software; the Free Software Foundation | ||||
| # gives unlimited permission to copy and/or distribute it, | ||||
| # with or without modifications, as long as this notice is preserved. | ||||
|  | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||||
| # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||||
| # PARTICULAR PURPOSE. | ||||
|  | ||||
| # AM_CONDITIONAL                                              -*- Autoconf -*- | ||||
|  | ||||
| # Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. | ||||
|  | ||||
| # This program 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 2, or (at your option) | ||||
| # any later version. | ||||
|  | ||||
| # This program 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 this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | ||||
| # 02111-1307, USA. | ||||
|  | ||||
| # serial 6 | ||||
|  | ||||
| # AM_CONDITIONAL(NAME, SHELL-CONDITION) | ||||
| # ------------------------------------- | ||||
| # Define a conditional. | ||||
| AC_DEFUN([AM_CONDITIONAL], | ||||
| [AC_PREREQ(2.52)dnl | ||||
|  ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])], | ||||
| 	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl | ||||
| AC_SUBST([$1_TRUE]) | ||||
| AC_SUBST([$1_FALSE]) | ||||
| if $2; then | ||||
|   $1_TRUE= | ||||
|   $1_FALSE='#' | ||||
| else | ||||
|   $1_TRUE='#' | ||||
|   $1_FALSE= | ||||
| fi | ||||
| AC_CONFIG_COMMANDS_PRE( | ||||
| [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then | ||||
|   AC_MSG_ERROR([[conditional "$1" was never defined. | ||||
| Usually this means the macro was only invoked conditionally.]]) | ||||
| fi])]) | ||||
|  | ||||
| # serial 7						-*- Autoconf -*- | ||||
|  | ||||
| # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 | ||||
| # Free Software Foundation, Inc. | ||||
|  | ||||
| # This program 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 2, or (at your option) | ||||
| # any later version. | ||||
|  | ||||
| # This program 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 this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | ||||
| # 02111-1307, USA. | ||||
|  | ||||
|  | ||||
| # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be | ||||
| # written in clear, in which case automake, when reading aclocal.m4, | ||||
| # will think it sees a *use*, and therefore will trigger all it's | ||||
| # C support machinery.  Also note that it means that autoscan, seeing | ||||
| # CC etc. in the Makefile, will ask for an AC_PROG_CC use... | ||||
|  | ||||
|  | ||||
|  | ||||
| # _AM_DEPENDENCIES(NAME) | ||||
| # ---------------------- | ||||
| # See how the compiler implements dependency checking. | ||||
| # NAME is "CC", "CXX", "GCJ", or "OBJC". | ||||
| # We try a few techniques and use that to set a single cache variable. | ||||
| # | ||||
| # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was | ||||
| # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular | ||||
| # dependency, and given that the user is not expected to run this macro, | ||||
| # just rely on AC_PROG_CC. | ||||
| AC_DEFUN([_AM_DEPENDENCIES], | ||||
| [AC_REQUIRE([AM_SET_DEPDIR])dnl | ||||
| AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl | ||||
| AC_REQUIRE([AM_MAKE_INCLUDE])dnl | ||||
| AC_REQUIRE([AM_DEP_TRACK])dnl | ||||
|  | ||||
| ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=], | ||||
|        [$1], CXX,  [depcc="$CXX"  am_compiler_list=], | ||||
|        [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], | ||||
|        [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'], | ||||
|                    [depcc="$$1"   am_compiler_list=]) | ||||
|  | ||||
| AC_CACHE_CHECK([dependency style of $depcc], | ||||
|                [am_cv_$1_dependencies_compiler_type], | ||||
| [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then | ||||
|   # We make a subdir and do the tests there.  Otherwise we can end up | ||||
|   # making bogus files that we don't know about and never remove.  For | ||||
|   # instance it was reported that on HP-UX the gcc test will end up | ||||
|   # making a dummy file named `D' -- because `-MD' means `put the output | ||||
|   # in D'. | ||||
|   mkdir conftest.dir | ||||
|   # Copy depcomp to subdir because otherwise we won't find it if we're | ||||
|   # using a relative directory. | ||||
|   cp "$am_depcomp" conftest.dir | ||||
|   cd conftest.dir | ||||
|   # We will build objects and dependencies in a subdirectory because | ||||
|   # it helps to detect inapplicable dependency modes.  For instance | ||||
|   # both Tru64's cc and ICC support -MD to output dependencies as a | ||||
|   # side effect of compilation, but ICC will put the dependencies in | ||||
|   # the current directory while Tru64 will put them in the object | ||||
|   # directory. | ||||
|   mkdir sub | ||||
|  | ||||
|   am_cv_$1_dependencies_compiler_type=none | ||||
|   if test "$am_compiler_list" = ""; then | ||||
|      am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` | ||||
|   fi | ||||
|   for depmode in $am_compiler_list; do | ||||
|     # Setup a source with many dependencies, because some compilers | ||||
|     # like to wrap large dependency lists on column 80 (with \), and | ||||
|     # we should not choose a depcomp mode which is confused by this. | ||||
|     # | ||||
|     # We need to recreate these files for each test, as the compiler may | ||||
|     # overwrite some of them when testing with obscure command lines. | ||||
|     # This happens at least with the AIX C compiler. | ||||
|     : > sub/conftest.c | ||||
|     for i in 1 2 3 4 5 6; do | ||||
|       echo '#include "conftst'$i'.h"' >> sub/conftest.c | ||||
|       # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with | ||||
|       # Solaris 8's {/usr,}/bin/sh. | ||||
|       touch sub/conftst$i.h | ||||
|     done | ||||
|     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf | ||||
|  | ||||
|     case $depmode in | ||||
|     nosideeffect) | ||||
|       # after this tag, mechanisms are not by side-effect, so they'll | ||||
|       # only be used when explicitly requested | ||||
|       if test "x$enable_dependency_tracking" = xyes; then | ||||
| 	continue | ||||
|       else | ||||
| 	break | ||||
|       fi | ||||
|       ;; | ||||
|     none) break ;; | ||||
|     esac | ||||
|     # We check with `-c' and `-o' for the sake of the "dashmstdout" | ||||
|     # mode.  It turns out that the SunPro C++ compiler does not properly | ||||
|     # handle `-M -o', and we need to detect this. | ||||
|     if depmode=$depmode \ | ||||
|        source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ | ||||
|        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ | ||||
|        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ | ||||
|          >/dev/null 2>conftest.err && | ||||
|        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && | ||||
|        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && | ||||
|        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then | ||||
|       # icc doesn't choke on unknown options, it will just issue warnings | ||||
|       # or remarks (even with -Werror).  So we grep stderr for any message | ||||
|       # that says an option was ignored or not supported. | ||||
|       # When given -MP, icc 7.0 and 7.1 complain thusly: | ||||
|       #   icc: Command line warning: ignoring option '-M'; no argument required | ||||
|       # The diagnosis changed in icc 8.0: | ||||
|       #   icc: Command line remark: option '-MP' not supported | ||||
|       if (grep 'ignoring option' conftest.err || | ||||
|           grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else | ||||
|         am_cv_$1_dependencies_compiler_type=$depmode | ||||
|         break | ||||
|       fi | ||||
|     fi | ||||
|   done | ||||
|  | ||||
|   cd .. | ||||
|   rm -rf conftest.dir | ||||
| else | ||||
|   am_cv_$1_dependencies_compiler_type=none | ||||
| fi | ||||
| ]) | ||||
| AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) | ||||
| AM_CONDITIONAL([am__fastdep$1], [ | ||||
|   test "x$enable_dependency_tracking" != xno \ | ||||
|   && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) | ||||
| ]) | ||||
|  | ||||
|  | ||||
| # AM_SET_DEPDIR | ||||
| # ------------- | ||||
| # Choose a directory name for dependency files. | ||||
| # This macro is AC_REQUIREd in _AM_DEPENDENCIES | ||||
| AC_DEFUN([AM_SET_DEPDIR], | ||||
| [AC_REQUIRE([AM_SET_LEADING_DOT])dnl | ||||
| AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl | ||||
| ]) | ||||
|  | ||||
|  | ||||
| # AM_DEP_TRACK | ||||
| # ------------ | ||||
| AC_DEFUN([AM_DEP_TRACK], | ||||
| [AC_ARG_ENABLE(dependency-tracking, | ||||
| [  --disable-dependency-tracking  speeds up one-time build | ||||
|   --enable-dependency-tracking   do not reject slow dependency extractors]) | ||||
| if test "x$enable_dependency_tracking" != xno; then | ||||
|   am_depcomp="$ac_aux_dir/depcomp" | ||||
|   AMDEPBACKSLASH='\' | ||||
| fi | ||||
| AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) | ||||
| AC_SUBST([AMDEPBACKSLASH]) | ||||
| ]) | ||||
|  | ||||
| # Generate code to set up dependency tracking.   -*- Autoconf -*- | ||||
|  | ||||
| # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 | ||||
| #   Free Software Foundation, Inc. | ||||
|  | ||||
| # This program 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 2, or (at your option) | ||||
| # any later version. | ||||
|  | ||||
| # This program 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 this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | ||||
| # 02111-1307, USA. | ||||
|  | ||||
| #serial 2 | ||||
|  | ||||
| # _AM_OUTPUT_DEPENDENCY_COMMANDS | ||||
| # ------------------------------ | ||||
| AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], | ||||
| [for mf in $CONFIG_FILES; do | ||||
|   # Strip MF so we end up with the name of the file. | ||||
|   mf=`echo "$mf" | sed -e 's/:.*$//'` | ||||
|   # Check whether this is an Automake generated Makefile or not. | ||||
|   # We used to match only the files named `Makefile.in', but | ||||
|   # some people rename them; so instead we look at the file content. | ||||
|   # Grep'ing the first line is not enough: some people post-process | ||||
|   # each Makefile.in and add a new line on top of each file to say so. | ||||
|   # So let's grep whole file. | ||||
|   if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then | ||||
|     dirpart=`AS_DIRNAME("$mf")` | ||||
|   else | ||||
|     continue | ||||
|   fi | ||||
|   # Extract the definition of DEPDIR, am__include, and am__quote | ||||
|   # from the Makefile without running `make'. | ||||
|   DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` | ||||
|   test -z "$DEPDIR" && continue | ||||
|   am__include=`sed -n 's/^am__include = //p' < "$mf"` | ||||
|   test -z "am__include" && continue | ||||
|   am__quote=`sed -n 's/^am__quote = //p' < "$mf"` | ||||
|   # When using ansi2knr, U may be empty or an underscore; expand it | ||||
|   U=`sed -n 's/^U = //p' < "$mf"` | ||||
|   # Find all dependency output files, they are included files with | ||||
|   # $(DEPDIR) in their names.  We invoke sed twice because it is the | ||||
|   # simplest approach to changing $(DEPDIR) to its actual value in the | ||||
|   # expansion. | ||||
|   for file in `sed -n " | ||||
|     s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ | ||||
|        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do | ||||
|     # Make sure the directory exists. | ||||
|     test -f "$dirpart/$file" && continue | ||||
|     fdir=`AS_DIRNAME(["$file"])` | ||||
|     AS_MKDIR_P([$dirpart/$fdir]) | ||||
|     # echo "creating $dirpart/$file" | ||||
|     echo '# dummy' > "$dirpart/$file" | ||||
|   done | ||||
| done | ||||
| ])# _AM_OUTPUT_DEPENDENCY_COMMANDS | ||||
|  | ||||
|  | ||||
| # AM_OUTPUT_DEPENDENCY_COMMANDS | ||||
| # ----------------------------- | ||||
| # This macro should only be invoked once -- use via AC_REQUIRE. | ||||
| # | ||||
| # This code is only required when automatic dependency tracking | ||||
| # is enabled.  FIXME.  This creates each `.P' file that we will | ||||
| # need in order to bootstrap the dependency handling code. | ||||
| AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], | ||||
| [AC_CONFIG_COMMANDS([depfiles], | ||||
|      [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], | ||||
|      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) | ||||
| ]) | ||||
|  | ||||
| #                                                          -*- Autoconf -*- | ||||
| # Copyright (C) 2003  Free Software Foundation, Inc. | ||||
|  | ||||
| # This program 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 2, or (at your option) | ||||
| # any later version. | ||||
|  | ||||
| # This program 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 this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | ||||
| # 02111-1307, USA. | ||||
|  | ||||
| # serial 1 | ||||
|  | ||||
| # Check whether the underlying file-system supports filenames | ||||
| # with a leading dot.  For instance MS-DOS doesn't. | ||||
| AC_DEFUN([AM_SET_LEADING_DOT], | ||||
| [rm -rf .tst 2>/dev/null | ||||
| mkdir .tst 2>/dev/null | ||||
| if test -d .tst; then | ||||
|   am__leading_dot=. | ||||
| else | ||||
|   am__leading_dot=_ | ||||
| fi | ||||
| rmdir .tst 2>/dev/null | ||||
| AC_SUBST([am__leading_dot])]) | ||||
|  | ||||
| # Check to see how 'make' treats includes.	-*- Autoconf -*- | ||||
|  | ||||
| # Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. | ||||
|  | ||||
| # This program 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 2, or (at your option) | ||||
| # any later version. | ||||
|  | ||||
| # This program 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 this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | ||||
| # 02111-1307, USA. | ||||
|  | ||||
| # serial 2 | ||||
|  | ||||
| # AM_MAKE_INCLUDE() | ||||
| # ----------------- | ||||
| # Check to see how make treats includes. | ||||
| AC_DEFUN([AM_MAKE_INCLUDE], | ||||
| [am_make=${MAKE-make} | ||||
| cat > confinc << 'END' | ||||
| am__doit: | ||||
| 	@echo done | ||||
| .PHONY: am__doit | ||||
| END | ||||
| # If we don't find an include directive, just comment out the code. | ||||
| AC_MSG_CHECKING([for style of include used by $am_make]) | ||||
| am__include="#" | ||||
| am__quote= | ||||
| _am_result=none | ||||
| # First try GNU make style include. | ||||
| echo "include confinc" > confmf | ||||
| # We grep out `Entering directory' and `Leaving directory' | ||||
| # messages which can occur if `w' ends up in MAKEFLAGS. | ||||
| # In particular we don't look at `^make:' because GNU make might | ||||
| # be invoked under some other name (usually "gmake"), in which | ||||
| # case it prints its new name instead of `make'. | ||||
| if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then | ||||
|    am__include=include | ||||
|    am__quote= | ||||
|    _am_result=GNU | ||||
| fi | ||||
| # Now try BSD make style include. | ||||
| if test "$am__include" = "#"; then | ||||
|    echo '.include "confinc"' > confmf | ||||
|    if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then | ||||
|       am__include=.include | ||||
|       am__quote="\"" | ||||
|       _am_result=BSD | ||||
|    fi | ||||
| fi | ||||
| AC_SUBST([am__include]) | ||||
| AC_SUBST([am__quote]) | ||||
| AC_MSG_RESULT([$_am_result]) | ||||
| rm -f confinc confmf | ||||
| ]) | ||||
|  | ||||
| m4_include([../acinclude.m4]) | ||||
							
								
								
									
										3130
									
								
								libgloss/spu/configure
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3130
									
								
								libgloss/spu/configure
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										50
									
								
								libgloss/spu/configure.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								libgloss/spu/configure.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| dnl Process this file with autoconf to produce a configure script. | ||||
| AC_PREREQ(2.59)dnl | ||||
| AC_INIT(crt0.c) | ||||
|  | ||||
| if test "$srcdir" = "." ; then | ||||
|   if test "${with_target_subdir}" != "." ; then | ||||
|     libgloss_topdir="${srcdir}/${with_multisrctop}../../.." | ||||
|   else | ||||
|     libgloss_topdir="${srcdir}/${with_multisrctop}../.." | ||||
|   fi | ||||
| else | ||||
|   libgloss_topdir="${srcdir}/../.." | ||||
| fi | ||||
| AC_CONFIG_AUX_DIR($libgloss_topdir) | ||||
|  | ||||
| AC_CANONICAL_SYSTEM | ||||
| AC_ARG_PROGRAM | ||||
|  | ||||
| AC_PROG_INSTALL | ||||
|  | ||||
| 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 | ||||
| LIB_AM_PROG_AS | ||||
|  | ||||
| host_makefile_frag=${srcdir}/../config/ppc.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, | ||||
| . ${libgloss_topdir}/config-ml.in, | ||||
| srcdir=${srcdir} | ||||
| target=${target} | ||||
| ac_configure_args="${ac_configure_args} --enable-multilib" | ||||
| CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} | ||||
| libgloss_topdir=${libgloss_topdir} | ||||
| ) | ||||
|  | ||||
							
								
								
									
										56
									
								
								libgloss/spu/crt0.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								libgloss/spu/crt0.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2005, 2006 | ||||
|  | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without  | ||||
| modification, are permitted provided that the following conditions are met: | ||||
|  | ||||
|     * Redistributions of source code must retain the above copyright notice,  | ||||
| this list of conditions and the following disclaimer. | ||||
|     * Redistributions in binary form must reproduce the above copyright  | ||||
| notice, this list of conditions and the following disclaimer in the  | ||||
| documentation and/or other materials provided with the distribution. | ||||
|     * Neither the name of IBM nor the names of its contributors may be  | ||||
| used to endorse or promote products derived from this software without  | ||||
| specific prior written permission. | ||||
|  | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  | ||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  | ||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  | ||||
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  | ||||
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  | ||||
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  | ||||
| SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  | ||||
| INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  | ||||
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  | ||||
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  | ||||
| POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| Author: Andreas Neukoetter (ti95neuk@de.ibm.com) | ||||
| */ | ||||
|  | ||||
| /* right now spu-gcc has its own crt0, so this is only for future use */ | ||||
| #if 0 | ||||
| extern int main (int, unsigned long long, unsigned long long); | ||||
|  | ||||
| extern char _end; | ||||
| extern char __bss_start; | ||||
|  | ||||
| extern void exit (int); | ||||
|  | ||||
| void _exit (int); | ||||
|  | ||||
| _start (int spuid, unsigned long long parm, unsigned long long env) | ||||
| { | ||||
| 	exit (main (spuid, parm, env)); | ||||
| } | ||||
|  | ||||
| void | ||||
| _exit (int rc) | ||||
| { | ||||
| 	si_stop (0x2000 | (rc & 0xff )); | ||||
| } | ||||
| #endif | ||||
|  | ||||
|  | ||||
							
								
								
									
										44
									
								
								libgloss/spu/exit.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								libgloss/spu/exit.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2005, 2006 | ||||
|  | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without  | ||||
| modification, are permitted provided that the following conditions are met: | ||||
|  | ||||
|     * Redistributions of source code must retain the above copyright notice,  | ||||
| this list of conditions and the following disclaimer. | ||||
|     * Redistributions in binary form must reproduce the above copyright  | ||||
| notice, this list of conditions and the following disclaimer in the  | ||||
| documentation and/or other materials provided with the distribution. | ||||
|     * Neither the name of IBM nor the names of its contributors may be  | ||||
| used to endorse or promote products derived from this software without  | ||||
| specific prior written permission. | ||||
|  | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  | ||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  | ||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  | ||||
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  | ||||
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  | ||||
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  | ||||
| SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  | ||||
| INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  | ||||
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  | ||||
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  | ||||
| POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| Author: Andreas Neukoetter (ti95neuk@de.ibm.com) | ||||
| */ | ||||
|  | ||||
| void __attribute__ (( destructor )) libgloss_exit( void ) | ||||
| { | ||||
| 	/* we don't need any cleanup on the SPE ... yet */ | ||||
| 	/* DEBUG HERE */ | ||||
| } | ||||
|  | ||||
| void exit( int status ) | ||||
| { | ||||
| 	/* handle atexit, etc here */ | ||||
| 	_exit( status ); | ||||
| } | ||||
|  | ||||
							
								
								
									
										37
									
								
								libgloss/spu/init.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								libgloss/spu/init.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2005, 2006 | ||||
|  | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without  | ||||
| modification, are permitted provided that the following conditions are met: | ||||
|  | ||||
|     * Redistributions of source code must retain the above copyright notice,  | ||||
| this list of conditions and the following disclaimer. | ||||
|     * Redistributions in binary form must reproduce the above copyright  | ||||
| notice, this list of conditions and the following disclaimer in the  | ||||
| documentation and/or other materials provided with the distribution. | ||||
|     * Neither the name of IBM nor the names of its contributors may be  | ||||
| used to endorse or promote products derived from this software without  | ||||
| specific prior written permission. | ||||
|  | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  | ||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  | ||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  | ||||
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  | ||||
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  | ||||
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  | ||||
| SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  | ||||
| INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  | ||||
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  | ||||
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  | ||||
| POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| Author: Andreas Neukoetter (ti95neuk@de.ibm.com) | ||||
| */ | ||||
|  | ||||
| void __attribute__ (( constructor )) libgloss_init( void ) | ||||
| { | ||||
|  | ||||
| } | ||||
|  | ||||
							
								
								
									
										148
									
								
								libgloss/spu/jsre.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								libgloss/spu/jsre.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,148 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2005, 2006 | ||||
|  | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without  | ||||
| modification, are permitted provided that the following conditions are met: | ||||
|  | ||||
|     * Redistributions of source code must retain the above copyright notice,  | ||||
| this list of conditions and the following disclaimer. | ||||
|     * Redistributions in binary form must reproduce the above copyright  | ||||
| notice, this list of conditions and the following disclaimer in the  | ||||
| documentation and/or other materials provided with the distribution. | ||||
|     * Neither the name of IBM nor the names of its contributors may be  | ||||
| used to endorse or promote products derived from this software without  | ||||
| specific prior written permission. | ||||
|  | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  | ||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  | ||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  | ||||
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  | ||||
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  | ||||
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  | ||||
| SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  | ||||
| INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  | ||||
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  | ||||
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  | ||||
| POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| Author: Andreas Neukoetter (ti95neuk@de.ibm.com) | ||||
| */ | ||||
|  | ||||
| /* this file provides the mappings for the JSRE defined interface for PE assisted libary calls */ | ||||
|  | ||||
| #ifndef __JSRE_H | ||||
| #define __JSRE_H | ||||
|  | ||||
| #define JSRE_SEEK_SET 0 | ||||
| #define JSRE_SEEK_CUR 1 | ||||
| #define JSRE_SEEK_END 2 | ||||
|  | ||||
| #define JSRE_O_RDONLY 0 | ||||
| #define JSRE_O_WRONLY 1 | ||||
| #define JSRE_O_RDWR 2 | ||||
|  | ||||
| #define JSRE_O_CREAT 64 | ||||
| #define JSRE_O_EXCL 128 | ||||
| #define JSRE_O_NOCTTY 256 | ||||
| #define JSRE_O_TRUNC 512 | ||||
| #define JSRE_O_APPEND 1024 | ||||
| #define JSRE_O_NDELAY 2048 | ||||
| #define JSRE_O_SYNC 4096 | ||||
| #define JSRE_O_ASYNC 8192 | ||||
|  | ||||
| #define JSRE_CLOSE 2 | ||||
| #define JSRE_FSTAT 4 | ||||
| #define JSRE_LSEEK 9 | ||||
| #define JSRE_OPEN 15 | ||||
| #define JSRE_READ 16 | ||||
| #define JSRE_UNLINK 24 | ||||
| #define JSRE_WRITE 27 | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
| 	unsigned int	pathname; | ||||
| 	unsigned int	pad0[ 3 ]; | ||||
| 	unsigned int	flags; | ||||
| 	unsigned int	pad1[ 3 ]; | ||||
| 	unsigned int	mode; | ||||
| 	unsigned int	pad2[ 3 ]; | ||||
| } syscall_open_t; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
| 	unsigned int	file; | ||||
| 	unsigned int	pad0[ 3 ]; | ||||
| 	unsigned int	ptr; | ||||
| 	unsigned int	pad1[ 3 ]; | ||||
| 	unsigned int	len; | ||||
| 	unsigned int	pad2[ 3 ]; | ||||
| } syscall_write_t; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
| 	unsigned int	file; | ||||
| 	unsigned int	pad0[ 3 ]; | ||||
| 	unsigned int	ptr; | ||||
| 	unsigned int	pad1[ 3 ]; | ||||
| 	unsigned int	len; | ||||
| 	unsigned int	pad2[ 3 ]; | ||||
| } syscall_read_t; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
| 	unsigned int	file; | ||||
| 	unsigned int	pad0[ 3 ]; | ||||
| } syscall_close_t; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
| 	unsigned int	file; | ||||
| 	unsigned int	pad0[ 3 ]; | ||||
| 	unsigned int	offset; | ||||
| 	unsigned int	pad1[ 3 ]; | ||||
| 	unsigned int	whence; | ||||
| 	unsigned int	pad2[ 3 ]; | ||||
| } syscall_lseek_t; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
| 	unsigned int	pathname; | ||||
| 	unsigned int	pad0[ 3 ]; | ||||
| } syscall_unlink_t; | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|         unsigned int    file; | ||||
|         unsigned int    pad0[ 3 ]; | ||||
|         unsigned int    ptr; | ||||
|         unsigned int    pad1[ 3 ]; | ||||
| } syscall_fstat_t; | ||||
|  | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
| 	unsigned int	rc; | ||||
| 	unsigned int	pad0[ 2 ]; | ||||
| 	unsigned int	err; | ||||
| } syscall_out_t; | ||||
|  | ||||
| typedef struct { | ||||
|     unsigned int dev; | ||||
|     unsigned int ino; | ||||
|     unsigned int mode; | ||||
|     unsigned int nlink; | ||||
|     unsigned int uid; | ||||
|     unsigned int gid; | ||||
|     unsigned int rdev; | ||||
|     unsigned int size; | ||||
|     unsigned int blksize; | ||||
|     unsigned int blocks; | ||||
|     unsigned int atime; | ||||
|     unsigned int mtime; | ||||
|     unsigned int ctime; | ||||
| } jsre_stat_t; | ||||
|  | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										63
									
								
								libgloss/spu/sbrk.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								libgloss/spu/sbrk.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2005, 2006 | ||||
|  | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without  | ||||
| modification, are permitted provided that the following conditions are met: | ||||
|  | ||||
|     * Redistributions of source code must retain the above copyright notice,  | ||||
| this list of conditions and the following disclaimer. | ||||
|     * Redistributions in binary form must reproduce the above copyright  | ||||
| notice, this list of conditions and the following disclaimer in the  | ||||
| documentation and/or other materials provided with the distribution. | ||||
|     * Neither the name of IBM nor the names of its contributors may be  | ||||
| used to endorse or promote products derived from this software without  | ||||
| specific prior written permission. | ||||
|  | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  | ||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  | ||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  | ||||
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  | ||||
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  | ||||
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  | ||||
| SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  | ||||
| INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  | ||||
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  | ||||
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  | ||||
| POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| Author: Andreas Neukoetter (ti95neuk@de.ibm.com) | ||||
| */ | ||||
|  | ||||
| #include <sys/types.h> | ||||
| #include <errno.h> | ||||
|  | ||||
| extern int errno; | ||||
|  | ||||
| extern caddr_t  _end; | ||||
| #define RAMSIZE 262144 | ||||
| #define STACKSIZE 4096 | ||||
|  | ||||
| void * | ||||
| sbrk (ptrdiff_t increment) | ||||
| { | ||||
| 	static caddr_t heap_ptr = NULL; | ||||
| 	caddr_t base; | ||||
|  | ||||
| 	if (heap_ptr == NULL) | ||||
| 	  { | ||||
| 		  heap_ptr = (caddr_t) & _end; | ||||
| 	  } | ||||
| 	if (((RAMSIZE - STACKSIZE) - (int) heap_ptr) >= increment) | ||||
| 	  { | ||||
| 		  base = heap_ptr; | ||||
| 		  heap_ptr += increment; | ||||
| 		  return (base); | ||||
| 	  } | ||||
| 	else | ||||
| 	  { | ||||
| 		  errno = ENOMEM; | ||||
| 		  return ((void *) -1); | ||||
| 	  } | ||||
| } | ||||
							
								
								
									
										260
									
								
								libgloss/spu/syscalls.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										260
									
								
								libgloss/spu/syscalls.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,260 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2005, 2006 | ||||
|  | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without  | ||||
| modification, are permitted provided that the following conditions are met: | ||||
|  | ||||
|     * Redistributions of source code must retain the above copyright notice,  | ||||
| this list of conditions and the following disclaimer. | ||||
|     * Redistributions in binary form must reproduce the above copyright  | ||||
| notice, this list of conditions and the following disclaimer in the  | ||||
| documentation and/or other materials provided with the distribution. | ||||
|     * Neither the name of IBM nor the names of its contributors may be  | ||||
| used to endorse or promote products derived from this software without  | ||||
| specific prior written permission. | ||||
|  | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  | ||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  | ||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  | ||||
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  | ||||
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  | ||||
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  | ||||
| SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  | ||||
| INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  | ||||
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  | ||||
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  | ||||
| POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| Author: Andreas Neukoetter (ti95neuk@de.ibm.com) | ||||
| */ | ||||
|  | ||||
| #include <spu_intrinsics.h> | ||||
| #include <stdarg.h> | ||||
| #include <sys/types.h> | ||||
| #include <sys/stat.h> | ||||
| #include <fcntl.h> | ||||
| #include <unistd.h> | ||||
| #include <errno.h> | ||||
| #include "../syscall.h" | ||||
|  | ||||
| #include "jsre.h" | ||||
|  | ||||
| static void | ||||
| send_to_ppe_0x2101 (int opcode, void *data) | ||||
| { | ||||
|  | ||||
| 	unsigned int	combined = ( ( opcode<<24 )&0xff000000 ) | ( ( unsigned int )data & 0x00ffffff ); | ||||
|  | ||||
|         vector unsigned int stopfunc = { | ||||
|                 0x00002101,     /* stop 0x2101 */ | ||||
|                 (unsigned int) combined, | ||||
|                 0x4020007f,     /* nop */ | ||||
|                 0x35000000      /* bi $0 */ | ||||
|         }; | ||||
|  | ||||
|         void (*f) (void) = (void *) &stopfunc; | ||||
|         asm ("sync"); | ||||
|         return (f ()); | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| isatty (int fd) | ||||
| { | ||||
| 	return (0); | ||||
| } | ||||
|  | ||||
| int | ||||
| getpid () | ||||
| { | ||||
| 	return (1); | ||||
| } | ||||
|  | ||||
| int | ||||
| kill (int pid, int sig) | ||||
| { | ||||
| 	if (pid == 1) | ||||
| 	  { | ||||
| 		  _exit (sig); | ||||
| 	  } | ||||
| } | ||||
|  | ||||
| int | ||||
| read (int file, void *ptr, size_t len) | ||||
| { | ||||
|         syscall_write_t sys; | ||||
| 	syscall_out_t	*psys_out = ( syscall_out_t* )&sys; | ||||
|  | ||||
| 	sys.file = file; | ||||
| 	sys.ptr = ( unsigned int )ptr; | ||||
| 	sys.len = len; | ||||
|  | ||||
| 	send_to_ppe_0x2101 (JSRE_READ, &sys); | ||||
|  | ||||
|         errno = psys_out->err; | ||||
|         return ( psys_out->rc); | ||||
| } | ||||
|  | ||||
| off_t | ||||
| lseek (int file, off_t offset, int whence) | ||||
| { | ||||
|         syscall_lseek_t sys; | ||||
| 	syscall_out_t	*psys_out = ( syscall_out_t* )&sys; | ||||
|  | ||||
| 	sys.file = file; | ||||
| 	sys.offset = offset; | ||||
|  | ||||
| 	switch( whence ){ | ||||
| 		case SEEK_SET: | ||||
| 			sys.whence = JSRE_SEEK_SET; | ||||
| 			break; | ||||
| 		case SEEK_CUR: | ||||
| 			sys.whence = JSRE_SEEK_CUR; | ||||
| 			break; | ||||
| 		case SEEK_END: | ||||
| 			sys.whence = JSRE_SEEK_END; | ||||
| 			break; | ||||
| 	} | ||||
|  | ||||
| 	send_to_ppe_0x2101 (JSRE_LSEEK, &sys); | ||||
|  | ||||
|         errno = psys_out->err; | ||||
|         return ( psys_out->rc); | ||||
| } | ||||
|  | ||||
| int | ||||
| write (int file, const void *ptr, size_t len) | ||||
| { | ||||
|         syscall_write_t sys; | ||||
| 	syscall_out_t	*psys_out = ( syscall_out_t* )&sys; | ||||
|  | ||||
| 	sys.file = file; | ||||
| 	sys.ptr = ( unsigned int )ptr; | ||||
| 	sys.len = len; | ||||
|  | ||||
| 	send_to_ppe_0x2101 (JSRE_WRITE, &sys); | ||||
|  | ||||
|         errno = psys_out->err; | ||||
|         return ( psys_out->rc); | ||||
| } | ||||
|  | ||||
| int | ||||
| open (const char *filename, int flags, ...) | ||||
| { | ||||
|         int rc; | ||||
|         int len; | ||||
|  | ||||
|         syscall_open_t sys ; | ||||
| 	syscall_out_t	*psys_out = ( syscall_out_t* )&sys; | ||||
|  | ||||
|         sys.pathname = ( unsigned int )filename; | ||||
|  | ||||
| 	sys.flags = 0; | ||||
|  | ||||
| 	sys.flags |= ( ( flags & O_CREAT ) ? JSRE_O_CREAT : 0 ); | ||||
| 	sys.flags |= ( ( flags & O_EXCL ) ? JSRE_O_EXCL : 0 ); | ||||
| 	sys.flags |= ( ( flags & O_NOCTTY ) ? JSRE_O_NOCTTY : 0 ); | ||||
| 	sys.flags |= ( ( flags & O_TRUNC ) ? JSRE_O_TRUNC : 0 ); | ||||
| 	sys.flags |= ( ( flags & O_APPEND ) ? JSRE_O_APPEND : 0 ); | ||||
| //	sys.flags |= ( ( flags & O_NOBLOCK ) ? JSRE_O_NOBLOCK : 0 ); | ||||
| //	sys.flags |= ( ( flags & O_NDELAY ) ? JSRE_O_NDELAY : 0 ); | ||||
| 	sys.flags |= ( ( flags & O_SYNC ) ? JSRE_O_SYNC : 0 ); | ||||
| //	sys.flags |= ( ( flags & O_NOFOLLOW ) ? JSRE_O_NOFOLLOW : 0 ); | ||||
| //	sys.flags |= ( ( flags & O_DIRECTORY ) ? JSRE_O_DIRECTORY : 0 ); | ||||
| //	sys.flags |= ( ( flags & O_DIRECT ) ? JSRE_O_DIRECT : 0 ); | ||||
| //	sys.flags |= ( ( flags & O_ASYNC ) ? JSRE_O_ASYNC : 0 ); | ||||
| //	sys.flags |= ( ( flags & O_LARGEFILE ) ? JSRE_O_LARGEFILE : 0 ); | ||||
|  | ||||
|  | ||||
| 	sys.flags |= ( ( flags & O_RDONLY ) ? JSRE_O_RDONLY : 0 ); | ||||
| 	sys.flags |= ( ( flags & O_WRONLY ) ? JSRE_O_WRONLY : 0 ); | ||||
| 	sys.flags |= ( ( flags & O_RDWR )  ? JSRE_O_RDWR  : 0 ); | ||||
|  | ||||
|  | ||||
| 	/* FIXME: we have to check/map all flags */ | ||||
|  | ||||
|         if ((sys.flags & O_CREAT)) | ||||
|           { | ||||
|                   va_list ap; | ||||
|  | ||||
|                   va_start (ap, flags); | ||||
|                   sys.mode = va_arg (ap, int); | ||||
|                   va_end (ap); | ||||
|  | ||||
|           } | ||||
|         else | ||||
|           { | ||||
|                   sys.mode = 0; | ||||
|           } | ||||
|  | ||||
|         send_to_ppe_0x2101 ( JSRE_OPEN, &sys); | ||||
|  | ||||
|         errno = psys_out->err; | ||||
|         return ( psys_out->rc); | ||||
| } | ||||
|  | ||||
| int | ||||
| close (int file) | ||||
| { | ||||
|         int rc; | ||||
|  | ||||
|         syscall_close_t sys ; | ||||
| 	syscall_out_t	*psys_out = ( syscall_out_t* )&sys; | ||||
|  | ||||
| 	sys.file = file; | ||||
|  | ||||
|         send_to_ppe_0x2101 (JSRE_CLOSE, &sys); | ||||
|  | ||||
|         errno = psys_out->err; | ||||
|         return ( psys_out->rc); | ||||
| } | ||||
|  | ||||
| int | ||||
| fstat (int file, struct stat *pstat) | ||||
| { | ||||
|         syscall_fstat_t sys; | ||||
|         syscall_out_t   *psys_out = ( syscall_out_t* )&sys; | ||||
|         jsre_stat_t pjstat; | ||||
|  | ||||
|         sys.file = file; | ||||
|         sys.ptr = ( unsigned int )&pjstat; | ||||
|  | ||||
|         send_to_ppe_0x2101 (JSRE_FSTAT, &sys); | ||||
|  | ||||
|         pstat->st_dev = pjstat.dev; | ||||
|         pstat->st_ino = pjstat.ino; | ||||
|         pstat->st_mode = pjstat.mode; | ||||
|         pstat->st_nlink = pjstat.nlink; | ||||
|         pstat->st_uid = pjstat.uid; | ||||
|         pstat->st_gid = pjstat.gid; | ||||
|         pstat->st_rdev = pjstat.rdev; | ||||
|         pstat->st_size = pjstat.size; | ||||
|         pstat->st_blksize = pjstat.blksize; | ||||
|         pstat->st_blocks = pjstat.blocks; | ||||
|         pstat->st_atime = pjstat.atime; | ||||
|         pstat->st_mtime = pjstat.mtime; | ||||
|         pstat->st_ctime = pjstat.ctime; | ||||
|  | ||||
|  | ||||
|         errno = psys_out->err; | ||||
|         return( psys_out->rc ); | ||||
| } | ||||
|  | ||||
| int | ||||
| unlink (const char *pathname) | ||||
| { | ||||
|         int rc; | ||||
|  | ||||
|         syscall_unlink_t sys ; | ||||
| 	syscall_out_t	*psys_out = ( syscall_out_t* )&sys; | ||||
|  | ||||
| 	sys.pathname = ( unsigned int )pathname; | ||||
|  | ||||
|         send_to_ppe_0x2101 (JSRE_UNLINK, &sys); | ||||
|  | ||||
|         errno = psys_out->err; | ||||
|         return ( psys_out->rc); | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user