Since $(AS) is the assembler, passing it a list of preprocessor include
flags doesn't make much sense. The files aren't preprocessed which means
`#include` lines aren't respected, and while it would affect `.include`
usage, we never use that, and it's extremely unlikely to change. Plus,
it's extremely unlikely we'd have .s files in common places to include vs
contained entirely within a specific arch dir, and at that point, it can
be included directly (with no flags), or the arch can add the unique set
of include paths that it needs for itself.
The newlib & libgloss dirs are already generated using autoconf-2.69.
To avoid merging new code and/or accidental regeneration using diff
versions, leverage config/override.m4 to pin to 2.69 exactly. This
matches what gcc/binutils/gdb are already doing.
The README file already says to use autoconf-2.69.
To accomplish this, it's just as simple as adding -I flags to the
top-level config/ dir when running aclocal. This is because the
override.m4 file overrides AC_INIT to first require the specific
autoconf version before calling the real AC_INIT.
In order to transition to automake, we have to use hardcoded paths in
the AC_CONFIG_AUX_DIR macro call (since automake evaluates the path
itself, and doesn't expand vars), so simplify all the calls here.
Regenerate the files using automake-1.15 & autoconf-2.69 to match the
binutils/gdb/gcc projects. Ran:
libgloss $ find -name configure.ac -printf '%h\n' | while read d; do
(cd $d; export WANT_AUTOCONF=2.69 WANT_AUTOMAKE=1.15;
aclocal-1.15 -I.. && autoconf-2.69); done
* spu/sbrk.c: Use the current stack pointer value rather than the
maximum available memory to determine the amount of heap space
left. Without this change calling sbrk() can allocate space that
is currently in use on the stack.
* spu/Makefile.in: Add new files.
* spu/jsre.h: Add JSRE_PREAD, JSRE_PWRITE, JSRE_READV, and
JSRE_WRITEV opcodes.
* spu/pread.c: New file to add pread via assist call.
* spu/pwrite.c: New file to add pwrite via assist call.
* spu/readv.c: New file to add readv via assist call.
* spu/writev.c: New file to add writev via assist call.
* spu/jsre.h: Add JSRE_SCHED_YIELD, JSRE_UMASK, JSRE_UTIME, and
JSRE_UTIMES.
* spu/sched_yield.c: New file add sched_yield via assist call.
* spu/umask.c: New file add umask via assist call.
* spu/utime.c: New file add utime via assist call.
* spu/utimes.c: New file add utimes via assist call.
* spu/Makefile.in: Add new files.
* spu/jsre.h: Add JSRE_SHM_OPEN and JSRE_SHM_UNLINK opcodes.
* spu/shm_open.c: New file to add shm_open via assist call.
* spu/shm_unlink.c: New file to add shm_unlink via assist call.
* spu/Makefile.in: Add shm_open.o and shm_unlink.o
* spu/dirfuncs.c: New file, holds the opendir, closedir, readdir,
rewinddir, seekdir and telldir implementations. These are
grouped in one file so that we do not need a separate file for
the struct dirent and DIR allocation code.
* spu/jsre.h: Add JSRE_OPENDIR and other dir opcodes.
* spu/Makefile.in: Add dirfuncs.o.
* spu/jsre.h: Add JSRE_MKSTEMP and JSRE_MKTEMP values.
* spu/mkstemp.c: New file to add mkstemp support via assist call.
* spu/mktemp.c: New file to add mktemp support via assist call.
* spu/Makefile.in: Add mkstemp.o and mktemp.o
* spu/jsre.h: Add new JSRE opcodes.
* spu/dup2.c: New file to add dup2 support via assist call.
* spu/fdatasync.c: New file to add fdatasync support via assist call.
* spu/fsync.c: New file to add fsync support via assist call.
* spu/lockf.c: New file to add lockf support via assist call.
* spu/sync.c: New file to add sync support via assist call.
* spu/truncate.c: New file to add truncate support via assist call.
* spu/Makefile.in: Add new files.
* spu/jsre.h: JSRE_LINK, JSRE_SYMLINK and JSRE_READLINK.
* spu/link.c: New file to add link support via an assist call.
* spu/readlink.c: New file to add readlink support via an assist call.
* spu/symlink.c: New file to add symlink support via an assist call.
* spu/Makefile.in: Add new files.
* spu/jsre.h: Add JSRE_LSTAT.
* spu/lstat.c: New file add lstat support via an assist call.
* spu/conv_stat.c: New file, add common stat conversion code.
* spu/fstat.c: Use __conv_stat.
* spu/stat.c: Use __conv_stat.
* spu/Makefile.in: Add conv_stat.o and lstat.o.
* spu/jsre.h: Add defines for new assist calls.
* spu/chdir.c: New file, support chdir via assist call.
* spu/chmod.c: New file, support chmod via assist call.
* spu/chown.c: New file, support chown via assist call.
* spu/fchdir.c: New file, support fchdir via assist call.
* spu/fchmod.c: New file, support fchmod via assist call.
* spu/fchown.c: New file, support fchown via assist call.
* spu/lchown.c: New file, support lchown via assist call.
* spu/mkdir.c: New file, support mkdir via assist call.
* spu/mknod.c: New file, support mknod via assist call.
* spu/rmdir.c: New file, support rmdir via assist call.
* spu/Makefile.in: Add new files.
* spu/jsre.h: Remove the assist call structs and defines that are
specific to one assist call from here.
* spu/access.c: Move struct syscall_access_t to here.
* spu/fstat.c: Move struct syscall_fstat_t to here.
* spu/ftruncate.c: Move struct syscall_ftruncate_t to here.
* spu/gettimeofday.c: Move struct syscall_gettimeofday_t to here.
* spu/lseek.c: Move struct syscall_lseek_t and JSRE_SEEK defines to
here.
* spu/open.c: Move struct syscall_open_t and JSRE_O_ defines to here.
* spu/read.c: Move struct syscall_read_t to here, and actually use
it (it is the same as syscall_write_t).
* spu/stat.c: Move struct syscall_stat_t to here.
* spu/write.c: Move struct syscall_write_t to here.
* spu/close.c: Pass the address of the first and only argument to
__send_to_ppe rather than using an automatic variable and a
special struct.
* spu/dup.c: Ditto.
* spu/unlink.c: Ditto.
* spu/syscalls.c: Change __send_to_ppe to return the result stored
in stored in slot 0 of the data, rather than have each assisted
call retrieve the value.
* spu/jsre.h: Remove the now unused syscall_out_t.
* spu/access.c: Use the __send_to_ppe result instead of the slot 0
value, remove unused syscall_out_t variable.
* spu/close.c: Ditto.
* spu/dup.c: Ditto.
* spu/fstat.c: Ditto.
* spu/ftruncate.c: Ditto.
* spu/gettimeofday.c: Ditto.
* spu/lseek.c: Ditto.
* spu/open.c: Ditto.
* spu/read.c: Ditto.
* spu/stat.c: Ditto.
* spu/unlink.c: Ditto.
* spu/write.c: Ditto.