diff --git a/build-devkit.sh b/build-devkit.sh index 897b73f..89c36cf 100644 --- a/build-devkit.sh +++ b/build-devkit.sh @@ -6,8 +6,13 @@ # devkitPSP release 13 #--------------------------------------------------------------------------------- -if [ 0 -eq 1 ] ; then - echo "Currently in release cycle, proceed with caution, do not report problems, do not ask for support" +if [ 1 -eq 1 ] ; then + echo "Currently in release cycle, proceed with caution, do not report problems, do not ask for support." + echo "Please use the latest release buildscripts unless advised otherwise by devkitPro staff." + echo "http://sourceforge.net/projects/devkitpro/files/buildscripts/" + echo + echo "The scripts in svn are quite often dependent on things which currently only exist on developer" + echo "machines. This is not a bug, use stable releases." exit 1 fi @@ -15,15 +20,15 @@ fi #--------------------------------------------------------------------------------- # specify some urls to download the source packages from #--------------------------------------------------------------------------------- -LIBOGC_VER=1.8.2 +LIBOGC_VER=1.8.3 LIBGBA_VER=20081210 -LIBNDS_VER=1.4.1 +LIBNDS_VER=1.4.4 DEFAULT_ARM7_VER=0.5.10 DSWIFI_VER=0.3.12 LIBMIRKO_VER=0.9.7 MAXMOD_VER=1.0.6 -FILESYSTEM_VER=0.9.5 -LIBFAT_VER=1.0.7 +FILESYSTEM_VER=0.9.6 +LIBFAT_VER=1.0.8 LIBOGC="libogc-src-$LIBOGC_VER.tar.bz2" LIBGBA="libgba-src-$LIBGBA_VER.tar.bz2" @@ -97,7 +102,7 @@ case "$VERSION" in GCC_VER=4.4.3 BINUTILS_VER=2.20 NEWLIB_VER=1.18.0 - GDB_VER=7.0.1 + GDB_VER=7.1 basedir='dkarm-eabi' package=devkitARM builddir=arm-eabi @@ -108,7 +113,7 @@ case "$VERSION" in GCC_VER=4.4.3 BINUTILS_VER=2.20 NEWLIB_VER=1.18.0 - GDB_VER=7.0.1 + GDB_VER=7.1 basedir='dkppc' package=devkitPPC builddir=powerpc-eabi diff --git a/dkarm-eabi/patches/gdb-7.0.1.patch b/dkarm-eabi/patches/gdb-7.1.patch similarity index 72% rename from dkarm-eabi/patches/gdb-7.0.1.patch rename to dkarm-eabi/patches/gdb-7.1.patch index 08e60e0..8be0ad7 100644 --- a/dkarm-eabi/patches/gdb-7.0.1.patch +++ b/dkarm-eabi/patches/gdb-7.1.patch @@ -1,7 +1,7 @@ -diff -Nbaur gdb-7.0.1/gdb/Makefile.in gdb-7.0.1-new/gdb/Makefile.in ---- gdb-7.0.1/gdb/Makefile.in 2009-10-02 23:06:10.000000000 +0100 -+++ gdb-7.0.1-new/gdb/Makefile.in 2010-01-21 15:25:25.000000000 +0000 -@@ -2005,10 +2005,10 @@ +diff -Nbaur gdb-7.1/gdb/Makefile.in gdb-7.1-ppc/gdb/Makefile.in +--- gdb-7.1/gdb/Makefile.in 2010-02-02 23:16:53.000000000 +0000 ++++ gdb-7.1-ppc/gdb/Makefile.in 2010-03-19 09:27:41.000000000 +0000 +@@ -2016,10 +2016,10 @@ # Note that we put the dependencies into a .Tpo file, then move them # into place if the compile succeeds. We need this because gcc does # not atomically write the dependency output file. @@ -16,9 +16,9 @@ diff -Nbaur gdb-7.0.1/gdb/Makefile.in gdb-7.0.1-new/gdb/Makefile.in @GMAKE_TRUE@else @GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ @GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) -diff -Nbaur gdb-7.0.1/sim/ppc/Makefile.in gdb-7.0.1-new/sim/ppc/Makefile.in ---- gdb-7.0.1/sim/ppc/Makefile.in 2009-09-16 00:26:44.000000000 +0100 -+++ gdb-7.0.1-new/sim/ppc/Makefile.in 2010-01-21 15:25:25.000000000 +0000 +diff -Nbaur gdb-7.1/sim/ppc/Makefile.in gdb-7.1-ppc/sim/ppc/Makefile.in +--- gdb-7.1/sim/ppc/Makefile.in 2009-09-16 00:26:44.000000000 +0100 ++++ gdb-7.1-ppc/sim/ppc/Makefile.in 2010-03-19 09:27:41.000000000 +0000 @@ -551,7 +551,7 @@ PACKAGE_OBJ = @sim_pk_obj@ diff --git a/dkarm-eabi/patches/newlib-1.18.0.patch b/dkarm-eabi/patches/newlib-1.18.0.patch index 6b36d73..f9baea6 100644 --- a/dkarm-eabi/patches/newlib-1.18.0.patch +++ b/dkarm-eabi/patches/newlib-1.18.0.patch @@ -70,8 +70,8 @@ diff -Nbaur newlib-1.18.0/libgloss/configure.in newlib-1.18.0-arm/libgloss/confi AS=${AS-as} diff -Nbaur newlib-1.18.0/libgloss/libsysbase/Makefile.in newlib-1.18.0-arm/libgloss/libsysbase/Makefile.in --- newlib-1.18.0/libgloss/libsysbase/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ newlib-1.18.0-arm/libgloss/libsysbase/Makefile.in 2009-12-21 11:08:45.000000000 +0000 -@@ -0,0 +1,147 @@ ++++ newlib-1.18.0-arm/libgloss/libsysbase/Makefile.in 2010-03-19 20:45:02.000000000 +0000 +@@ -0,0 +1,148 @@ +# Copyright (c) 1998 Cygnus Support +# +# The authors hereby grant permission to use, copy, modify, distribute, @@ -143,7 +143,8 @@ diff -Nbaur newlib-1.18.0/libgloss/libsysbase/Makefile.in newlib-1.18.0-arm/libg + isatty.o kill.o link.o lseek.o open.o read.o sbrk.o stat.o times.o \ + unlink.o wait.o write.o _exit.o malloc_vars.o \ + chdir.o mkdir.o dir.o rename.o build_argv.o statvfs.o \ -+ flock.o syscall_support.o handle_manager.o truncate.o ftruncate.o dirent.o fsync.o ++ flock.o syscall_support.o handle_manager.o truncate.o ftruncate.o dirent.o fsync.o \ ++ fchmod.o chmod.o + +# Object files specific to particular targets. +EVALOBJS = ${OBJS} @@ -850,6 +851,35 @@ diff -Nbaur newlib-1.18.0/libgloss/libsysbase/chdir.c newlib-1.18.0-arm/libgloss + + return buf; +} +diff -Nbaur newlib-1.18.0/libgloss/libsysbase/chmod.c newlib-1.18.0-arm/libgloss/libsysbase/chmod.c +--- newlib-1.18.0/libgloss/libsysbase/chmod.c 1970-01-01 01:00:00.000000000 +0100 ++++ newlib-1.18.0-arm/libgloss/libsysbase/chmod.c 2010-03-19 13:40:55.000000000 +0000 +@@ -0,0 +1,25 @@ ++#include "config.h" ++#include <_ansi.h> ++#include <_syslist.h> ++#include ++#include ++#include ++#include ++ ++int chmod(const char *path, mode_t mode) { ++ int ret,dev; ++ struct _reent *r = _REENT; ++ ++ /* Get device from path name */ ++ dev = FindDevice(path); ++ ++ if ((dev < 0) || (devoptab_list[dev]->chmod_r == NULL)) { ++ r->_errno = ENODEV; ++ ret = -1; ++ } else { ++ ret = devoptab_list[dev]->chmod_r(r,path,mode); ++ } ++ ++ return ret; ++} ++ diff -Nbaur newlib-1.18.0/libgloss/libsysbase/close.c newlib-1.18.0-arm/libgloss/libsysbase/close.c --- newlib-1.18.0/libgloss/libsysbase/close.c 1970-01-01 01:00:00.000000000 +0100 +++ newlib-1.18.0-arm/libgloss/libsysbase/close.c 2009-12-21 11:08:45.000000000 +0000 @@ -4997,6 +5027,40 @@ diff -Nbaur newlib-1.18.0/libgloss/libsysbase/execve.c newlib-1.18.0-arm/libglos + return -1; +} + +diff -Nbaur newlib-1.18.0/libgloss/libsysbase/fchmod.c newlib-1.18.0-arm/libgloss/libsysbase/fchmod.c +--- newlib-1.18.0/libgloss/libsysbase/fchmod.c 1970-01-01 01:00:00.000000000 +0100 ++++ newlib-1.18.0-arm/libgloss/libsysbase/fchmod.c 2010-03-19 13:44:36.000000000 +0000 +@@ -0,0 +1,30 @@ ++#include "config.h" ++#include <_ansi.h> ++#include <_syslist.h> ++#include ++#include ++#include ++#include ++ ++#include "handle_manager.h" ++ ++int fchmod(int fd, mode_t mode) { ++ int ret = -1, dev; ++ struct _reent *r = _REENT; ++ ++ if(fd!=-1) { ++ ++ __handle *handle = __get_handle(fd); ++ ++ if ( handle != NULL) { ++ ++ dev = handle->device; ++ fd = (unsigned int)handle->fileStruct; ++ ++ if(devoptab_list[dev]->fchmod_r) ++ ret = devoptab_list[dev]->fchmod_r(r,fd,mode); ++ ++ } ++ } ++ return ret; ++} diff -Nbaur newlib-1.18.0/libgloss/libsysbase/flock.c newlib-1.18.0-arm/libgloss/libsysbase/flock.c --- newlib-1.18.0/libgloss/libsysbase/flock.c 1970-01-01 01:00:00.000000000 +0100 +++ newlib-1.18.0-arm/libgloss/libsysbase/flock.c 2009-12-21 11:08:45.000000000 +0000 @@ -6193,6 +6257,361 @@ diff -Nbaur newlib-1.18.0/libgloss/libsysbase/write.c newlib-1.18.0-arm/libgloss + } + return ret; +} +diff -Nbaur newlib-1.18.0/newlib/libc/include/pthread.h newlib-1.18.0-arm/newlib/libc/include/pthread.h +--- newlib-1.18.0/newlib/libc/include/pthread.h 2009-12-17 19:22:23.000000000 +0000 ++++ newlib-1.18.0-arm/newlib/libc/include/pthread.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,351 +0,0 @@ +-/* pthread.h +- * +- * Written by Joel Sherrill . +- * +- * COPYRIGHT (c) 1989-2000. +- * On-Line Applications Research Corporation (OAR). +- * +- * Permission to use, copy, modify, and distribute this software for any +- * purpose without fee is hereby granted, provided that this entire notice +- * is included in all copies of any software which is or includes a copy +- * or modification of this software. +- * +- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +- * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION +- * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS +- * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. +- * +- * $Id: pthread.h,v 1.8 2009/12/17 19:22:23 jjohnstn Exp $ +- */ +- +-#ifndef __PTHREAD_h +-#define __PTHREAD_h +- +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-#include +- +-#if defined(_POSIX_THREADS) +- +-#include +-#include +-#include +- +-/* Register Fork Handlers */ +-int _EXFUN(pthread_atfork,(void (*prepare)(void), void (*parent)(void), +- void (*child)(void))); +- +-/* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */ +- +-int _EXFUN(pthread_mutexattr_init, (pthread_mutexattr_t *__attr)); +-int _EXFUN(pthread_mutexattr_destroy, (pthread_mutexattr_t *__attr)); +-int _EXFUN(pthread_mutexattr_getpshared, +- (_CONST pthread_mutexattr_t *__attr, int *__pshared)); +-int _EXFUN(pthread_mutexattr_setpshared, +- (pthread_mutexattr_t *__attr, int __pshared)); +- +-#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) +- +-/* Single UNIX Specification 2 Mutex Attributes types */ +- +-int _EXFUN(pthread_mutexattr_gettype, +- (_CONST pthread_mutexattr_t *__attr, int *__kind)); +-int _EXFUN(pthread_mutexattr_settype, +- (pthread_mutexattr_t *__attr, int __kind)); +- +-#endif +- +-/* Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 */ +- +-int _EXFUN(pthread_mutex_init, +- (pthread_mutex_t *__mutex, _CONST pthread_mutexattr_t *__attr)); +-int _EXFUN(pthread_mutex_destroy, (pthread_mutex_t *__mutex)); +- +-/* This is used to statically initialize a pthread_mutex_t. Example: +- +- pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; +- */ +- +-#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF) +- +-/* Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93 +- NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 */ +- +-int _EXFUN(pthread_mutex_lock, (pthread_mutex_t *__mutex)); +-int _EXFUN(pthread_mutex_trylock, (pthread_mutex_t *__mutex)); +-int _EXFUN(pthread_mutex_unlock, (pthread_mutex_t *__mutex)); +- +-#if defined(_POSIX_TIMEOUTS) +- +-int _EXFUN(pthread_mutex_timedlock, +- (pthread_mutex_t *__mutex, _CONST struct timespec *__timeout)); +- +-#endif /* _POSIX_TIMEOUTS */ +- +-/* Condition Variable Initialization Attributes, P1003.1c/Draft 10, p. 96 */ +- +-int _EXFUN(pthread_condattr_init, (pthread_condattr_t *__attr)); +-int _EXFUN(pthread_condattr_destroy, (pthread_condattr_t *__attr)); +-int _EXFUN(pthread_condattr_getpshared, +- (_CONST pthread_condattr_t *__attr, int *__pshared)); +-int _EXFUN(pthread_condattr_setpshared, +- (pthread_condattr_t *__attr, int __pshared)); +- +-/* Initializing and Destroying a Condition Variable, P1003.1c/Draft 10, p. 87 */ +- +-int _EXFUN(pthread_cond_init, +- (pthread_cond_t *__cond, _CONST pthread_condattr_t *__attr)); +-int _EXFUN(pthread_cond_destroy, (pthread_cond_t *__mutex)); +- +-/* This is used to statically initialize a pthread_cond_t. Example: +- +- pthread_cond_t cond = PTHREAD_COND_INITIALIZER; +- */ +- +-#define PTHREAD_COND_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF) +- +-/* Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 */ +- +-int _EXFUN(pthread_cond_signal, (pthread_cond_t *__cond)); +-int _EXFUN(pthread_cond_broadcast, (pthread_cond_t *__cond)); +- +-/* Waiting on a Condition, P1003.1c/Draft 10, p. 105 */ +- +-int _EXFUN(pthread_cond_wait, +- (pthread_cond_t *__cond, pthread_mutex_t *__mutex)); +- +-int _EXFUN(pthread_cond_timedwait, +- (pthread_cond_t *__cond, pthread_mutex_t *__mutex, +- _CONST struct timespec *__abstime)); +- +-#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) +- +-/* Thread Creation Scheduling Attributes, P1003.1c/Draft 10, p. 120 */ +- +-int _EXFUN(pthread_attr_setscope, +- (pthread_attr_t *__attr, int __contentionscope)); +-int _EXFUN(pthread_attr_getscope, +- (_CONST pthread_attr_t *__attr, int *__contentionscope)); +-int _EXFUN(pthread_attr_setinheritsched, +- (pthread_attr_t *__attr, int __inheritsched)); +-int _EXFUN(pthread_attr_getinheritsched, +- (_CONST pthread_attr_t *__attr, int *__inheritsched)); +-int _EXFUN(pthread_attr_setschedpolicy, +- (pthread_attr_t *__attr, int __policy)); +-int _EXFUN(pthread_attr_getschedpolicy, +- (_CONST pthread_attr_t *__attr, int *__policy)); +- +-#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ +- +-int _EXFUN(pthread_attr_setschedparam, +- (pthread_attr_t *__attr, _CONST struct sched_param *__param)); +-int _EXFUN(pthread_attr_getschedparam, +- (_CONST pthread_attr_t *__attr, struct sched_param *__param)); +- +-#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) +- +-/* Dynamic Thread Scheduling Parameters Access, P1003.1c/Draft 10, p. 124 */ +- +-int _EXFUN(pthread_getschedparam, +- (pthread_t __pthread, int *__policy, struct sched_param *__param)); +-int _EXFUN(pthread_setschedparam, +- (pthread_t __pthread, int __policy, struct sched_param *__param)); +- +-#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ +- +-#if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT) +- +-/* Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 */ +- +-int _EXFUN(pthread_mutexattr_setprotocol, +- (pthread_mutexattr_t *__attr, int __protocol)); +-int _EXFUN(pthread_mutexattr_getprotocol, +- (_CONST pthread_mutexattr_t *__attr, int *__protocol)); +-int _EXFUN(pthread_mutexattr_setprioceiling, +- (pthread_mutexattr_t *__attr, int __prioceiling)); +-int _EXFUN(pthread_mutexattr_getprioceiling, +- (_CONST pthread_mutexattr_t *__attr, int *__prioceiling)); +- +-#endif /* _POSIX_THREAD_PRIO_INHERIT || _POSIX_THREAD_PRIO_PROTECT */ +- +-#if defined(_POSIX_THREAD_PRIO_PROTECT) +- +-/* Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131 */ +- +-int _EXFUN(pthread_mutex_setprioceiling, +- (pthread_mutex_t *__mutex, int __prioceiling, int *__old_ceiling)); +-int _EXFUN(pthread_mutex_getprioceiling, +- (pthread_mutex_t *__mutex, int *__prioceiling)); +- +-#endif /* _POSIX_THREAD_PRIO_PROTECT */ +- +-/* Thread Creation Attributes, P1003.1c/Draft 10, p, 140 */ +- +-int _EXFUN(pthread_attr_init, (pthread_attr_t *__attr)); +-int _EXFUN(pthread_attr_destroy, (pthread_attr_t *__attr)); +-int _EXFUN(pthread_attr_getstacksize, +- (_CONST pthread_attr_t *__attr, size_t *__stacksize)); +-int _EXFUN(pthread_attr_setstacksize, +- (pthread_attr_t *__attr, size_t stacksize)); +-int _EXFUN(pthread_attr_getstackaddr, +- (_CONST pthread_attr_t *__attr, void **__stackaddr)); +-int _EXFUN(pthread_attr_setstackaddr, +- (pthread_attr_t *__attr, void *__stackaddr)); +-int _EXFUN(pthread_attr_getdetachstate, +- (_CONST pthread_attr_t *__attr, int *__detachstate)); +-int _EXFUN(pthread_attr_setdetachstate, +- (pthread_attr_t *__attr, int __detachstate)); +- +-/* Thread Creation, P1003.1c/Draft 10, p. 144 */ +- +-int _EXFUN(pthread_create, +- (pthread_t *__pthread, _CONST pthread_attr_t *__attr, +- void *(*__start_routine)( void * ), void *__arg)); +- +-/* Wait for Thread Termination, P1003.1c/Draft 10, p. 147 */ +- +-int _EXFUN(pthread_join, (pthread_t __pthread, void **__value_ptr)); +- +-/* Detaching a Thread, P1003.1c/Draft 10, p. 149 */ +- +-int _EXFUN(pthread_detach, (pthread_t __pthread)); +- +-/* Thread Termination, p1003.1c/Draft 10, p. 150 */ +- +-void _EXFUN(pthread_exit, (void *__value_ptr)); +- +-/* Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX */ +- +-pthread_t _EXFUN(pthread_self, (void)); +- +-/* Compare Thread IDs, p1003.1c/Draft 10, p. 153 */ +- +-int _EXFUN(pthread_equal, (pthread_t __t1, pthread_t __t2)); +- +-/* Dynamic Package Initialization */ +- +-/* This is used to statically initialize a pthread_once_t. Example: +- +- pthread_once_t once = PTHREAD_ONCE_INIT; +- +- NOTE: This is named inconsistently -- it should be INITIALIZER. */ +- +-#define PTHREAD_ONCE_INIT { 1, 0 } /* is initialized and not run */ +- +-int _EXFUN(pthread_once, +- (pthread_once_t *__once_control, void (*__init_routine)(void))); +- +-/* Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163 */ +- +-int _EXFUN(pthread_key_create, +- (pthread_key_t *__key, void (*__destructor)( void * ))); +- +-/* Thread-Specific Data Management, P1003.1c/Draft 10, p. 165 */ +- +-int _EXFUN(pthread_setspecific, +- (pthread_key_t __key, _CONST void *__value)); +-void * _EXFUN(pthread_getspecific, (pthread_key_t __key)); +- +-/* Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 */ +- +-int _EXFUN(pthread_key_delete, (pthread_key_t __key)); +- +-/* Execution of a Thread, P1003.1c/Draft 10, p. 181 */ +- +-#define PTHREAD_CANCEL_ENABLE 0 +-#define PTHREAD_CANCEL_DISABLE 1 +- +-#define PTHREAD_CANCEL_DEFERRED 0 +-#define PTHREAD_CANCEL_ASYNCHRONOUS 1 +- +-#define PTHREAD_CANCELED ((void *) -1) +- +-int _EXFUN(pthread_cancel, (pthread_t __pthread)); +- +-/* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ +- +-int _EXFUN(pthread_setcancelstate, (int __state, int *__oldstate)); +-int _EXFUN(pthread_setcanceltype, (int __type, int *__oldtype)); +-void _EXFUN(pthread_testcancel, (void)); +- +-/* Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 */ +- +-void _EXFUN(pthread_cleanup_push, +- (void (*__routine)( void * ), void *__arg)); +-void _EXFUN(pthread_cleanup_pop, (int __execute)); +- +-#if defined(_POSIX_THREAD_CPUTIME) +- +-/* Accessing a Thread CPU-time Clock, P1003.4b/D8, p. 58 */ +- +-int _EXFUN(pthread_getcpuclockid, +- (pthread_t __pthread_id, clockid_t *__clock_id)); +- +-#endif /* defined(_POSIX_THREAD_CPUTIME) */ +- +- +-#endif /* defined(_POSIX_THREADS) */ +- +-#if defined(_POSIX_BARRIERS) +- +-int _EXFUN(pthread_barrierattr_init, (pthread_barrierattr_t *__attr)); +-int _EXFUN(pthread_barrierattr_destroy, (pthread_barrierattr_t *__attr)); +-int _EXFUN(pthread_barrierattr_getpshared, +- (_CONST pthread_barrierattr_t *__attr, int *__pshared)); +-int _EXFUN(pthread_barrierattr_setpshared, +- (pthread_barrierattr_t *__attr, int __pshared)); +- +-#define PTHREAD_BARRIER_SERIAL_THREAD -1 +- +-int _EXFUN(pthread_barrier_init, +- (pthread_barrier_t *__barrier, +- _CONST pthread_barrierattr_t *__attr, unsigned __count)); +-int _EXFUN(pthread_barrier_destroy, (pthread_barrier_t *__barrier)); +-int _EXFUN(pthread_barrier_wait,(pthread_barrier_t *__barrier)); +- +-#endif /* defined(_POSIX_BARRIERS) */ +- +-#if defined(_POSIX_SPIN_LOCKS) +- +-int _EXFUN(pthread_spin_init, +- (pthread_spinlock_t *__spinlock, int __pshared)); +-int _EXFUN(pthread_spin_destroy, (pthread_spinlock_t *__spinlock)); +-int _EXFUN(pthread_spin_lock, (pthread_spinlock_t *__spinlock)); +-int _EXFUN(pthread_spin_trylock, (pthread_spinlock_t *__spinlock)); +-int _EXFUN(pthread_spin_unlock, (pthread_spinlock_t *__spinlock)); +- +-#endif /* defined(_POSIX_SPIN_LOCKS) */ +- +-#if defined(_POSIX_READER_WRITER_LOCKS) +- +-int _EXFUN(pthread_rwlockattr_init, (pthread_rwlockattr_t *__attr)); +-int _EXFUN(pthread_rwlockattr_destroy, (pthread_rwlockattr_t *__attr)); +-int _EXFUN(pthread_rwlockattr_getpshared, +- (_CONST pthread_rwlockattr_t *__attr, int *__pshared)); +-int _EXFUN(pthread_rwlockattr_setpshared, +- (pthread_rwlockattr_t *__attr, int __pshared)); +- +-int _EXFUN(pthread_rwlock_init, +- (pthread_rwlock_t *__rwlock, _CONST pthread_rwlockattr_t *__attr)); +-int _EXFUN(pthread_rwlock_destroy, (pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_rdlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_tryrdlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_timedrdlock, +- (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime)); +-int _EXFUN(pthread_rwlock_unlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_wrlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_trywrlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_timedwrlock, +- (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime)); +- +-#endif /* defined(_POSIX_READER_WRITER_LOCKS) */ +- +- +-#ifdef __cplusplus +-} +-#endif +- +-#endif +-/* end of include file */ diff -Nbaur newlib-1.18.0/newlib/libc/include/stdint.h newlib-1.18.0-arm/newlib/libc/include/stdint.h --- newlib-1.18.0/newlib/libc/include/stdint.h 2009-04-24 22:55:07.000000000 +0100 +++ newlib-1.18.0-arm/newlib/libc/include/stdint.h 2009-12-21 11:08:45.000000000 +0000 @@ -6311,8 +6730,8 @@ diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/dirent.h newlib-1.18.0-arm/new \ No newline at end of file diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/iosupport.h newlib-1.18.0-arm/newlib/libc/include/sys/iosupport.h --- newlib-1.18.0/newlib/libc/include/sys/iosupport.h 1970-01-01 01:00:00.000000000 +0100 -+++ newlib-1.18.0-arm/newlib/libc/include/sys/iosupport.h 2009-12-21 11:08:45.000000000 +0000 -@@ -0,0 +1,78 @@ ++++ newlib-1.18.0-arm/newlib/libc/include/sys/iosupport.h 2010-03-19 20:44:06.000000000 +0000 +@@ -0,0 +1,83 @@ +//--------------------------------------------------------------------------------- +#ifndef __iosupp_h__ +#define __iosupp_h__ @@ -6365,7 +6784,12 @@ diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/iosupport.h newlib-1.18.0-arm/ + int (*statvfs_r)(struct _reent *r, const char *path, struct statvfs *buf); + int (*ftruncate_r)(struct _reent *r, int fd, off_t len); + int (*fsync_r)(struct _reent *r, int fd); ++ + void *deviceData; ++ ++ int (*chmod_r)(struct _reent *r, const char *path, mode_t mode); ++ int (*fchmod_r)(struct _reent *r, int fd, mode_t mode); ++ +} devoptab_t; + +extern const devoptab_t *devoptab_list[]; @@ -6467,7 +6891,7 @@ diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/types.h newlib-1.18.0-arm/newl diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/unistd.h newlib-1.18.0-arm/newlib/libc/include/sys/unistd.h --- newlib-1.18.0/newlib/libc/include/sys/unistd.h 2009-12-17 19:43:43.000000000 +0000 -+++ newlib-1.18.0-arm/newlib/libc/include/sys/unistd.h 2009-12-21 11:08:45.000000000 +0000 ++++ newlib-1.18.0-arm/newlib/libc/include/sys/unistd.h 2010-03-19 20:47:54.000000000 +0000 @@ -215,12 +215,10 @@ int _EXFUN(_execve, (const char *__path, char * const __argv[], char * const __envp[] )); #endif diff --git a/dkarm-eabi/scripts/build-gcc.sh b/dkarm-eabi/scripts/build-gcc.sh index ea42ec9..dd11414 100644 --- a/dkarm-eabi/scripts/build-gcc.sh +++ b/dkarm-eabi/scripts/build-gcc.sh @@ -72,7 +72,7 @@ then --target=$target \ --with-newlib \ --prefix=$prefix\ - --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 28" \ + --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 29" \ || { echo "Error configuring gcc"; exit 1; } touch configured-gcc fi diff --git a/dkppc/patches/gdb-7.0.1.patch b/dkppc/patches/gdb-7.1.patch similarity index 72% rename from dkppc/patches/gdb-7.0.1.patch rename to dkppc/patches/gdb-7.1.patch index 08e60e0..8be0ad7 100644 --- a/dkppc/patches/gdb-7.0.1.patch +++ b/dkppc/patches/gdb-7.1.patch @@ -1,7 +1,7 @@ -diff -Nbaur gdb-7.0.1/gdb/Makefile.in gdb-7.0.1-new/gdb/Makefile.in ---- gdb-7.0.1/gdb/Makefile.in 2009-10-02 23:06:10.000000000 +0100 -+++ gdb-7.0.1-new/gdb/Makefile.in 2010-01-21 15:25:25.000000000 +0000 -@@ -2005,10 +2005,10 @@ +diff -Nbaur gdb-7.1/gdb/Makefile.in gdb-7.1-ppc/gdb/Makefile.in +--- gdb-7.1/gdb/Makefile.in 2010-02-02 23:16:53.000000000 +0000 ++++ gdb-7.1-ppc/gdb/Makefile.in 2010-03-19 09:27:41.000000000 +0000 +@@ -2016,10 +2016,10 @@ # Note that we put the dependencies into a .Tpo file, then move them # into place if the compile succeeds. We need this because gcc does # not atomically write the dependency output file. @@ -16,9 +16,9 @@ diff -Nbaur gdb-7.0.1/gdb/Makefile.in gdb-7.0.1-new/gdb/Makefile.in @GMAKE_TRUE@else @GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ @GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) -diff -Nbaur gdb-7.0.1/sim/ppc/Makefile.in gdb-7.0.1-new/sim/ppc/Makefile.in ---- gdb-7.0.1/sim/ppc/Makefile.in 2009-09-16 00:26:44.000000000 +0100 -+++ gdb-7.0.1-new/sim/ppc/Makefile.in 2010-01-21 15:25:25.000000000 +0000 +diff -Nbaur gdb-7.1/sim/ppc/Makefile.in gdb-7.1-ppc/sim/ppc/Makefile.in +--- gdb-7.1/sim/ppc/Makefile.in 2009-09-16 00:26:44.000000000 +0100 ++++ gdb-7.1-ppc/sim/ppc/Makefile.in 2010-03-19 09:27:41.000000000 +0000 @@ -551,7 +551,7 @@ PACKAGE_OBJ = @sim_pk_obj@ diff --git a/dkppc/patches/newlib-1.18.0.patch b/dkppc/patches/newlib-1.18.0.patch index b927d3f..097187b 100644 --- a/dkppc/patches/newlib-1.18.0.patch +++ b/dkppc/patches/newlib-1.18.0.patch @@ -62,8 +62,8 @@ diff -Nbaur newlib-1.18.0/libgloss/configure.in newlib-1.18.0-ppc/libgloss/confi AC_SUBST(AS) diff -Nbaur newlib-1.18.0/libgloss/libsysbase/Makefile.in newlib-1.18.0-ppc/libgloss/libsysbase/Makefile.in --- newlib-1.18.0/libgloss/libsysbase/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ newlib-1.18.0-ppc/libgloss/libsysbase/Makefile.in 2010-02-21 16:36:36.000000000 +0000 -@@ -0,0 +1,147 @@ ++++ newlib-1.18.0-ppc/libgloss/libsysbase/Makefile.in 2010-03-19 20:40:14.000000000 +0000 +@@ -0,0 +1,148 @@ +# Copyright (c) 1998 Cygnus Support +# +# The authors hereby grant permission to use, copy, modify, distribute, @@ -135,7 +135,8 @@ diff -Nbaur newlib-1.18.0/libgloss/libsysbase/Makefile.in newlib-1.18.0-ppc/libg + isatty.o kill.o link.o lseek.o open.o read.o sbrk.o stat.o \ + unlink.o wait.o write.o _exit.o malloc_vars.o \ + chdir.o mkdir.o dir.o rename.o build_argv.o statvfs.o \ -+ flock.o syscall_support.o handle_manager.o truncate.o ftruncate.o dirent.o fsync.o ++ flock.o syscall_support.o handle_manager.o truncate.o ftruncate.o dirent.o fsync.o \ ++ fchmod.o chmod.o + +# Object files specific to particular targets. +EVALOBJS = ${OBJS} @@ -842,6 +843,35 @@ diff -Nbaur newlib-1.18.0/libgloss/libsysbase/chdir.c newlib-1.18.0-ppc/libgloss + + return buf; +} +diff -Nbaur newlib-1.18.0/libgloss/libsysbase/chmod.c newlib-1.18.0-ppc/libgloss/libsysbase/chmod.c +--- newlib-1.18.0/libgloss/libsysbase/chmod.c 1970-01-01 01:00:00.000000000 +0100 ++++ newlib-1.18.0-ppc/libgloss/libsysbase/chmod.c 2010-03-19 13:40:55.000000000 +0000 +@@ -0,0 +1,25 @@ ++#include "config.h" ++#include <_ansi.h> ++#include <_syslist.h> ++#include ++#include ++#include ++#include ++ ++int chmod(const char *path, mode_t mode) { ++ int ret,dev; ++ struct _reent *r = _REENT; ++ ++ /* Get device from path name */ ++ dev = FindDevice(path); ++ ++ if ((dev < 0) || (devoptab_list[dev]->chmod_r == NULL)) { ++ r->_errno = ENODEV; ++ ret = -1; ++ } else { ++ ret = devoptab_list[dev]->chmod_r(r,path,mode); ++ } ++ ++ return ret; ++} ++ diff -Nbaur newlib-1.18.0/libgloss/libsysbase/close.c newlib-1.18.0-ppc/libgloss/libsysbase/close.c --- newlib-1.18.0/libgloss/libsysbase/close.c 1970-01-01 01:00:00.000000000 +0100 +++ newlib-1.18.0-ppc/libgloss/libsysbase/close.c 2010-02-21 16:36:36.000000000 +0000 @@ -4985,6 +5015,40 @@ diff -Nbaur newlib-1.18.0/libgloss/libsysbase/execve.c newlib-1.18.0-ppc/libglos + return -1; +} + +diff -Nbaur newlib-1.18.0/libgloss/libsysbase/fchmod.c newlib-1.18.0-ppc/libgloss/libsysbase/fchmod.c +--- newlib-1.18.0/libgloss/libsysbase/fchmod.c 1970-01-01 01:00:00.000000000 +0100 ++++ newlib-1.18.0-ppc/libgloss/libsysbase/fchmod.c 2010-03-19 13:44:36.000000000 +0000 +@@ -0,0 +1,30 @@ ++#include "config.h" ++#include <_ansi.h> ++#include <_syslist.h> ++#include ++#include ++#include ++#include ++ ++#include "handle_manager.h" ++ ++int fchmod(int fd, mode_t mode) { ++ int ret = -1, dev; ++ struct _reent *r = _REENT; ++ ++ if(fd!=-1) { ++ ++ __handle *handle = __get_handle(fd); ++ ++ if ( handle != NULL) { ++ ++ dev = handle->device; ++ fd = (unsigned int)handle->fileStruct; ++ ++ if(devoptab_list[dev]->fchmod_r) ++ ret = devoptab_list[dev]->fchmod_r(r,fd,mode); ++ ++ } ++ } ++ return ret; ++} diff -Nbaur newlib-1.18.0/libgloss/libsysbase/flock.c newlib-1.18.0-ppc/libgloss/libsysbase/flock.c --- newlib-1.18.0/libgloss/libsysbase/flock.c 1970-01-01 01:00:00.000000000 +0100 +++ newlib-1.18.0-ppc/libgloss/libsysbase/flock.c 2010-02-21 16:36:36.000000000 +0000 @@ -6254,6 +6318,361 @@ diff -Nbaur newlib-1.18.0/newlib/configure.host newlib-1.18.0-ppc/newlib/configu powerpc*-*-elf* | \ powerpc*-*-linux* | \ powerpc*-*-rtem* | \ +diff -Nbaur newlib-1.18.0/newlib/libc/include/pthread.h newlib-1.18.0-ppc/newlib/libc/include/pthread.h +--- newlib-1.18.0/newlib/libc/include/pthread.h 2009-12-17 19:22:23.000000000 +0000 ++++ newlib-1.18.0-ppc/newlib/libc/include/pthread.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,351 +0,0 @@ +-/* pthread.h +- * +- * Written by Joel Sherrill . +- * +- * COPYRIGHT (c) 1989-2000. +- * On-Line Applications Research Corporation (OAR). +- * +- * Permission to use, copy, modify, and distribute this software for any +- * purpose without fee is hereby granted, provided that this entire notice +- * is included in all copies of any software which is or includes a copy +- * or modification of this software. +- * +- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +- * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION +- * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS +- * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. +- * +- * $Id: pthread.h,v 1.8 2009/12/17 19:22:23 jjohnstn Exp $ +- */ +- +-#ifndef __PTHREAD_h +-#define __PTHREAD_h +- +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-#include +- +-#if defined(_POSIX_THREADS) +- +-#include +-#include +-#include +- +-/* Register Fork Handlers */ +-int _EXFUN(pthread_atfork,(void (*prepare)(void), void (*parent)(void), +- void (*child)(void))); +- +-/* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */ +- +-int _EXFUN(pthread_mutexattr_init, (pthread_mutexattr_t *__attr)); +-int _EXFUN(pthread_mutexattr_destroy, (pthread_mutexattr_t *__attr)); +-int _EXFUN(pthread_mutexattr_getpshared, +- (_CONST pthread_mutexattr_t *__attr, int *__pshared)); +-int _EXFUN(pthread_mutexattr_setpshared, +- (pthread_mutexattr_t *__attr, int __pshared)); +- +-#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) +- +-/* Single UNIX Specification 2 Mutex Attributes types */ +- +-int _EXFUN(pthread_mutexattr_gettype, +- (_CONST pthread_mutexattr_t *__attr, int *__kind)); +-int _EXFUN(pthread_mutexattr_settype, +- (pthread_mutexattr_t *__attr, int __kind)); +- +-#endif +- +-/* Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 */ +- +-int _EXFUN(pthread_mutex_init, +- (pthread_mutex_t *__mutex, _CONST pthread_mutexattr_t *__attr)); +-int _EXFUN(pthread_mutex_destroy, (pthread_mutex_t *__mutex)); +- +-/* This is used to statically initialize a pthread_mutex_t. Example: +- +- pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; +- */ +- +-#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF) +- +-/* Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93 +- NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 */ +- +-int _EXFUN(pthread_mutex_lock, (pthread_mutex_t *__mutex)); +-int _EXFUN(pthread_mutex_trylock, (pthread_mutex_t *__mutex)); +-int _EXFUN(pthread_mutex_unlock, (pthread_mutex_t *__mutex)); +- +-#if defined(_POSIX_TIMEOUTS) +- +-int _EXFUN(pthread_mutex_timedlock, +- (pthread_mutex_t *__mutex, _CONST struct timespec *__timeout)); +- +-#endif /* _POSIX_TIMEOUTS */ +- +-/* Condition Variable Initialization Attributes, P1003.1c/Draft 10, p. 96 */ +- +-int _EXFUN(pthread_condattr_init, (pthread_condattr_t *__attr)); +-int _EXFUN(pthread_condattr_destroy, (pthread_condattr_t *__attr)); +-int _EXFUN(pthread_condattr_getpshared, +- (_CONST pthread_condattr_t *__attr, int *__pshared)); +-int _EXFUN(pthread_condattr_setpshared, +- (pthread_condattr_t *__attr, int __pshared)); +- +-/* Initializing and Destroying a Condition Variable, P1003.1c/Draft 10, p. 87 */ +- +-int _EXFUN(pthread_cond_init, +- (pthread_cond_t *__cond, _CONST pthread_condattr_t *__attr)); +-int _EXFUN(pthread_cond_destroy, (pthread_cond_t *__mutex)); +- +-/* This is used to statically initialize a pthread_cond_t. Example: +- +- pthread_cond_t cond = PTHREAD_COND_INITIALIZER; +- */ +- +-#define PTHREAD_COND_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF) +- +-/* Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 */ +- +-int _EXFUN(pthread_cond_signal, (pthread_cond_t *__cond)); +-int _EXFUN(pthread_cond_broadcast, (pthread_cond_t *__cond)); +- +-/* Waiting on a Condition, P1003.1c/Draft 10, p. 105 */ +- +-int _EXFUN(pthread_cond_wait, +- (pthread_cond_t *__cond, pthread_mutex_t *__mutex)); +- +-int _EXFUN(pthread_cond_timedwait, +- (pthread_cond_t *__cond, pthread_mutex_t *__mutex, +- _CONST struct timespec *__abstime)); +- +-#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) +- +-/* Thread Creation Scheduling Attributes, P1003.1c/Draft 10, p. 120 */ +- +-int _EXFUN(pthread_attr_setscope, +- (pthread_attr_t *__attr, int __contentionscope)); +-int _EXFUN(pthread_attr_getscope, +- (_CONST pthread_attr_t *__attr, int *__contentionscope)); +-int _EXFUN(pthread_attr_setinheritsched, +- (pthread_attr_t *__attr, int __inheritsched)); +-int _EXFUN(pthread_attr_getinheritsched, +- (_CONST pthread_attr_t *__attr, int *__inheritsched)); +-int _EXFUN(pthread_attr_setschedpolicy, +- (pthread_attr_t *__attr, int __policy)); +-int _EXFUN(pthread_attr_getschedpolicy, +- (_CONST pthread_attr_t *__attr, int *__policy)); +- +-#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ +- +-int _EXFUN(pthread_attr_setschedparam, +- (pthread_attr_t *__attr, _CONST struct sched_param *__param)); +-int _EXFUN(pthread_attr_getschedparam, +- (_CONST pthread_attr_t *__attr, struct sched_param *__param)); +- +-#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) +- +-/* Dynamic Thread Scheduling Parameters Access, P1003.1c/Draft 10, p. 124 */ +- +-int _EXFUN(pthread_getschedparam, +- (pthread_t __pthread, int *__policy, struct sched_param *__param)); +-int _EXFUN(pthread_setschedparam, +- (pthread_t __pthread, int __policy, struct sched_param *__param)); +- +-#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ +- +-#if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT) +- +-/* Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 */ +- +-int _EXFUN(pthread_mutexattr_setprotocol, +- (pthread_mutexattr_t *__attr, int __protocol)); +-int _EXFUN(pthread_mutexattr_getprotocol, +- (_CONST pthread_mutexattr_t *__attr, int *__protocol)); +-int _EXFUN(pthread_mutexattr_setprioceiling, +- (pthread_mutexattr_t *__attr, int __prioceiling)); +-int _EXFUN(pthread_mutexattr_getprioceiling, +- (_CONST pthread_mutexattr_t *__attr, int *__prioceiling)); +- +-#endif /* _POSIX_THREAD_PRIO_INHERIT || _POSIX_THREAD_PRIO_PROTECT */ +- +-#if defined(_POSIX_THREAD_PRIO_PROTECT) +- +-/* Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131 */ +- +-int _EXFUN(pthread_mutex_setprioceiling, +- (pthread_mutex_t *__mutex, int __prioceiling, int *__old_ceiling)); +-int _EXFUN(pthread_mutex_getprioceiling, +- (pthread_mutex_t *__mutex, int *__prioceiling)); +- +-#endif /* _POSIX_THREAD_PRIO_PROTECT */ +- +-/* Thread Creation Attributes, P1003.1c/Draft 10, p, 140 */ +- +-int _EXFUN(pthread_attr_init, (pthread_attr_t *__attr)); +-int _EXFUN(pthread_attr_destroy, (pthread_attr_t *__attr)); +-int _EXFUN(pthread_attr_getstacksize, +- (_CONST pthread_attr_t *__attr, size_t *__stacksize)); +-int _EXFUN(pthread_attr_setstacksize, +- (pthread_attr_t *__attr, size_t stacksize)); +-int _EXFUN(pthread_attr_getstackaddr, +- (_CONST pthread_attr_t *__attr, void **__stackaddr)); +-int _EXFUN(pthread_attr_setstackaddr, +- (pthread_attr_t *__attr, void *__stackaddr)); +-int _EXFUN(pthread_attr_getdetachstate, +- (_CONST pthread_attr_t *__attr, int *__detachstate)); +-int _EXFUN(pthread_attr_setdetachstate, +- (pthread_attr_t *__attr, int __detachstate)); +- +-/* Thread Creation, P1003.1c/Draft 10, p. 144 */ +- +-int _EXFUN(pthread_create, +- (pthread_t *__pthread, _CONST pthread_attr_t *__attr, +- void *(*__start_routine)( void * ), void *__arg)); +- +-/* Wait for Thread Termination, P1003.1c/Draft 10, p. 147 */ +- +-int _EXFUN(pthread_join, (pthread_t __pthread, void **__value_ptr)); +- +-/* Detaching a Thread, P1003.1c/Draft 10, p. 149 */ +- +-int _EXFUN(pthread_detach, (pthread_t __pthread)); +- +-/* Thread Termination, p1003.1c/Draft 10, p. 150 */ +- +-void _EXFUN(pthread_exit, (void *__value_ptr)); +- +-/* Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX */ +- +-pthread_t _EXFUN(pthread_self, (void)); +- +-/* Compare Thread IDs, p1003.1c/Draft 10, p. 153 */ +- +-int _EXFUN(pthread_equal, (pthread_t __t1, pthread_t __t2)); +- +-/* Dynamic Package Initialization */ +- +-/* This is used to statically initialize a pthread_once_t. Example: +- +- pthread_once_t once = PTHREAD_ONCE_INIT; +- +- NOTE: This is named inconsistently -- it should be INITIALIZER. */ +- +-#define PTHREAD_ONCE_INIT { 1, 0 } /* is initialized and not run */ +- +-int _EXFUN(pthread_once, +- (pthread_once_t *__once_control, void (*__init_routine)(void))); +- +-/* Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163 */ +- +-int _EXFUN(pthread_key_create, +- (pthread_key_t *__key, void (*__destructor)( void * ))); +- +-/* Thread-Specific Data Management, P1003.1c/Draft 10, p. 165 */ +- +-int _EXFUN(pthread_setspecific, +- (pthread_key_t __key, _CONST void *__value)); +-void * _EXFUN(pthread_getspecific, (pthread_key_t __key)); +- +-/* Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 */ +- +-int _EXFUN(pthread_key_delete, (pthread_key_t __key)); +- +-/* Execution of a Thread, P1003.1c/Draft 10, p. 181 */ +- +-#define PTHREAD_CANCEL_ENABLE 0 +-#define PTHREAD_CANCEL_DISABLE 1 +- +-#define PTHREAD_CANCEL_DEFERRED 0 +-#define PTHREAD_CANCEL_ASYNCHRONOUS 1 +- +-#define PTHREAD_CANCELED ((void *) -1) +- +-int _EXFUN(pthread_cancel, (pthread_t __pthread)); +- +-/* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ +- +-int _EXFUN(pthread_setcancelstate, (int __state, int *__oldstate)); +-int _EXFUN(pthread_setcanceltype, (int __type, int *__oldtype)); +-void _EXFUN(pthread_testcancel, (void)); +- +-/* Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 */ +- +-void _EXFUN(pthread_cleanup_push, +- (void (*__routine)( void * ), void *__arg)); +-void _EXFUN(pthread_cleanup_pop, (int __execute)); +- +-#if defined(_POSIX_THREAD_CPUTIME) +- +-/* Accessing a Thread CPU-time Clock, P1003.4b/D8, p. 58 */ +- +-int _EXFUN(pthread_getcpuclockid, +- (pthread_t __pthread_id, clockid_t *__clock_id)); +- +-#endif /* defined(_POSIX_THREAD_CPUTIME) */ +- +- +-#endif /* defined(_POSIX_THREADS) */ +- +-#if defined(_POSIX_BARRIERS) +- +-int _EXFUN(pthread_barrierattr_init, (pthread_barrierattr_t *__attr)); +-int _EXFUN(pthread_barrierattr_destroy, (pthread_barrierattr_t *__attr)); +-int _EXFUN(pthread_barrierattr_getpshared, +- (_CONST pthread_barrierattr_t *__attr, int *__pshared)); +-int _EXFUN(pthread_barrierattr_setpshared, +- (pthread_barrierattr_t *__attr, int __pshared)); +- +-#define PTHREAD_BARRIER_SERIAL_THREAD -1 +- +-int _EXFUN(pthread_barrier_init, +- (pthread_barrier_t *__barrier, +- _CONST pthread_barrierattr_t *__attr, unsigned __count)); +-int _EXFUN(pthread_barrier_destroy, (pthread_barrier_t *__barrier)); +-int _EXFUN(pthread_barrier_wait,(pthread_barrier_t *__barrier)); +- +-#endif /* defined(_POSIX_BARRIERS) */ +- +-#if defined(_POSIX_SPIN_LOCKS) +- +-int _EXFUN(pthread_spin_init, +- (pthread_spinlock_t *__spinlock, int __pshared)); +-int _EXFUN(pthread_spin_destroy, (pthread_spinlock_t *__spinlock)); +-int _EXFUN(pthread_spin_lock, (pthread_spinlock_t *__spinlock)); +-int _EXFUN(pthread_spin_trylock, (pthread_spinlock_t *__spinlock)); +-int _EXFUN(pthread_spin_unlock, (pthread_spinlock_t *__spinlock)); +- +-#endif /* defined(_POSIX_SPIN_LOCKS) */ +- +-#if defined(_POSIX_READER_WRITER_LOCKS) +- +-int _EXFUN(pthread_rwlockattr_init, (pthread_rwlockattr_t *__attr)); +-int _EXFUN(pthread_rwlockattr_destroy, (pthread_rwlockattr_t *__attr)); +-int _EXFUN(pthread_rwlockattr_getpshared, +- (_CONST pthread_rwlockattr_t *__attr, int *__pshared)); +-int _EXFUN(pthread_rwlockattr_setpshared, +- (pthread_rwlockattr_t *__attr, int __pshared)); +- +-int _EXFUN(pthread_rwlock_init, +- (pthread_rwlock_t *__rwlock, _CONST pthread_rwlockattr_t *__attr)); +-int _EXFUN(pthread_rwlock_destroy, (pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_rdlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_tryrdlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_timedrdlock, +- (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime)); +-int _EXFUN(pthread_rwlock_unlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_wrlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_trywrlock,(pthread_rwlock_t *__rwlock)); +-int _EXFUN(pthread_rwlock_timedwrlock, +- (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime)); +- +-#endif /* defined(_POSIX_READER_WRITER_LOCKS) */ +- +- +-#ifdef __cplusplus +-} +-#endif +- +-#endif +-/* end of include file */ diff -Nbaur newlib-1.18.0/newlib/libc/include/stdint.h newlib-1.18.0-ppc/newlib/libc/include/stdint.h --- newlib-1.18.0/newlib/libc/include/stdint.h 2009-04-24 22:55:07.000000000 +0100 +++ newlib-1.18.0-ppc/newlib/libc/include/stdint.h 2010-02-21 16:36:36.000000000 +0000 @@ -6360,8 +6779,8 @@ diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/dirent.h newlib-1.18.0-ppc/new \ No newline at end of file diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/iosupport.h newlib-1.18.0-ppc/newlib/libc/include/sys/iosupport.h --- newlib-1.18.0/newlib/libc/include/sys/iosupport.h 1970-01-01 01:00:00.000000000 +0100 -+++ newlib-1.18.0-ppc/newlib/libc/include/sys/iosupport.h 2010-02-21 16:36:36.000000000 +0000 -@@ -0,0 +1,85 @@ ++++ newlib-1.18.0-ppc/newlib/libc/include/sys/iosupport.h 2010-03-19 20:40:36.000000000 +0000 +@@ -0,0 +1,89 @@ +//--------------------------------------------------------------------------------- +#ifndef __iosupp_h__ +#define __iosupp_h__ @@ -6374,7 +6793,6 @@ diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/iosupport.h newlib-1.18.0-ppc/ +#include +#include +#include -+#include + +enum { + STD_IN, @@ -6414,8 +6832,13 @@ diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/iosupport.h newlib-1.18.0-ppc/ + int (*dirclose_r)(struct _reent *r, DIR_ITER *dirState); + int (*statvfs_r)(struct _reent *r, const char *path, struct statvfs *buf); + int (*ftruncate_r)(struct _reent *r, int fd, off_t len); -+ int (*fsync_r)(struct _reent *r,int fd); ++ int (*fsync_r)(struct _reent *r, int fd); ++ + void *deviceData; ++ ++ int (*chmod_r)(struct _reent *r, const char *path, mode_t mode); ++ int (*fchmod_r)(struct _reent *r, int fd, mode_t mode); ++ +} devoptab_t; + +extern const devoptab_t *devoptab_list[]; @@ -6433,7 +6856,7 @@ diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/iosupport.h newlib-1.18.0-ppc/ +} __syscalls_t; + +extern __syscalls_t __syscalls; -+ ++ +int AddDevice( const devoptab_t* device); +int FindDevice(const char* name); +int RemoveDevice(const char* name); @@ -6535,7 +6958,7 @@ diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/types.h newlib-1.18.0-ppc/newl diff -Nbaur newlib-1.18.0/newlib/libc/include/sys/unistd.h newlib-1.18.0-ppc/newlib/libc/include/sys/unistd.h --- newlib-1.18.0/newlib/libc/include/sys/unistd.h 2009-12-17 19:43:43.000000000 +0000 -+++ newlib-1.18.0-ppc/newlib/libc/include/sys/unistd.h 2010-02-21 16:36:36.000000000 +0000 ++++ newlib-1.18.0-ppc/newlib/libc/include/sys/unistd.h 2010-03-19 20:49:06.000000000 +0000 @@ -215,12 +215,10 @@ int _EXFUN(_execve, (const char *__path, char * const __argv[], char * const __envp[] )); #endif diff --git a/dkppc/scripts/build-gcc.sh b/dkppc/scripts/build-gcc.sh index 667d4a4..7123ba5 100644 --- a/dkppc/scripts/build-gcc.sh +++ b/dkppc/scripts/build-gcc.sh @@ -101,7 +101,7 @@ then --with-newlib \ --prefix=$prefix\ --disable-dependency-tracking \ - --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitPPC release 20" \ + --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitPPC release 21" \ 2>&1 | tee gcc_configure.log touch configured-gcc fi