Compare commits

...

31 Commits

Author SHA1 Message Date
Dave Murphy
ca6674a81d update libnds and default arm7 versions. Enable script for release 2015-12-13 00:15:32 +00:00
Dave Murphy
cf2e5124ce strip unused sections at link time 2015-12-12 11:38:41 +00:00
Dave Murphy
c4a55871e4 size improvements for libstdc++ 2015-12-12 11:37:57 +00:00
Dave Murphy
67f27e6455 update 3dslink 2015-12-11 21:11:21 +00:00
Dave Murphy
ff6e2b58c6 update to gcc 5.3.0 2015-12-11 21:11:01 +00:00
Dave Murphy
50514b3c7f don't fail on writes to null device 2015-12-11 09:53:31 +00:00
Dave Murphy
5e86d85526 fix chdir when no device string set 2015-11-29 18:37:59 +00:00
Dave Murphy
f8998e03ce update binutils to 2.25.1 2015-11-29 18:37:05 +00:00
Dave Murphy
af4c3ff66a update binutils to 2.25.1 2015-11-29 18:36:39 +00:00
Dave Murphy
0ca5bf65c0 remove default crt0 2015-11-28 22:27:09 +00:00
Dave Murphy
564fa0e0af Merge branch 'devkitARM_r45' of github.com:devkitPro/buildscripts into devkitARM_r45 2015-11-28 22:25:04 +00:00
Dave Murphy
47ddd93e55 add support for TLS 2015-11-28 18:24:01 +00:00
Dave Murphy
fea87e834c allow override of CTRULIB variable 2015-11-28 18:03:29 +00:00
Dave Murphy
bb1c5bba94 garbage collect sections when linking 2015-11-23 20:11:37 +00:00
Dave Murphy
0e404ac683 use lto aware tools 2015-11-23 20:10:50 +00:00
Dave Murphy
dd0500e539 tidying libsysbase and implementing locks 2015-11-22 16:45:08 +00:00
Dave Murphy
46989bb607 grit update 2015-11-21 13:52:21 +00:00
Dave Murphy
827f20a398 update 3dstools 2015-11-14 00:25:17 +00:00
Dave Murphy
e4270dc3d2 use latest libctru 2015-11-03 20:57:07 +00:00
Dave Murphy
ac72c96c00 fix freeimage dll path 2015-11-01 02:01:08 +00:00
Dave Murphy
83fb7448d8 use latest 3dstools & latest picasso 2015-10-30 22:21:51 +00:00
Dave Murphy
6e94598966 update to gdb 7.10 2015-10-30 22:21:04 +00:00
Dave Murphy
14359b772f update to gcc 5.2.0 2015-10-25 15:28:45 +00:00
Dave Murphy
1f4243ead0 upgrade to gcc 5.1.0 2015-05-22 11:13:51 +01:00
Dave Murphy
207d78ae00 update 3dstools 2015-03-17 22:41:47 +00:00
Dave Murphy
9362ca7bac add picasso to provided tools 2015-03-17 16:49:09 +00:00
Dave Murphy
f6d47b4005 update libctru 2015-03-17 10:47:58 +00:00
Dave Murphy
c384a5097c prepping devkitARM r45 2015-03-16 18:12:42 +00:00
Dave Murphy
074ceec36c update gdb patch 2015-03-16 18:05:19 +00:00
Dave Murphy
e0c31cded7 update to gdb 7.9 2015-03-16 17:01:42 +00:00
Dave Murphy
fdc132d773 disable git scripts 2015-02-16 00:55:24 +00:00
20 changed files with 217 additions and 101 deletions

View File

@@ -1,7 +1,7 @@
#!/bin/bash
#---------------------------------------------------------------------------------
# Build scripts for
# devkitARM release 44
# devkitARM release 45
# devkitPPC release 27
# devkitPSP release 17
#---------------------------------------------------------------------------------
@@ -26,9 +26,9 @@ echo
LIBOGC_VER=1.8.12
LIBGBA_VER=20150106
LIBNDS_VER=1.5.10
LIBCTRU_VER=0.4.0
DEFAULT_ARM7_VER=0.5.27
LIBNDS_VER=1.5.12
LIBCTRU_VER=0.6.0
DEFAULT_ARM7_VER=0.6.0
DSWIFI_VER=0.3.17
LIBMIRKO_VER=0.9.7
MAXMOD_VER=1.0.9
@@ -38,7 +38,7 @@ PSPSDK_VER=20120404
GBATOOLS_VER=1.0.0
DSTOOLS_VER=1.0.2
GP32_TOOLS_VER=1.0.1
GRIT_VER=0.8.12
GRIT_VER=0.8.13
NDSTOOL_VER=1.50.3
GENERAL_TOOLS_VER=1.0.0
DLDITOOL_VER=1.24.0
@@ -47,8 +47,9 @@ WIILOAD_VER=0.5.1
MMUTIL_VER=1.8.6
DFU_UTIL_VER=0.8.1
STLINK_VER=0.5.8
TOOLS3DS_VER=1.0.3
LINK3DS_VER=0.5.0
TOOLS3DS_VER=1.1.1
LINK3DS_VER=0.5.1
PICASSO_VER=2.1.0
#---------------------------------------------------------------------------------
function extract_and_patch {
@@ -203,7 +204,8 @@ if [ $VERSION -eq 1 ]; then
hostarchives="gbatools-$GBATOOLS_VER.tar.bz2 gp32tools-$GP32_TOOLS_VER.tar.bz2
dstools-$DSTOOLS_VER.tar.bz2 grit-$GRIT_VER.tar.bz2 ndstool-$NDSTOOL_VER.tar.bz2
general-tools-$GENERAL_TOOLS_VER.tar.bz2 dlditool-$DLDITOOL_VER.tar.bz2 mmutil-$MMUTIL_VER.tar.bz2
dfu-util-$DFU_UTIL_VER.tar.bz2 stlink-$STLINK_VER.tar.bz2 3dstools-$TOOLS3DS_VER.tar.bz2 3dslink-$LINK3DS_VER.tar.bz2"
dfu-util-$DFU_UTIL_VER.tar.bz2 stlink-$STLINK_VER.tar.bz2 3dstools-$TOOLS3DS_VER.tar.bz2
picasso-$PICASSO_VER.tar.bz2 3dslink-$LINK3DS_VER.tar.bz2"
fi
if [ $VERSION -eq 2 ]; then
@@ -271,7 +273,7 @@ if [ -f $scriptdir/build-crtls.sh ]; then . $scriptdir/build-crtls.sh || { echo
if [ ! -z $CROSSBUILD ]; then
if [ $VERSION -ne 3 ]; then
cp -v $CROSSLIBPATH/FreeImage.dll $prefix/bin
cp -v $CROSSBINPATH/FreeImage.dll $prefix/bin
fi
if [ $VERSION -eq 1 ]; then
cp -v $CROSSBINPATH/libusb-1.0.dll $prefix/bin

View File

@@ -67,6 +67,25 @@ SECTIONS
. = ALIGN(4);
} : data
.tdata ALIGN(4) :
{
__tdata_lma = .;
*(.tdata)
*(.tdata.*)
*(.gnu.linkonce.td.*)
. = ALIGN(4);
__tdata_lma_end = .;
} : data
.tbss ALIGN(4) :
{
*(.tbss)
*(.tbss.*)
*(.gnu.linkonce.tb.*)
*(.tcommon)
. = ALIGN(4);
} : data
.preinit_array ALIGN(4) :
{
PROVIDE (__preinit_array_start = .);
@@ -115,6 +134,11 @@ SECTIONS
*(.gnu.linkonce.b*)
*(COMMON)
. = ALIGN(4);
/* Reserve space for the TLS segment of the main thread */
__tls_start = .;
. += + SIZEOF(.tdata) + SIZEOF(.tbss);
__tls_end = .;
} : data
__bss_end__ = .;

View File

@@ -1,7 +1,7 @@
%rename link old_link
*link:
%(old_link) -T 3dsx.ld%s -d --emit-relocs --use-blx
%(old_link) -T 3dsx.ld%s -d --emit-relocs --use-blx --gc-sections
*startfile:
3dsx_crt0%O%s crti%O%s crtbegin%O%s

View File

@@ -1,7 +1,7 @@
%rename link old_link
*link:
%(old_link) -T ds_arm7.ld%s
%(old_link) -T ds_arm7.ld%s --gc-sections
*startfile:
ds_arm7_crt0%O%s crti%O%s crtbegin%O%s

View File

@@ -1,7 +1,7 @@
%rename link old_link
*link:
%(old_link) -T ds_arm9.mem%s -T ds_arm9.ld%s
%(old_link) -T ds_arm9.mem%s -T ds_arm9.ld%s --gc-sections
*startfile:
ds_arm9_crt0%O%s crti%O%s crtbegin%O%s

View File

@@ -1,7 +1,7 @@
%rename link old_link
*link:
%(old_link) -T ds_cart.ld%s
%(old_link) -T ds_cart.ld%s --gc-sections
*startfile:
ds_cart_crt0%O%s crti%O%s crtbegin%O%s

View File

@@ -1,7 +1,7 @@
%rename link old_link
*link:
%(old_link) -T dsi_arm9.mem%s -T ds_arm9.ld%s
%(old_link) -T dsi_arm9.mem%s -T ds_arm9.ld%s --gc-sections
*startfile:
ds_arm9_crt0%O%s crti%O%s crtbegin%O%s

View File

@@ -1,7 +1,7 @@
%rename link old_link
*link:
%(old_link) -T gba_cart.ld%s
%(old_link) -T gba_cart.ld%s --gc-sections
*startfile:
gba_crt0%O%s crti%O%s crtbegin%O%s

View File

@@ -2,7 +2,7 @@
%rename endfile old_endfile
*link:
-T gba_er.ld%s %(old_link)
-T gba_er.ld%s %(old_link) --gc-sections
*startfile:
er_crt0%O%s

View File

@@ -1,7 +1,7 @@
%rename link old_link
*link:
-T gba_mb.ld%s %(old_link)
-T gba_mb.ld%s %(old_link) --gc-sections
*startfile:
gba_crt0%O%s crti%O%s crtbegin%O%s

View File

@@ -1,7 +1,7 @@
%rename link old_link
*link:
%(old_link) -T gp32.ld%s
%(old_link) -T gp32.ld%s --gc-sections
*startfile:
gp32_crt0%O%s crti%O%s crtbegin%O%s

View File

@@ -1,7 +1,7 @@
%rename link old_link
*link:
%(old_link) -T gp32_gpsdk.ld%s
%(old_link) -T gp32_gpsdk.ld%s --gc-sections
*startfile:
gp32_gpsdk_crt0%O%s crti%O%s crtbegin%O%s

View File

@@ -1,7 +1,7 @@
diff -NBaur gcc-4.9.2/gcc/config/arm/t-arm-elf gcc-4.9.2-arm/gcc/config/arm/t-arm-elf
--- gcc-4.9.2/gcc/config/arm/t-arm-elf 2014-01-02 22:23:26.000000000 +0000
+++ gcc-4.9.2-arm/gcc/config/arm/t-arm-elf 2015-02-14 19:27:06.598220000 +0000
@@ -16,10 +16,18 @@
diff -Nbaur gcc-5.2.0/gcc/config/arm/t-arm-elf gcc-5.2.0-arm/gcc/config/arm/t-arm-elf
--- gcc-5.2.0/gcc/config/arm/t-arm-elf 2015-01-05 12:33:28.000000000 +0000
+++ gcc-5.2.0-arm/gcc/config/arm/t-arm-elf 2015-11-23 20:16:26.736000000 +0000
@@ -16,11 +16,19 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
@@ -11,7 +11,7 @@ diff -NBaur gcc-4.9.2/gcc/config/arm/t-arm-elf gcc-4.9.2-arm/gcc/config/arm/t-ar
+MULTILIB_DIRNAMES = thumb armv6k fpu
MULTILIB_EXCEPTIONS =
MULTILIB_MATCHES =
+
+MULTILIB_REQUIRED = mthumb march=armv6k/mfloat-abi=hard
+
+
@@ -19,9 +19,10 @@ diff -NBaur gcc-4.9.2/gcc/config/arm/t-arm-elf gcc-4.9.2-arm/gcc/config/arm/t-ar
+MULTILIB_MATCHES += march?armv6k=mcpu?mpcore
+
+
+
#MULTILIB_OPTIONS += mcpu=fa526/mcpu=fa626/mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te
#MULTILIB_DIRNAMES += fa526 fa626 fa606te fa626te fmp626 fa726te
#MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=fa526 *mthumb*/*mcpu=fa626
@@ -38,9 +46,9 @@
# Not quite true. We can support hard-vfp calling in Thumb2, but how do we
# express that here? Also, we really need architecture v5e or later
@@ -35,19 +36,28 @@ diff -NBaur gcc-4.9.2/gcc/config/arm/t-arm-elf gcc-4.9.2-arm/gcc/config/arm/t-ar
#MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard*
#MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard*
diff -NBaur gcc-4.9.2/gcc/config/arm/unknown-elf.h gcc-4.9.2-arm/gcc/config/arm/unknown-elf.h
--- gcc-4.9.2/gcc/config/arm/unknown-elf.h 2014-01-02 22:23:26.000000000 +0000
+++ gcc-4.9.2-arm/gcc/config/arm/unknown-elf.h 2015-02-14 19:27:06.598220000 +0000
diff -Nbaur gcc-5.2.0/gcc/config/arm/unknown-elf.h gcc-5.2.0-arm/gcc/config/arm/unknown-elf.h
--- gcc-5.2.0/gcc/config/arm/unknown-elf.h 2015-11-28 18:13:20.576000000 +0000
+++ gcc-5.2.0-arm/gcc/config/arm/unknown-elf.h 2015-11-28 18:14:06.328000000 +0000
@@ -29,7 +29,7 @@
#endif
/* Now we define the strings used to build the spec file. */
-#define UNKNOWN_ELF_STARTFILE_SPEC " crti%O%s crtbegin%O%s crt0%O%s"
+#define UNKNOWN_ELF_STARTFILE_SPEC " crti%O%s crtbegin%O%s"
#undef STARTFILE_SPEC
#define STARTFILE_SPEC UNKNOWN_ELF_STARTFILE_SPEC
@@ -93,4 +93,4 @@
udivmoddi4, which will depend on the exception unwind routines,
which will depend on abort, which is defined in libc. */
#undef LINK_GCC_C_SEQUENCE_SPEC
-#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L --end-group"
+#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group"
diff -NBaur gcc-4.9.2/gcc/gcc.c gcc-4.9.2-arm/gcc/gcc.c
--- gcc-4.9.2/gcc/gcc.c 2014-10-22 22:42:48.000000000 +0100
+++ gcc-4.9.2-arm/gcc/gcc.c 2015-02-14 19:27:06.606220000 +0000
@@ -616,6 +616,11 @@
diff -Nbaur gcc-5.2.0/gcc/gcc.c gcc-5.2.0-arm/gcc/gcc.c
--- gcc-5.2.0/gcc/gcc.c 2015-03-10 09:37:41.000000000 +0000
+++ gcc-5.2.0-arm/gcc/gcc.c 2015-11-23 20:16:26.740000000 +0000
@@ -647,6 +647,11 @@
#endif
#endif
@@ -59,7 +69,7 @@ diff -NBaur gcc-4.9.2/gcc/gcc.c gcc-4.9.2-arm/gcc/gcc.c
/* config.h can define STARTFILE_SPEC to override the default crt0 files. */
#ifndef STARTFILE_SPEC
#define STARTFILE_SPEC \
@@ -813,6 +818,7 @@
@@ -879,6 +884,7 @@
static const char *lib_spec = LIB_SPEC;
static const char *link_gomp_spec = "";
static const char *libgcc_spec = LIBGCC_SPEC;
@@ -67,7 +77,7 @@ diff -NBaur gcc-4.9.2/gcc/gcc.c gcc-4.9.2-arm/gcc/gcc.c
static const char *endfile_spec = ENDFILE_SPEC;
static const char *startfile_spec = STARTFILE_SPEC;
static const char *linker_name_spec = LINKER_NAME;
@@ -1303,6 +1309,7 @@
@@ -1374,6 +1380,7 @@
INIT_STATIC_SPEC ("lib", &lib_spec),
INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec),
INIT_STATIC_SPEC ("libgcc", &libgcc_spec),
@@ -75,10 +85,10 @@ diff -NBaur gcc-4.9.2/gcc/gcc.c gcc-4.9.2-arm/gcc/gcc.c
INIT_STATIC_SPEC ("startfile", &startfile_spec),
INIT_STATIC_SPEC ("cross_compile", &cross_compile),
INIT_STATIC_SPEC ("version", &compiler_version),
diff -NBaur gcc-4.9.2/gcc/Makefile.in gcc-4.9.2-arm/gcc/Makefile.in
--- gcc-4.9.2/gcc/Makefile.in 2014-10-16 14:50:42.000000000 +0100
+++ gcc-4.9.2-arm/gcc/Makefile.in 2015-02-14 21:02:09.598220000 +0000
@@ -1046,8 +1046,8 @@
diff -Nbaur gcc-5.2.0/gcc/Makefile.in gcc-5.2.0-arm/gcc/Makefile.in
--- gcc-5.2.0/gcc/Makefile.in 2015-05-04 11:46:32.000000000 +0100
+++ gcc-5.2.0-arm/gcc/Makefile.in 2015-11-23 20:16:26.744000000 +0000
@@ -1053,8 +1053,8 @@
# things like the go/%.o rule work properly; but we use $(*F) for the
# file part, as we just want the file part of the stem, not the entire
# file name.
@@ -89,9 +99,9 @@ diff -NBaur gcc-4.9.2/gcc/Makefile.in gcc-4.9.2-arm/gcc/Makefile.in
else
COMPILE = source='$<' object='$@' libtool=no \
DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) $(COMPILE.base)
diff -NBaur gcc-4.9.2/libcpp/Makefile.in gcc-4.9.2-arm/libcpp/Makefile.in
--- gcc-4.9.2/libcpp/Makefile.in 2014-10-30 08:28:58.000000000 +0000
+++ gcc-4.9.2-arm/libcpp/Makefile.in 2015-02-14 19:27:06.606220000 +0000
diff -Nbaur gcc-5.2.0/libcpp/Makefile.in gcc-5.2.0-arm/libcpp/Makefile.in
--- gcc-5.2.0/libcpp/Makefile.in 2015-07-16 10:16:25.000000000 +0100
+++ gcc-5.2.0-arm/libcpp/Makefile.in 2015-11-23 20:16:26.744000000 +0000
@@ -208,8 +208,7 @@
# 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
@@ -102,18 +112,18 @@ diff -NBaur gcc-4.9.2/libcpp/Makefile.in gcc-4.9.2-arm/libcpp/Makefile.in
else
COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \
$(depcomp) $(COMPILE.base)
diff -NBaur gcc-4.9.2/libgcc/config/arm/t-bpabi gcc-4.9.2-arm/libgcc/config/arm/t-bpabi
--- gcc-4.9.2/libgcc/config/arm/t-bpabi 2012-08-17 16:06:06.000000000 +0100
+++ gcc-4.9.2-arm/libgcc/config/arm/t-bpabi 2015-02-14 19:27:06.610220000 +0000
diff -Nbaur gcc-5.2.0/libgcc/config/arm/t-bpabi gcc-5.2.0-arm/libgcc/config/arm/t-bpabi
--- gcc-5.2.0/libgcc/config/arm/t-bpabi 2012-08-17 16:06:06.000000000 +0100
+++ gcc-5.2.0-arm/libgcc/config/arm/t-bpabi 2015-11-23 20:16:26.744000000 +0000
@@ -17,4 +17,4 @@
# On ARM, specifying -fnon-call-exceptions will needlessly pull in
# the unwinder in simple programs which use 64-bit division. Omitting
# the option is safe.
-LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions
+LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions
diff -NBaur gcc-4.9.2/libgcc/crtstuff.c gcc-4.9.2-arm/libgcc/crtstuff.c
--- gcc-4.9.2/libgcc/crtstuff.c 2014-03-10 18:31:20.000000000 +0000
+++ gcc-4.9.2-arm/libgcc/crtstuff.c 2015-02-14 19:27:06.610220000 +0000
diff -Nbaur gcc-5.2.0/libgcc/crtstuff.c gcc-5.2.0-arm/libgcc/crtstuff.c
--- gcc-5.2.0/libgcc/crtstuff.c 2015-01-05 12:33:28.000000000 +0000
+++ gcc-5.2.0-arm/libgcc/crtstuff.c 2015-11-23 20:16:26.744000000 +0000
@@ -47,7 +47,7 @@
/* Target machine header files require this define. */
@@ -123,10 +133,10 @@ diff -NBaur gcc-4.9.2/libgcc/crtstuff.c gcc-4.9.2-arm/libgcc/crtstuff.c
/* FIXME: Including auto-host is incorrect, but until we have
identified the set of defines that need to go into auto-target.h,
this will have to do. */
diff -NBaur gcc-4.9.2/libgcc/Makefile.in gcc-4.9.2-arm/libgcc/Makefile.in
--- gcc-4.9.2/libgcc/Makefile.in 2014-01-08 16:37:08.000000000 +0000
+++ gcc-4.9.2-arm/libgcc/Makefile.in 2015-02-14 19:27:06.610220000 +0000
@@ -816,7 +816,7 @@
diff -Nbaur gcc-5.2.0/libgcc/Makefile.in gcc-5.2.0-arm/libgcc/Makefile.in
--- gcc-5.2.0/libgcc/Makefile.in 2015-01-29 08:03:56.000000000 +0000
+++ gcc-5.2.0-arm/libgcc/Makefile.in 2015-11-23 20:16:26.744000000 +0000
@@ -819,7 +819,7 @@
# libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and
# LIB2ADDEHSHARED matter. (Usually all three are identical.)

View File

@@ -1,7 +1,7 @@
diff -NBaur gdb-7.8.2/gdb/Makefile.in gdb-7.8.2-arm/gdb/Makefile.in
--- gdb-7.8.2/gdb/Makefile.in 2015-01-15 10:58:12.000000000 +0000
+++ gdb-7.8.2-arm/gdb/Makefile.in 2015-01-21 17:13:14.155896000 +0000
@@ -2516,10 +2516,8 @@
diff -NBaur gdb-7.10/gdb/Makefile.in gdb-7.10-arm/gdb/Makefile.in
--- gdb-7.10/gdb/Makefile.in 2015-08-28 22:22:07.000000000 +0100
+++ gdb-7.10-arm/gdb/Makefile.in 2015-10-21 08:54:36.492597858 +0100
@@ -2676,10 +2676,8 @@
# 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.
@@ -14,10 +14,10 @@ diff -NBaur gdb-7.8.2/gdb/Makefile.in gdb-7.8.2-arm/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.8.2/sim/common/Make-common.in gdb-7.8.2-arm/sim/common/Make-common.in
--- gdb-7.8.2/sim/common/Make-common.in 2015-01-15 10:58:12.000000000 +0000
+++ gdb-7.8.2-arm/sim/common/Make-common.in 2015-01-21 17:13:14.155896000 +0000
@@ -415,10 +415,8 @@
diff -NBaur gdb-7.10/sim/common/Make-common.in gdb-7.10-arm/sim/common/Make-common.in
--- gdb-7.10/sim/common/Make-common.in 2015-07-06 20:57:46.000000000 +0100
+++ gdb-7.10-arm/sim/common/Make-common.in 2015-10-21 08:54:36.492597858 +0100
@@ -421,10 +421,8 @@
# 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.

View File

@@ -648,15 +648,16 @@ index 0000000..79d2006
+}
diff --git a/libgloss/libsysbase/chdir.c b/libgloss/libsysbase/chdir.c
new file mode 100644
index 0000000..c850f27
index 0000000..ae3a099
--- /dev/null
+++ b/libgloss/libsysbase/chdir.c
@@ -0,0 +1,192 @@
@@ -0,0 +1,199 @@
+#include <unistd.h>
+#include <limits.h>
+#include <reent.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <sys/iosupport.h>
+#include <sys/param.h>
+
@@ -779,7 +780,13 @@ index 0000000..c850f27
+ strncpy (temp_cwd, _current_working_directory, PATH_MAX);
+ }
+
+ pathPosition = strchr (temp_cwd , ':') + 1;
+ pathPosition = strchr (temp_cwd , ':');
+
+ if (pathPosition == NULL) {
+ pathPosition = temp_cwd;
+ } else {
+ pathPosition++;
+ }
+
+ /* Make sure the path starts in the root directory */
+ if (pathPosition[0] != DIRECTORY_SEPARATOR_CHAR) {
@@ -880,7 +887,7 @@ index 0000000..f3959bf
+
diff --git a/libgloss/libsysbase/close.c b/libgloss/libsysbase/close.c
new file mode 100644
index 0000000..6470054
index 0000000..c69a817
--- /dev/null
+++ b/libgloss/libsysbase/close.c
@@ -0,0 +1,49 @@
@@ -907,7 +914,7 @@ index 0000000..6470054
+#endif
+ int ret = -1;
+ unsigned int dev = 0;
+ unsigned int fd = -1;
+ int fd = -1;
+
+ if(fileDesc!=-1) {
+
@@ -917,7 +924,7 @@ index 0000000..6470054
+ dev = handle->device;
+ handle->refcount--;
+ if (handle->refcount == 0 ) {
+ fd = (unsigned int)handle->fileStruct;
+ fd = (int)handle->fileStruct;
+
+ if(devoptab_list[dev]->close_r)
+ ret = devoptab_list[dev]->close_r(ptr,fd);
@@ -5758,7 +5765,7 @@ index 0000000..712b13e
+}
diff --git a/libgloss/libsysbase/fstat.c b/libgloss/libsysbase/fstat.c
new file mode 100644
index 0000000..c0d80dd
index 0000000..9881601
--- /dev/null
+++ b/libgloss/libsysbase/fstat.c
@@ -0,0 +1,45 @@
@@ -5787,7 +5794,7 @@ index 0000000..c0d80dd
+#endif
+ int ret = -1;
+ unsigned int dev = 0;
+ unsigned int fd = -1;
+ int fd = -1;
+
+ __handle * handle = NULL;
+
@@ -6152,12 +6159,13 @@ index 0000000..9714c10
+}
diff --git a/libgloss/libsysbase/iosupport.c b/libgloss/libsysbase/iosupport.c
new file mode 100644
index 0000000..ae816a8
index 0000000..c08699d
--- /dev/null
+++ b/libgloss/libsysbase/iosupport.c
@@ -0,0 +1,126 @@
@@ -0,0 +1,133 @@
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/iosupport.h>
+
+static int defaultDevice = -1;
@@ -6171,13 +6179,19 @@ index 0000000..ae816a8
+}
+
+//---------------------------------------------------------------------------------
+static ssize_t null_write(struct _reent *r,int fd,const char *ptr, size_t len) {
+//---------------------------------------------------------------------------------
+ return len;
+}
+
+//---------------------------------------------------------------------------------
+const devoptab_t dotab_stdnull = {
+//---------------------------------------------------------------------------------
+ "stdnull", // device name
+ 0, // size of file structure
+ NULL, // device open
+ NULL, // device close
+ NULL, // device write
+ null_write, // device write
+ NULL, // device read
+ NULL, // device seek
+ NULL, // device fstat
@@ -6382,7 +6396,7 @@ index 0000000..c1698dd
+
diff --git a/libgloss/libsysbase/lseek.c b/libgloss/libsysbase/lseek.c
new file mode 100644
index 0000000..aa232e0
index 0000000..20a7da1
--- /dev/null
+++ b/libgloss/libsysbase/lseek.c
@@ -0,0 +1,53 @@
@@ -6417,7 +6431,7 @@ index 0000000..aa232e0
+//---------------------------------------------------------------------------------
+ _off_t ret = -1;
+ unsigned int dev = 0;
+ unsigned int fd = -1;
+ int fd = -1;
+
+ __handle * handle;
+
@@ -6539,7 +6553,7 @@ index 0000000..7a3953c
+}
diff --git a/libgloss/libsysbase/read.c b/libgloss/libsysbase/read.c
new file mode 100644
index 0000000..c7eaafe
index 0000000..5fa5919
--- /dev/null
+++ b/libgloss/libsysbase/read.c
@@ -0,0 +1,47 @@
@@ -6570,7 +6584,7 @@ index 0000000..c7eaafe
+#endif
+ int ret = -1;
+ unsigned int dev = 0;
+ unsigned int fd = -1;
+ int fd = -1;
+
+ __handle * handle = NULL;
+
@@ -7132,7 +7146,7 @@ index 0000000..2c29982
+#endif /* __WARNING_H__ */
diff --git a/libgloss/libsysbase/write.c b/libgloss/libsysbase/write.c
new file mode 100644
index 0000000..263eb69
index 0000000..9422f52
--- /dev/null
+++ b/libgloss/libsysbase/write.c
@@ -0,0 +1,46 @@
@@ -7163,7 +7177,7 @@ index 0000000..263eb69
+#endif
+ int ret = -1;
+ unsigned int dev = 0;
+ unsigned int fd = -1;
+ int fd = -1;
+
+ __handle * handle = NULL;
+
@@ -7183,7 +7197,7 @@ index 0000000..263eb69
+ return ret;
+}
diff --git a/newlib/configure.host b/newlib/configure.host
index c4773d9..4f1f5a2 100644
index c4773d9..e55f330 100644
--- a/newlib/configure.host
+++ b/newlib/configure.host
@@ -602,6 +602,14 @@ case "${host}" in
@@ -7194,7 +7208,7 @@ index c4773d9..4f1f5a2 100644
+ default_newlib_io_c99_formats="yes"
+ default_newlib_io_long_long="yes"
+ default_newlib_io_pos_args="yes"
+ newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -D__DEFAULT_UTF8__"
+ newlib_cflags="${newlib_cflags} -D__DYNAMIC_REENT__ -DREENTRANT_SYSCALLS_PROVIDED -D__DEFAULT_UTF8__"
+ newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections"
+ syscall_dir=syscalls
+ ;;
@@ -7290,10 +7304,10 @@ index a3fb5c0..1ead46b 100644
+#endif // _dirent_h_
diff --git a/newlib/libc/include/sys/iosupport.h b/newlib/libc/include/sys/iosupport.h
new file mode 100644
index 0000000..1cd3b62
index 0000000..2b5fc6e
--- /dev/null
+++ b/newlib/libc/include/sys/iosupport.h
@@ -0,0 +1,107 @@
@@ -0,0 +1,105 @@
+//---------------------------------------------------------------------------------
+#ifndef __iosupp_h__
+#define __iosupp_h__
@@ -7367,8 +7381,6 @@ index 0000000..1cd3b62
+ void *(*sbrk_r) (struct _reent *ptr, ptrdiff_t incr);
+ void (*exit) ( int rc );
+ int (*gettod_r) (struct _reent *ptr, struct timeval *tp, struct timezone *tz);
+ void (*malloc_lock) (struct _reent *ptr);
+ void (*malloc_unlock) (struct _reent *ptr);
+ void (*lock_init) (_LOCK_T *lock);
+ void (*lock_acquire) (_LOCK_T *lock);
+ int (*lock_try_acquire) (_LOCK_T *lock);
@@ -7444,10 +7456,10 @@ index 0000000..380329d
+#endif // _SYS_STATVFS_H
\ No newline at end of file
diff --git a/newlib/libc/include/sys/syslimits.h b/newlib/libc/include/sys/syslimits.h
index ba9dbd6..8bc19ff 100644
index ba9dbd6..51d99ec 100644
--- a/newlib/libc/include/sys/syslimits.h
+++ b/newlib/libc/include/sys/syslimits.h
@@ -44,12 +44,12 @@
@@ -44,7 +44,7 @@
#define LINK_MAX 32767 /* max file link count */
#define MAX_CANON 255 /* max bytes in term canon input line */
#define MAX_INPUT 255 /* max bytes in terminal input */
@@ -7456,12 +7468,6 @@ index ba9dbd6..8bc19ff 100644
#define NGROUPS_MAX 16 /* max supplemental group id's */
#ifndef OPEN_MAX
#define OPEN_MAX 64 /* max open files per process */
#endif
-#define PATH_MAX 1024 /* max bytes in pathname */
+#define PATH_MAX 4096 /* max bytes in pathname */
#define PIPE_BUF 512 /* max bytes for atomic pipe writes */
#define IOV_MAX 1024 /* max elements in i/o vector */
diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h
index ed33e0a..79f73ac 100644
--- a/newlib/libc/include/sys/types.h
@@ -7725,8 +7731,80 @@ index 13e1e4c..ba71516 100644
/* Cygwin starts up in UTF-8 mode. */
= __utf8_wctomb;
#else
diff --git a/newlib/libc/sys/arm/sys/lock.h b/newlib/libc/sys/arm/sys/lock.h
new file mode 100644
index 0000000..567fed5
--- /dev/null
+++ b/newlib/libc/sys/arm/sys/lock.h
@@ -0,0 +1,66 @@
+#ifndef __SYS_LOCK_H__
+#define __SYS_LOCK_H__
+
+#include <_ansi.h>
+#include <stdint.h>
+
+typedef int32_t _LOCK_T;
+
+struct __lock_t {
+ _LOCK_T lock;
+ uint32_t thread_tag;
+ uint32_t counter;
+};
+
+typedef struct __lock_t _LOCK_RECURSIVE_T;
+
+extern void __libc_lock_init(_LOCK_T *lock);
+extern void __libc_lock_init_recursive(_LOCK_RECURSIVE_T *lock);
+extern void __libc_lock_close(_LOCK_T *lock);
+extern void __libc_lock_close_recursive(_LOCK_RECURSIVE_T *lock);
+extern void __libc_lock_acquire(_LOCK_T *lock);
+extern void __libc_lock_acquire_recursive(_LOCK_RECURSIVE_T *lock);
+extern void __libc_lock_release(_LOCK_T *lock);
+extern void __libc_lock_release_recursive(_LOCK_RECURSIVE_T *lock);
+
+/* Returns 0 for success and non-zero for failure */
+extern int __libc_lock_try_acquire(_LOCK_T *lock);
+extern int __libc_lock_try_acquire_recursive(_LOCK_RECURSIVE_T *lock);
+
+#define __LOCK_INIT(CLASS,NAME) \
+CLASS _LOCK_T NAME = 1;
+
+#define __LOCK_INIT_RECURSIVE(CLASS,NAME) \
+CLASS _LOCK_RECURSIVE_T NAME = {1,0,0};
+
+#define __lock_init(NAME) \
+ __libc_lock_init(&(NAME))
+
+#define __lock_init_recursive(NAME) \
+ __libc_lock_init_recursive(&(NAME))
+
+#define __lock_close(NAME) \
+ __libc_lock_close(&(NAME))
+
+#define __lock_close_recursive(NAME) \
+ __libc_lock_close_recursive(&(NAME))
+
+#define __lock_acquire(NAME) \
+ __libc_lock_acquire(&(NAME))
+
+#define __lock_acquire_recursive(NAME) \
+ __libc_lock_acquire_recursive(&(NAME))
+
+#define __lock_try_acquire(NAME) \
+ __libc_lock_try_acquire(&(NAME))
+
+#define __lock_try_acquire_recursive(NAME) \
+ __libc_lock_try_acquire_recursive(&(NAME))
+
+#define __lock_release(NAME) \
+ __libc_lock_release(&(NAME))
+
+#define __lock_release_recursive(NAME) \
+ __libc_lock_release_recursive(&(NAME))
+
+#endif // __SYS_LOCK_H__
diff --git a/newlib/libc/sys/arm/sys/param.h b/newlib/libc/sys/arm/sys/param.h
index adc066e..4bf7ad5 100644
index adc066e..836f80f 100644
--- a/newlib/libc/sys/arm/sys/param.h
+++ b/newlib/libc/sys/arm/sys/param.h
@@ -3,10 +3,17 @@
@@ -7739,13 +7817,12 @@ index adc066e..4bf7ad5 100644
+#endif
+#ifndef NOFILE
# define NOFILE (60)
-# define PATHSIZE (1024)
+#endif
+#ifndef PATHSIZE
+# define PATHSIZE (4096)
# define PATHSIZE (1024)
+#endif
+#define MAXPATHLEN 4096
+#define MAXPATHLEN PATHSIZE
#define BIG_ENDIAN 4321
#define LITTLE_ENDIAN 1234

View File

@@ -6,7 +6,7 @@ include $(DEVKITARM)/base_rules
PORTLIBS := $(PORTLIBS_PATH)/armv6k $(PORTLIBS_PATH)/3ds
CTRULIB := $(DEVKITPRO)/libctru
CTRULIB ?= $(DEVKITPRO)/libctru
ifeq ($(strip $(APP_TITLE)),)
APP_TITLE := $(notdir $(OUTPUT))

View File

@@ -20,10 +20,11 @@ PREFIX := arm-none-eabi-
export CC := $(PREFIX)gcc
export CXX := $(PREFIX)g++
export AS := $(PREFIX)as
export AR := $(PREFIX)ar
export AR := $(PREFIX)gcc-ar
export OBJCOPY := $(PREFIX)objcopy
export STRIP := $(PREFIX)strip
export NM := $(PREFIX)nm
export NM := $(PREFIX)gcc-nm
export RANLIB := $(PREFIX)gcc-ranlib
ISVC=$(or $(VCBUILDHELPER_COMMAND),$(MSBUILDEXTENSIONSPATH32),$(MSBUILDEXTENSIONSPATH))

View File

@@ -43,6 +43,8 @@ then
--enable-languages=c,c++,objc,obj-c++ \
--with-gnu-as --with-gnu-ld --with-gcc \
--with-march=armv4t\
--enable-cxx-flags='-ffunction-sections' \
--disable-libstdcxx-verbose \
--enable-poison-system-directories \
--enable-interwork --enable-multilib \
--disable-dependency-tracking \
@@ -54,7 +56,7 @@ then
--with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \
--prefix=$prefix \
--enable-lto $plugin_ld\
--with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 44" \
--with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 45" \
$CROSS_PARAMS \
|| { echo "Error configuring gcc"; exit 1; }
touch configured-gcc

View File

@@ -30,10 +30,10 @@ done
case "$VERSION" in
"1" )
GCC_VER=4.9.2
BINUTILS_VER=2.25
GCC_VER=5.3.0
BINUTILS_VER=2.25.1
NEWLIB_VER=2.2.0
GDB_VER=7.8.2
GDB_VER=7.10
basedir='dkarm-eabi'
package=devkitARM
target=arm-none-eabi