mirror of
https://github.com/devkitPro/buildscripts.git
synced 2026-08-20 17:34:25 -05:00
Compare commits
67 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cb1caec39b | ||
|
|
35fe7968da | ||
|
|
c1cca846a3 | ||
|
|
5b64b79621 | ||
|
|
598983a38a | ||
|
|
e88c516694 | ||
|
|
d3505fdf69 | ||
|
|
62b2adce92 | ||
|
|
4fbb8b8b54 | ||
|
|
9fb5310f7d | ||
|
|
2a8f1980d8 | ||
|
|
0b9a5d7f76 | ||
|
|
bfdab38a67 | ||
|
|
802007e17f | ||
|
|
7f5147f4ec | ||
|
|
2e2905ee72 | ||
|
|
08f90d3343 | ||
|
|
59cbc65a94 | ||
|
|
3d49b7287a | ||
|
|
5305d2e77e | ||
|
|
742742f275 | ||
|
|
c3248e2ed5 | ||
|
|
9a1e7dfb06 | ||
|
|
bb4be681cb | ||
|
|
c6f7acb7eb | ||
|
|
939f373da5 | ||
|
|
84d9590a9c | ||
|
|
b28d86537e | ||
|
|
dab44c9fe2 | ||
|
|
94f707c93e | ||
|
|
5522eb47bc | ||
|
|
ad68b25d09 | ||
|
|
ff7a467958 | ||
|
|
a31587e78a | ||
|
|
f846fe610b | ||
|
|
47e4fcbee5 | ||
|
|
7a6994a1c7 | ||
|
|
fdd2a20b33 | ||
|
|
7546e1e65a | ||
|
|
c2be5b3865 | ||
|
|
18b81c32e8 | ||
|
|
9c53de7304 | ||
|
|
be191f464a | ||
|
|
466748e63c | ||
|
|
213b8b293d | ||
|
|
63fc9bb5e5 | ||
|
|
fe1d504432 | ||
|
|
970e965ba5 | ||
|
|
192c28db55 | ||
|
|
c4ab14acb2 | ||
|
|
334b3ab083 | ||
|
|
958eb2bae6 | ||
|
|
30c83ed3d0 | ||
|
|
f7de61f3c9 | ||
|
|
e897a44640 | ||
|
|
e0caf9ea02 | ||
|
|
e454bd0dd7 | ||
|
|
ac53b3f62f | ||
|
|
bb77177e7b | ||
|
|
00dfc2dbbb | ||
|
|
98596aad6d | ||
|
|
2f10349942 | ||
|
|
ae01482942 | ||
|
|
b8b237c88d | ||
|
|
2ebf134e6f | ||
|
|
1689594d0a | ||
|
|
ccae1fd3bc |
69
README.TXT
69
README.TXT
@@ -1,59 +1,65 @@
|
||||
devkitPro build scripts
|
||||
--------------------------
|
||||
|
||||
This readme will guide you through building devkitARM, devkitPPC or devkitPSP from source using a set of scripts.
|
||||
This readme will guide you through building devkitARM, devkitPPC or devkitPSP
|
||||
from source using a set of scripts.
|
||||
|
||||
To use these scripts under minsys and MinGW you will need some additional packages over and above the base install.
|
||||
The windows versions of the toolchains are now cross compiled on linux using
|
||||
mingw-w64
|
||||
|
||||
The minsys developer toolkit
|
||||
|
||||
http://prdownloads.sourceforge.net/mingw/msysDTK-1.0.1.exe?download
|
||||
|
||||
Bison, Flex and Wget from the gnuwin32 project
|
||||
|
||||
http://sourceforge.net/projects/gnuwin32/
|
||||
Preparing to build
|
||||
--------------------------
|
||||
|
||||
required packages for building on debian/*buntu
|
||||
|
||||
sudo apt-get install build-essential autoconf automake bison flex libncurses5-dev libreadline-dev texinfo
|
||||
sudo apt-get install build-essential autoconf automake bison flex libncurses5-dev
|
||||
libreadline-dev texinfo pkg-config
|
||||
|
||||
for building gcc libgmp, libmpfr and libmpc are required
|
||||
For building gcc libgmp, libmpfr and libmpc are required - these are built as
|
||||
static libraries to make packaging simpler. If you're building the tools for
|
||||
personal use then the versions packaged by your chosen distro should suffice.
|
||||
|
||||
http://gmplib.org/
|
||||
http://www.mpfr.org/
|
||||
http://www.multiprecision.org/
|
||||
|
||||
Some of the tools for devkitARM and devkitPPC also require FreeImage, zlib, and libusb
|
||||
Some of the tools for devkitARM and devkitPPC also require FreeImage, zlib,
|
||||
and libusb. Again these are built as static libraries for ease of packaging
|
||||
but you can probably use the versions supplied by your distro.
|
||||
|
||||
http://freeimage.sourceforge.net/
|
||||
http://www.zlib.net
|
||||
http://www.libusb.org
|
||||
|
||||
|
||||
Downloading the source packages
|
||||
-------------------------------
|
||||
Building gxtexconv for cube/wii needs GL/gl.h which can be obtained with
|
||||
sudo apt-get install mesa-common-dev
|
||||
|
||||
When you run the build script it will ask you to choose from one of two options, one for if you have already downloaded the source packages and another for if you want it to download them for you (using wget or curl).
|
||||
To avoid having to manually answer prompts during the build the script will
|
||||
read variables from config.sh if it exists. Copy config.sh.sample to config.sh
|
||||
and set the variables as appropriate for your build.
|
||||
|
||||
The script will download the source packages it needs. These will be downloaded
|
||||
to the script directory by default but you can set BUILD_DKPRO_SRCDIR if you want
|
||||
to put them somewhere else. When its finished you have the option to delete
|
||||
all temporary files, sources and their source packages.
|
||||
|
||||
The top level shell script has now been unified and offers the option of devkitARM, devkitPPC or devkitPSP.
|
||||
|
||||
Building the devkits
|
||||
--------------------
|
||||
|
||||
Simply run the "build-devkit.sh" script in the same directory as this text file as shown below, then follow the prompts;
|
||||
Simply run the "build-devkit.sh" script in the same directory as this text file
|
||||
as shown below, then follow the prompts;
|
||||
|
||||
./build-devkit.sh
|
||||
|
||||
Once the script finds the source packages they will be decompressed and the build process will begin. When its finished you have the option to delete all temporary files, sources and their source packages.
|
||||
|
||||
To avoid having to manually answer prompts during the build the script will read variables from config.sh if it exists. Copy config.sh.sample to config.sh and set the variables as appropriate for your build.
|
||||
|
||||
Several examples tarballs are provided for the platforms supported by devkitARM & devkitPPC, these include basic templates for starting your own projects. See http://wiki.devkitpro.org/index.php/Getting_Started for links.
|
||||
Several examples tarballs are provided for the platforms supported by devkitARM &
|
||||
devkitPPC, these include basic templates for starting your own projects.
|
||||
See http://wiki.devkitpro.org/index.php/Getting_Started for links.
|
||||
|
||||
Using devkitARM
|
||||
---------------
|
||||
|
||||
to use the built in crt0 and linkscript use arm-eabi-gcc to link your project
|
||||
to use the built in crt0 and linkscript use arm-none-eabi-gcc to link your project
|
||||
|
||||
Several specs files are built in for the various platforms
|
||||
|
||||
@@ -65,25 +71,31 @@ Several specs files are built in for the various platforms
|
||||
-specs=ds_cart for a DS arm7 binary which runs from GBA cart.
|
||||
-specs=gp32.specs for standard GP32 app.
|
||||
-specs=gp32_gpsdk.specs for official gamepark SDK GP32 app.
|
||||
-specs=3dsx.specs for a 3DS homebrew binary.
|
||||
|
||||
Using devkitPPC
|
||||
---------------
|
||||
|
||||
to use the built in crt0 and linkscript use powerpc-gekko-gcc to link your project, using the command line switch -mgcn for a bare bones system, -mogc to use libogc and the multi-threaded microkernel for gamecube, -mrvl for wii.
|
||||
to use the built in crt0 and linkscript use powerpc-eabi-gcc to link your project,
|
||||
using the command line switch -mgcn for a bare bones system, -mogc to use libogc and
|
||||
the multi-threaded microkernel for gamecube, -mrvl for wii.
|
||||
|
||||
Using devkitPSP
|
||||
---------------
|
||||
|
||||
All you need to do now to use devkitPSP is make sure that your freshly built tools are in your PATH, something like this;
|
||||
All you need to do now to use devkitPSP is make sure that your freshly built tools
|
||||
are in your PATH, something like this;
|
||||
|
||||
export PATH=$PATH:<path to devkitPSP>/bin
|
||||
|
||||
(Obviously replace <path to devkitPSP> with the full path to the devkitPSP installation directory)
|
||||
(Obviously replace <path to devkitPSP> with the full path to the devkitPSP
|
||||
installation directory)
|
||||
|
||||
Getting started
|
||||
---------------
|
||||
|
||||
The best thing to do next is test the compiler, so grab an examples tarball from sourceforge & run make in the top level.
|
||||
The best thing to do next is test the compiler, so grab an examples tarball
|
||||
from sourceforge & run make in the top level.
|
||||
|
||||
Credits
|
||||
-------
|
||||
@@ -91,6 +103,7 @@ Credits
|
||||
* Thanks to WinterMute for bringing us devkitPro, the website is http://www.devkitpro.org
|
||||
* Build scripts written by WinterMute and tied together by GreenGianT
|
||||
* Thanks to Mr Spiv, Honkey Kong, Raleigh and JoostP for OS X testing
|
||||
* libctru by Smealum, YellowS8, fincs, mtheall & WinterMute with contributions from many others.
|
||||
* libogc written and supplied by Shagkur. Additional code by WinterMute, Bushing, Marcan & Tybor
|
||||
* libgba by WinterMute
|
||||
* libnds by Joat, Dovoto and WinterMute with contributions from many others.
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#!/bin/bash
|
||||
#---------------------------------------------------------------------------------
|
||||
# Build scripts for
|
||||
# devkitARM release 42
|
||||
# devkitARM release 44
|
||||
# devkitPPC release 27
|
||||
# devkitPSP release 17
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
if [ 1 -eq 1 ] ; then
|
||||
if [ 0 -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/"
|
||||
@@ -25,28 +25,30 @@ echo "https://sourceforge.net/tracker/?group_id=114505&atid=668553"
|
||||
echo
|
||||
|
||||
LIBOGC_VER=1.8.12
|
||||
LIBGBA_VER=20090222
|
||||
LIBNDS_VER=1.5.8
|
||||
DEFAULT_ARM7_VER=0.5.24
|
||||
DSWIFI_VER=0.3.16
|
||||
LIBGBA_VER=20150106
|
||||
LIBNDS_VER=1.5.10
|
||||
LIBCTRU_VER=0.4.0
|
||||
DEFAULT_ARM7_VER=0.5.27
|
||||
DSWIFI_VER=0.3.17
|
||||
LIBMIRKO_VER=0.9.7
|
||||
MAXMOD_VER=1.0.9
|
||||
FILESYSTEM_VER=0.9.11
|
||||
LIBFAT_VER=1.0.12
|
||||
FILESYSTEM_VER=0.9.12
|
||||
LIBFAT_VER=1.0.14
|
||||
PSPSDK_VER=20120404
|
||||
GBATOOLS_VER=1.0.0
|
||||
DSTOOLS_VER=1.0.0
|
||||
DSTOOLS_VER=1.0.2
|
||||
GP32_TOOLS_VER=1.0.1
|
||||
GRIT_VER=0.8.12
|
||||
NDSTOOL_VER=1.50.1
|
||||
NDSTOOL_VER=1.50.3
|
||||
GENERAL_TOOLS_VER=1.0.0
|
||||
DLDITOOL_VER=1.24.0
|
||||
GXTEXCONV_VER=0.1.9
|
||||
GCDSPSUITE_VER=1.4.0
|
||||
ELF2DOL_VER=1.0.0
|
||||
GAMECUBE_TOOLS_VER=1.0.0
|
||||
WIILOAD_VER=0.5.1
|
||||
MMUTIL_VER=1.8.6
|
||||
DFU_UTIL_VER=0.7
|
||||
STLINK_VER=0.5.7
|
||||
DFU_UTIL_VER=0.8.1
|
||||
STLINK_VER=0.5.8
|
||||
TOOLS3DS_VER=1.0.3
|
||||
LINK3DS_VER=0.5.0
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
function extract_and_patch {
|
||||
@@ -90,7 +92,7 @@ unset LDFLAGS
|
||||
#---------------------------------------------------------------------------------
|
||||
# Look for automated configuration file to bypass prompts
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
|
||||
echo -n "Looking for configuration file... "
|
||||
if [ -f ./config.sh ]; then
|
||||
echo "Found."
|
||||
@@ -192,23 +194,29 @@ scriptdir=$(pwd)/$basedir/scripts
|
||||
archives="binutils-${BINUTILS_VER}.tar.bz2 gcc-${GCC_VER}.tar.bz2 newlib-${NEWLIB_VER}.tar.gz gdb-${GDB_VER}.tar.bz2"
|
||||
|
||||
if [ $VERSION -eq 1 ]; then
|
||||
|
||||
targetarchives="libnds-src-${LIBNDS_VER}.tar.bz2 libgba-src-${LIBGBA_VER}.tar.bz2
|
||||
libmirko-src-${LIBMIRKO_VER}.tar.bz2 dswifi-src-${DSWIFI_VER}.tar.bz2 maxmod-src-${MAXMOD_VER}.tar.bz2
|
||||
default_arm7-src-${DEFAULT_ARM7_VER}.tar.bz2 libfilesystem-src-${FILESYSTEM_VER}.tar.bz2
|
||||
libfat-src-${LIBFAT_VER}.tar.bz2"
|
||||
hostarchives="gbatools-$GBATOOLS_VER.tar.bz2 dstools-$DSTOOLS_VER.tar.bz2 grit-$GRIT_VER.tar.bz2 ndstool-$NDSTOOL_VER.tar.bz2
|
||||
libfat-src-${LIBFAT_VER}.tar.bz2 libctru-src-${LIBCTRU_VER}.tar.bz2"
|
||||
|
||||
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"
|
||||
dfu-util-$DFU_UTIL_VER.tar.bz2 stlink-$STLINK_VER.tar.bz2 3dstools-$TOOLS3DS_VER.tar.bz2 3dslink-$LINK3DS_VER.tar.bz2"
|
||||
fi
|
||||
|
||||
if [ $VERSION -eq 2 ]; then
|
||||
|
||||
targetarchives="libogc-src-${LIBOGC_VER}.tar.bz2 libfat-src-${LIBFAT_VER}.tar.bz2"
|
||||
hostarchives="gxtexconv-$GXTEXCONV_VER.tar.bz2 gcdspsuite-$GCDSPSUITE_VER.tar.bz2
|
||||
wiiload-$WIILOAD_VER.tar.bz2 elf2dol-$ELF2DOL_VER.tar.bz2 general-tools-$GENERAL_TOOLS_VER.tar.bz2"
|
||||
|
||||
hostarchives="gamecube-tools-$GAMECUBE_TOOLS_VER.tar.bz2 wiiload-$WIILOAD_VER.tar.bz2 general-tools-$GENERAL_TOOLS_VER.tar.bz2"
|
||||
fi
|
||||
|
||||
if [ $VERSION -eq 3 ]; then
|
||||
|
||||
targetarchives="pspsdk-src-${PSPSDK_VER}.tar.bz2"
|
||||
|
||||
fi
|
||||
|
||||
if [ ! -z "$BUILD_DKPRO_SRCDIR" ] ; then
|
||||
@@ -248,7 +256,10 @@ done
|
||||
|
||||
for archive in $hostarchives
|
||||
do
|
||||
tar -xjf "$SRCDIR/$archive"
|
||||
destdir=$(echo $archive | sed -e 's/\(.*\)-src-\(.*\)\.tar\.bz2/\1-\2/' )
|
||||
if [ ! -d $destdir ]; then
|
||||
tar -xjf "$SRCDIR/$archive"
|
||||
fi
|
||||
done
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
13
config.sh.sample
Normal file → Executable file
13
config.sh.sample
Normal file → Executable file
@@ -13,15 +13,6 @@
|
||||
#---------------------------------------------------------------------------------
|
||||
BUILD_DKPRO_PACKAGE=0
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# Download source packages
|
||||
#---------------------------------------------------------------------------------
|
||||
# 0: User selects manually
|
||||
# 1: already downloaded
|
||||
# 2: download packages
|
||||
#---------------------------------------------------------------------------------
|
||||
BUILD_DKPRO_DOWNLOAD=0
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# Toolchain installation directory, comment if not specified
|
||||
#---------------------------------------------------------------------------------
|
||||
@@ -36,7 +27,7 @@ BUILD_DKPRO_DOWNLOAD=0
|
||||
#---------------------------------------------------------------------------------
|
||||
# Automated script execution
|
||||
#---------------------------------------------------------------------------------
|
||||
# 0: Ask to delete build folders & patched sources
|
||||
# 1: Use defaults, don't pause for answers
|
||||
# 0: Ask to delete build folders & patched sources
|
||||
# 1: Use defaults, don't pause for answers
|
||||
#---------------------------------------------------------------------------------
|
||||
BUILD_DKPRO_AUTOMATED=0
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#!/bin/bash
|
||||
export CROSSBUILD=i686-w64-mingw32
|
||||
export CROSSLIBPATH=/opt/i686-w64-mingw32/mingw/lib
|
||||
export CROSSBINPATH=/opt/i686-w64-mingw32/mingw/bin
|
||||
export PATH=/opt/i686-w64-mingw32/bin:$PATH
|
||||
export CROSSLIBPATH=/opt/mingw32/mingw/lib
|
||||
export CROSSBINPATH=/opt/mingw32/mingw/bin
|
||||
export PATH=/opt/mingw32/bin:$PATH
|
||||
export PKG_CONFIG_PATH=$CROSSLIBPATH/pkgconfig
|
||||
|
||||
|
||||
162
dkarm-eabi/crtls/3dsx.ld
Normal file
162
dkarm-eabi/crtls/3dsx.ld
Normal file
@@ -0,0 +1,162 @@
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(_start)
|
||||
|
||||
PHDRS
|
||||
{
|
||||
code PT_LOAD FLAGS(5) /* Read | Execute */;
|
||||
rodata PT_LOAD FLAGS(4) /* Read */;
|
||||
data PT_LOAD FLAGS(6) /* Read | Write */;
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* =========== CODE section =========== */
|
||||
|
||||
. = 0x100000;
|
||||
__start__ = . ;
|
||||
|
||||
.text ALIGN(0x1000) :
|
||||
{
|
||||
/* .init */
|
||||
KEEP( *(.crt0) )
|
||||
KEEP( *(.init) )
|
||||
. = ALIGN(4);
|
||||
|
||||
/* .text */
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
*(.glue_7)
|
||||
*(.glue_7t)
|
||||
*(.stub)
|
||||
*(.gnu.warning)
|
||||
*(.gnu.linkonce.t*)
|
||||
. = ALIGN(4);
|
||||
|
||||
/* .fini */
|
||||
KEEP( *(.fini) )
|
||||
. = ALIGN(4);
|
||||
} : code
|
||||
|
||||
/* =========== RODATA section =========== */
|
||||
|
||||
.rodata ALIGN(0x1000) :
|
||||
{
|
||||
*(.rodata)
|
||||
*(.roda)
|
||||
*(.rodata.*)
|
||||
*all.rodata*(*)
|
||||
*(.gnu.linkonce.r*)
|
||||
SORT(CONSTRUCTORS)
|
||||
. = ALIGN(4);
|
||||
} : rodata
|
||||
|
||||
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } : rodata
|
||||
__exidx_start = .;
|
||||
ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } : rodata
|
||||
__exidx_end = .;
|
||||
|
||||
/* =========== DATA section =========== */
|
||||
|
||||
.data ALIGN(0x1000) :
|
||||
{
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
*(.gnu.linkonce.d*)
|
||||
CONSTRUCTORS
|
||||
. = ALIGN(4);
|
||||
} : data
|
||||
|
||||
.preinit_array ALIGN(4) :
|
||||
{
|
||||
PROVIDE (__preinit_array_start = .);
|
||||
KEEP (*(.preinit_array))
|
||||
PROVIDE (__preinit_array_end = .);
|
||||
} : data
|
||||
|
||||
.init_array ALIGN(4) :
|
||||
{
|
||||
PROVIDE (__init_array_start = .);
|
||||
KEEP (*(SORT(.init_array.*)))
|
||||
KEEP (*(.init_array))
|
||||
PROVIDE (__init_array_end = .);
|
||||
} : data
|
||||
|
||||
.fini_array ALIGN(4) :
|
||||
{
|
||||
PROVIDE (__fini_array_start = .);
|
||||
KEEP (*(.fini_array))
|
||||
KEEP (*(SORT(.fini_array.*)))
|
||||
PROVIDE (__fini_array_end = .);
|
||||
} : data
|
||||
|
||||
.ctors ALIGN(4) :
|
||||
{
|
||||
KEEP (*crtbegin.o(.ctors)) /* MUST be first -- GCC requires it */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
} : data
|
||||
|
||||
.dtors ALIGN(4) :
|
||||
{
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
} : data
|
||||
|
||||
__bss_start__ = .;
|
||||
.bss ALIGN(4) :
|
||||
{
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(.gnu.linkonce.b*)
|
||||
*(COMMON)
|
||||
. = ALIGN(4);
|
||||
} : data
|
||||
__bss_end__ = .;
|
||||
|
||||
__end__ = ABSOLUTE(.) ;
|
||||
|
||||
/* ==================
|
||||
==== Metadata ====
|
||||
================== */
|
||||
|
||||
/* Discard sections that difficult post-processing */
|
||||
/DISCARD/ : { *(.group .comment .note) }
|
||||
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
}
|
||||
8
dkarm-eabi/crtls/3dsx.specs
Normal file
8
dkarm-eabi/crtls/3dsx.specs
Normal file
@@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
%(old_link) -T 3dsx.ld%s -d --emit-relocs --use-blx
|
||||
|
||||
*startfile:
|
||||
3dsx_crt0%O%s crti%O%s crtbegin%O%s
|
||||
|
||||
73
dkarm-eabi/crtls/3dsx_crt0.s
Normal file
73
dkarm-eabi/crtls/3dsx_crt0.s
Normal file
@@ -0,0 +1,73 @@
|
||||
@---------------------------------------------------------------------------------
|
||||
@ 3DS processor selection
|
||||
@---------------------------------------------------------------------------------
|
||||
.cpu mpcore
|
||||
@---------------------------------------------------------------------------------
|
||||
|
||||
@---------------------------------------------------------------------------------
|
||||
.section ".crt0"
|
||||
.global _start, __service_ptr, __apt_appid, __heap_size, __linear_heap_size, __system_arglist, __system_runflags
|
||||
@---------------------------------------------------------------------------------
|
||||
.align 2
|
||||
.arm
|
||||
@---------------------------------------------------------------------------------
|
||||
_start:
|
||||
@---------------------------------------------------------------------------------
|
||||
b startup
|
||||
.ascii "_prm"
|
||||
__service_ptr:
|
||||
.word 0 @ Pointer to service handle override list -- if non-NULL it is assumed that we have been launched from a homebrew launcher
|
||||
__apt_appid:
|
||||
.word 0x300 @ Program APPID
|
||||
__heap_size:
|
||||
.word 24*1024*1024 @ Default heap size (24 MiB)
|
||||
__linear_heap_size:
|
||||
.word 32*1024*1024 @ Default linear heap size (32 MiB)
|
||||
__system_arglist:
|
||||
.word 0 @ Pointer to argument list (argc (u32) followed by that many NULL terminated strings)
|
||||
__system_runflags:
|
||||
.word 0 @ Flags to signal runtime restrictions to ctrulib
|
||||
startup:
|
||||
@ Save return address
|
||||
mov r4, lr
|
||||
|
||||
@ Clear the BSS section
|
||||
ldr r0, =__bss_start__
|
||||
ldr r1, =__bss_end__
|
||||
sub r1, r1, r0
|
||||
bl ClearMem
|
||||
|
||||
@ System initialization
|
||||
mov r0, r4
|
||||
bl initSystem
|
||||
|
||||
@ Set up argc/argv arguments for main()
|
||||
ldr r0, =__system_argc
|
||||
ldr r1, =__system_argv
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r1]
|
||||
|
||||
@ Jump to user code
|
||||
ldr r3, =main
|
||||
ldr lr, =__ctru_exit
|
||||
bx r3
|
||||
|
||||
@---------------------------------------------------------------------------------
|
||||
@ Clear memory to 0x00 if length != 0
|
||||
@ r0 = Start Address
|
||||
@ r1 = Length
|
||||
@---------------------------------------------------------------------------------
|
||||
ClearMem:
|
||||
@---------------------------------------------------------------------------------
|
||||
mov r2, #3 @ Round down to nearest word boundary
|
||||
add r1, r1, r2 @ Shouldn't be needed
|
||||
bics r1, r1, r2 @ Clear 2 LSB (and set Z)
|
||||
bxeq lr @ Quit if copy size is 0
|
||||
|
||||
mov r2, #0
|
||||
ClrLoop:
|
||||
stmia r0!, {r2}
|
||||
subs r1, r1, #4
|
||||
bne ClrLoop
|
||||
|
||||
bx lr
|
||||
@@ -1,159 +0,0 @@
|
||||
diff -Nbaur gcc-4.8.2/gcc/config/arm/t-arm-elf gcc-4.8.2-arm/gcc/config/arm/t-arm-elf
|
||||
--- gcc-4.8.2/gcc/config/arm/t-arm-elf 2013-01-10 20:38:27.000000000 +0000
|
||||
+++ gcc-4.8.2-arm/gcc/config/arm/t-arm-elf 2014-02-16 19:36:15.000000000 +0000
|
||||
@@ -25,22 +25,44 @@
|
||||
#MULTILIB_DIRNAMES += fa526 fa626 fa606te fa626te fmp626 fa726te
|
||||
#MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=fa526 *mthumb*/*mcpu=fa626
|
||||
|
||||
-#MULTILIB_OPTIONS += march=armv7
|
||||
-#MULTILIB_DIRNAMES += thumb2
|
||||
-#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
|
||||
-#MULTILIB_MATCHES += march?armv7=march?armv7-a
|
||||
-#MULTILIB_MATCHES += march?armv7=march?armv7-r
|
||||
-#MULTILIB_MATCHES += march?armv7=march?armv7-m
|
||||
-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
|
||||
-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
|
||||
-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
|
||||
+#mfloat-abi=hard|mfpu=fpv4-sp-d16
|
||||
+
|
||||
+MULTILIB_OPTIONS += march=armv7/march=armv6-m/mcpu=cortex-m4
|
||||
+MULTILIB_DIRNAMES += thumb2 armv6-m cortex-m4
|
||||
+MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7*
|
||||
+MULTILIB_EXCEPTIONS += march=armv6-m* marm/*march=armv6-m*
|
||||
+MULTILIB_EXCEPTIONS += mcpu=cortex-m4* marm/*mcpu=cortex-m4*
|
||||
+MULTILIB_EXCEPTIONS += mcpu=cortex-m4* mthumb/mcpu=cortex-m4
|
||||
+MULTILIB_EXCEPTIONS += mcpu=cortex-m4* mthumb/mcpu=cortex-m4/mbig-endian
|
||||
+MULTILIB_MATCHES += march?armv7=march?armv7-a
|
||||
+MULTILIB_MATCHES += march?armv7=march?armv7-r
|
||||
+MULTILIB_MATCHES += march?armv7=march?armv7-m
|
||||
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
|
||||
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
|
||||
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
|
||||
+MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m0
|
||||
+MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m1
|
||||
+
|
||||
+MULTILIB_OPTIONS += mfloat-abi=hard mfpu=fpv4-sp-d16
|
||||
+MULTILIB_DIRNAMES += float-abi-hard fpuv4-sp-d16
|
||||
+MULTILIB_EXCEPTIONS += mfloat* marm/mfloat*
|
||||
+MULTILIB_EXCEPTIONS += mfloat* mthumb/mfloat*
|
||||
+MULTILIB_EXCEPTIONS += mfloat* mthumb*march=armv6-m*mfloat*
|
||||
+MULTILIB_EXCEPTIONS += mfloat* mthumb*march=armv7*mfloat*
|
||||
+MULTILIB_EXCEPTIONS += mfloat* mthumb/mcpu=cortex-m4/mfloat-abi=hard
|
||||
+MULTILIB_EXCEPTIONS += mfloat* mthumb/mcpu=cortex-m4/mfloat-abi=hard/mbig-endian
|
||||
+MULTILIB_EXCEPTIONS += mfpu* mthumb*march=armv6-m*mfpu*
|
||||
+MULTILIB_EXCEPTIONS += mfpu* mthumb*march=armv7*mfpu*
|
||||
+MULTILIB_EXCEPTIONS += mfpu* mthumb/mcpu=cortex-m4/mfpu*
|
||||
+MULTILIB_EXCEPTIONS += mfpu* mthumb/mfpu*
|
||||
+MULTILIB_EXCEPTIONS += mfpu* marm/mfpu*
|
||||
|
||||
# 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
|
||||
# (mcrr etc).
|
||||
-MULTILIB_OPTIONS += mfloat-abi=hard
|
||||
-MULTILIB_DIRNAMES += fpu
|
||||
-MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
|
||||
+#MULTILIB_OPTIONS += mfloat-abi=hard
|
||||
+#MULTILIB_DIRNAMES += fpu
|
||||
+#MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
|
||||
#MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard*
|
||||
#MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard*
|
||||
|
||||
@@ -48,9 +70,9 @@
|
||||
# MULTILIB_DIRNAMES += ep9312
|
||||
# MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312*
|
||||
#
|
||||
-# MULTILIB_OPTIONS += mlittle-endian/mbig-endian
|
||||
-# MULTILIB_DIRNAMES += le be
|
||||
-# MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle
|
||||
+MULTILIB_OPTIONS += mlittle-endian/mbig-endian
|
||||
+MULTILIB_DIRNAMES += le be
|
||||
+MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle
|
||||
#
|
||||
# MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=soft
|
||||
# MULTILIB_DIRNAMES += fpu soft
|
||||
diff -Nbaur gcc-4.8.2/gcc/config/arm/unknown-elf.h gcc-4.8.2-arm/gcc/config/arm/unknown-elf.h
|
||||
--- gcc-4.8.2/gcc/config/arm/unknown-elf.h 2013-01-10 20:38:27.000000000 +0000
|
||||
+++ gcc-4.8.2-arm/gcc/config/arm/unknown-elf.h 2014-02-16 19:36:15.000000000 +0000
|
||||
@@ -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.8.2/gcc/gcc.c gcc-4.8.2-arm/gcc/gcc.c
|
||||
--- gcc-4.8.2/gcc/gcc.c 2013-05-17 13:24:26.000000000 +0100
|
||||
+++ gcc-4.8.2-arm/gcc/gcc.c 2014-02-16 19:36:15.000000000 +0000
|
||||
@@ -599,6 +599,11 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#ifndef LIBGLOSS_SPEC
|
||||
+# define LIBGLOSS_SPEC "-lsysbase"
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
/* config.h can define STARTFILE_SPEC to override the default crt0 files. */
|
||||
#ifndef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC \
|
||||
@@ -785,6 +790,7 @@
|
||||
static const char *mflib_spec = MFLIB_SPEC;
|
||||
static const char *link_gomp_spec = "";
|
||||
static const char *libgcc_spec = LIBGCC_SPEC;
|
||||
+static const char *libgloss_spec = LIBGLOSS_SPEC;
|
||||
static const char *endfile_spec = ENDFILE_SPEC;
|
||||
static const char *startfile_spec = STARTFILE_SPEC;
|
||||
static const char *linker_name_spec = LINKER_NAME;
|
||||
@@ -1274,6 +1280,7 @@
|
||||
INIT_STATIC_SPEC ("mflib", &mflib_spec),
|
||||
INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec),
|
||||
INIT_STATIC_SPEC ("libgcc", &libgcc_spec),
|
||||
+ INIT_STATIC_SPEC ("libgloss", &libgloss_spec),
|
||||
INIT_STATIC_SPEC ("startfile", &startfile_spec),
|
||||
INIT_STATIC_SPEC ("cross_compile", &cross_compile),
|
||||
INIT_STATIC_SPEC ("version", &compiler_version),
|
||||
diff -Nbaur gcc-4.8.2/libcpp/Makefile.in gcc-4.8.2-arm/libcpp/Makefile.in
|
||||
--- gcc-4.8.2/libcpp/Makefile.in 2013-10-16 08:27:58.000000000 +0100
|
||||
+++ gcc-4.8.2-arm/libcpp/Makefile.in 2014-02-16 19:36:15.000000000 +0000
|
||||
@@ -207,8 +207,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
|
||||
# not atomically write the dependency output file.
|
||||
-COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Tpo
|
||||
-POSTCOMPILE = @mv $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
+COMPILE = $(COMPILE.base) -o $@
|
||||
else
|
||||
COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \
|
||||
$(depcomp) $(COMPILE.base)
|
||||
diff -Nbaur gcc-4.8.2/libgcc/config/arm/t-bpabi gcc-4.8.2-arm/libgcc/config/arm/t-bpabi
|
||||
--- gcc-4.8.2/libgcc/config/arm/t-bpabi 2012-08-17 16:06:06.000000000 +0100
|
||||
+++ gcc-4.8.2-arm/libgcc/config/arm/t-bpabi 2014-02-16 19:36:15.000000000 +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.8.2/libgcc/crtstuff.c gcc-4.8.2-arm/libgcc/crtstuff.c
|
||||
--- gcc-4.8.2/libgcc/crtstuff.c 2013-02-04 19:06:20.000000000 +0000
|
||||
+++ gcc-4.8.2-arm/libgcc/crtstuff.c 2014-02-16 19:36:15.000000000 +0000
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/* Target machine header files require this define. */
|
||||
#define IN_LIBGCC2
|
||||
-
|
||||
+#define USED_FOR_TARGET
|
||||
/* 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.8.2/libgcc/Makefile.in gcc-4.8.2-arm/libgcc/Makefile.in
|
||||
--- gcc-4.8.2/libgcc/Makefile.in 2013-02-04 19:06:20.000000000 +0000
|
||||
+++ gcc-4.8.2-arm/libgcc/Makefile.in 2014-02-16 19:36:15.000000000 +0000
|
||||
@@ -813,7 +813,7 @@
|
||||
# libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and
|
||||
# LIB2ADDEHSHARED matter. (Usually all three are identical.)
|
||||
|
||||
-c_flags := -fexceptions
|
||||
+c_flags := -fno-exceptions
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
|
||||
137
dkarm-eabi/patches/gcc-4.9.2.patch
Normal file
137
dkarm-eabi/patches/gcc-4.9.2.patch
Normal file
@@ -0,0 +1,137 @@
|
||||
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 @@
|
||||
# along with GCC; see the file COPYING3. If not see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
|
||||
-MULTILIB_OPTIONS = marm/mthumb
|
||||
-MULTILIB_DIRNAMES = arm thumb
|
||||
+MULTILIB_OPTIONS = mthumb march=armv6k mfloat-abi=hard
|
||||
+MULTILIB_DIRNAMES = thumb armv6k fpu
|
||||
MULTILIB_EXCEPTIONS =
|
||||
MULTILIB_MATCHES =
|
||||
+
|
||||
+MULTILIB_REQUIRED = mthumb march=armv6k/mfloat-abi=hard
|
||||
+
|
||||
+
|
||||
+MULTILIB_MATCHES += march?armv6k=mtune?mpcore
|
||||
+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
|
||||
@@ -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
|
||||
# (mcrr etc).
|
||||
-MULTILIB_OPTIONS += mfloat-abi=hard
|
||||
-MULTILIB_DIRNAMES += fpu
|
||||
-MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
|
||||
+#MULTILIB_OPTIONS += mfloat-abi=hard
|
||||
+#MULTILIB_DIRNAMES += fpu
|
||||
+#MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
|
||||
#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
|
||||
@@ -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 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#ifndef LIBGLOSS_SPEC
|
||||
+# define LIBGLOSS_SPEC "-lsysbase"
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
/* config.h can define STARTFILE_SPEC to override the default crt0 files. */
|
||||
#ifndef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC \
|
||||
@@ -813,6 +818,7 @@
|
||||
static const char *lib_spec = LIB_SPEC;
|
||||
static const char *link_gomp_spec = "";
|
||||
static const char *libgcc_spec = LIBGCC_SPEC;
|
||||
+static const char *libgloss_spec = LIBGLOSS_SPEC;
|
||||
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 @@
|
||||
INIT_STATIC_SPEC ("lib", &lib_spec),
|
||||
INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec),
|
||||
INIT_STATIC_SPEC ("libgcc", &libgcc_spec),
|
||||
+ INIT_STATIC_SPEC ("libgloss", &libgloss_spec),
|
||||
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 @@
|
||||
# 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.
|
||||
-COMPILE = $(COMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(*F).TPo
|
||||
-POSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(*F).TPo $(@D)/$(DEPDIR)/$(*F).Po
|
||||
+COMPILE = $(COMPILE.base)
|
||||
+POSTCOMPILE =
|
||||
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
|
||||
@@ -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
|
||||
# not atomically write the dependency output file.
|
||||
-COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Tpo
|
||||
-POSTCOMPILE = @mv $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
+COMPILE = $(COMPILE.base) -o $@
|
||||
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
|
||||
@@ -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
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/* Target machine header files require this define. */
|
||||
#define IN_LIBGCC2
|
||||
-
|
||||
+#define USED_FOR_TARGET
|
||||
/* 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 @@
|
||||
# libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and
|
||||
# LIB2ADDEHSHARED matter. (Usually all three are identical.)
|
||||
|
||||
-c_flags := -fexceptions
|
||||
+c_flags := -fno-exceptions
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
32
dkarm-eabi/patches/gdb-7.8.2.patch
Normal file
32
dkarm-eabi/patches/gdb-7.8.2.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
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 @@
|
||||
# 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.
|
||||
-@GMAKE_TRUE@override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \
|
||||
-@GMAKE_TRUE@ -MF $(DEPDIR)/$(basename $(@F)).Tpo
|
||||
-@GMAKE_TRUE@override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \
|
||||
-@GMAKE_TRUE@ $(DEPDIR)/$(basename $(@F)).Po
|
||||
+@GMAKE_TRUE@override COMPILE.post = -c -o $@
|
||||
+@GMAKE_TRUE@override POSTCOMPILE =
|
||||
@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 @@
|
||||
# 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.
|
||||
-@GMAKE_TRUE@override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \
|
||||
-@GMAKE_TRUE@ -MF $(DEPDIR)/$(basename $(@F)).Tpo
|
||||
-@GMAKE_TRUE@override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \
|
||||
-@GMAKE_TRUE@ $(DEPDIR)/$(basename $(@F)).Po
|
||||
+@GMAKE_TRUE@override COMPILE.post = -c -o $@
|
||||
+@GMAKE_TRUE@override POSTCOMPILE =
|
||||
@GMAKE_TRUE@else
|
||||
@GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \
|
||||
@GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC)
|
||||
File diff suppressed because it is too large
Load Diff
7751
dkarm-eabi/patches/newlib-2.2.0.patch
Normal file
7751
dkarm-eabi/patches/newlib-2.2.0.patch
Normal file
File diff suppressed because it is too large
Load Diff
41
dkarm-eabi/rules/3ds_rules
Normal file
41
dkarm-eabi/rules/3ds_rules
Normal file
@@ -0,0 +1,41 @@
|
||||
ifeq ($(strip $(DEVKITPRO)),)
|
||||
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitPro)
|
||||
endif
|
||||
|
||||
include $(DEVKITARM)/base_rules
|
||||
|
||||
PORTLIBS := $(PORTLIBS_PATH)/armv6k $(PORTLIBS_PATH)/3ds
|
||||
|
||||
CTRULIB := $(DEVKITPRO)/libctru
|
||||
|
||||
ifeq ($(strip $(APP_TITLE)),)
|
||||
APP_TITLE := $(notdir $(OUTPUT))
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(APP_DESCRIPTION)),)
|
||||
APP_DESCRIPTION := Built with devkitARM & libctru
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(APP_AUTHOR)),)
|
||||
APP_AUTHOR := Unspecified Author
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(APP_ICON)),)
|
||||
APP_ICON := $(CTRULIB)/default_icon.png
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.smdh: $(APP_ICON) $(MAKEFILE_LIST)
|
||||
@smdhtool --create "$(APP_TITLE)" "$(APP_DESCRIPTION)" "$(APP_AUTHOR)" $(APP_ICON) $@
|
||||
@echo built ... $(notdir $@)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.3dsx: %.elf
|
||||
@3dsxtool $< $@ $(_3DSXFLAGS)
|
||||
@echo built ... $(notdir $@)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.elf:
|
||||
@echo linking $(notdir $@)
|
||||
@$(LD) $(LDFLAGS) $(OFILES) $(LIBPATHS) $(LIBS) -o $@
|
||||
@$(NM) -CSn $@ > $(notdir $*.lst)
|
||||
@@ -3,8 +3,7 @@ include $(DEVKITARM)/base_tools
|
||||
#---------------------------------------------------------------------------------
|
||||
# add portlibs path
|
||||
#---------------------------------------------------------------------------------
|
||||
export PORTLIBS := $(DEVKITPRO)/portlibs/arm
|
||||
export PATH := $(PORTLIBS)/bin:$(PATH)
|
||||
export PORTLIBS_PATH := $(DEVKITPRO)/portlibs
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
@@ -18,7 +17,7 @@ export PATH := $(PORTLIBS)/bin:$(PATH)
|
||||
%.arm.o: %.arm.cpp
|
||||
@echo $(notdir $<)
|
||||
$(CXX) -MMD -MP -MF $(DEPSDIR)/$*.arm.d $(CXXFLAGS) -marm -c $< -o $@ $(ERROR_FILTER)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.arm.o: %.arm.c
|
||||
@echo $(notdir $<)
|
||||
@@ -33,7 +32,7 @@ export PATH := $(PORTLIBS)/bin:$(PATH)
|
||||
%.thumb.o: %.thumb.cpp
|
||||
@echo $(notdir $<)
|
||||
$(CXX) -MMD -MP -MF $(DEPSDIR)/$*.thumb.d $(CXXFLAGS) -mthumb -c $< -o $@ $(ERROR_FILTER)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.thumb.o: %.thumb.c
|
||||
@echo $(notdir $<)
|
||||
@@ -48,7 +47,7 @@ export PATH := $(PORTLIBS)/bin:$(PATH)
|
||||
%.iwram.o: %.iwram.cpp
|
||||
@echo $(notdir $<)
|
||||
$(CXX) -MMD -MP -MF $(DEPSDIR)/$*.iwram.d $(CXXFLAGS) -marm -mlong-calls -c $< -o $@ $(ERROR_FILTER)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.iwram.o: %.iwram.c
|
||||
@echo $(notdir $<)
|
||||
@@ -63,7 +62,7 @@ export PATH := $(PORTLIBS)/bin:$(PATH)
|
||||
%.itcm.o: %.itcm.cpp
|
||||
@echo $(notdir $<)
|
||||
$(CXX) -MMD -MP -MF $(DEPSDIR)/$*.itcm.d $(CXXFLAGS) -marm -mlong-calls -c $< -o $@ $(ERROR_FILTER)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.itcm.o: %.itcm.c
|
||||
@echo $(notdir $<)
|
||||
@@ -79,7 +78,7 @@ export PATH := $(PORTLIBS)/bin:$(PATH)
|
||||
%.o: %.cpp
|
||||
@echo $(notdir $<)
|
||||
$(CXX) -MMD -MP -MF $(DEPSDIR)/$*.d $(CXXFLAGS) -c $< -o $@ $(ERROR_FILTER)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.o: %.c
|
||||
@echo $(notdir $<)
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
#---------------------------------------------------------------------------------
|
||||
# change shell on Snow Leopard
|
||||
# make sure we have bash on OSX
|
||||
#---------------------------------------------------------------------------------
|
||||
UNAME_S := $(shell uname -s)
|
||||
UNAME_R := $(shell uname -r)
|
||||
|
||||
ifneq (,$(findstring Darwin,$(UNAME_S)))
|
||||
ifneq (,$(findstring 10.8.0,$(UNAME_R)))
|
||||
export SHELL=/bin/bash
|
||||
endif
|
||||
export SHELL=/bin/bash
|
||||
endif
|
||||
#---------------------------------------------------------------------------------
|
||||
# path to tools
|
||||
|
||||
@@ -4,7 +4,9 @@ endif
|
||||
|
||||
include $(DEVKITARM)/base_rules
|
||||
|
||||
LIBNDS := $(DEVKITPRO)/libnds
|
||||
PORTLIBS := $(PORTLIBS_PATH)/nds $(PORTLIBS_PATH)/armv5te
|
||||
|
||||
LIBNDS := $(DEVKITPRO)/libnds
|
||||
|
||||
ifeq ($(strip $(GAME_TITLE)),)
|
||||
GAME_TITLE := $(notdir $(OUTPUT))
|
||||
@@ -40,7 +42,7 @@ endif
|
||||
%.arm9: %.elf
|
||||
@$(OBJCOPY) -O binary $< $@
|
||||
@echo built ... $(notdir $@)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
%.arm7: %.elf
|
||||
@$(OBJCOPY) -O binary $< $@
|
||||
|
||||
@@ -4,6 +4,8 @@ endif
|
||||
|
||||
include $(DEVKITARM)/base_rules
|
||||
|
||||
PORTLIBS := $(PORTLIBS_PATH)/gba $(PORTLIBS_PATH)/armv4
|
||||
|
||||
LIBGBA := $(DEVKITPRO)/libgba
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
-include $(DEVKITARM)/base_rules
|
||||
|
||||
PORTLIBS := $(PORTLIBS_PATH)/gp32 $(PORTLIBS_PATH)/armv4
|
||||
|
||||
LIBMIRKO := $(DEVKITPRO)/libmirko
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
@@ -21,6 +21,7 @@ $MAKE CRT=gp32_gpsdk
|
||||
$MAKE CRT=ds_arm7
|
||||
$MAKE CRT=ds_arm9
|
||||
$MAKE CRT=ds_cart
|
||||
$target-gcc -march=armv6k -mfloat-abi=hard -c 3dsx_crt0.s -o armv6k/fpu/3dsx_crt0.o
|
||||
|
||||
cd $BUILDDIR/libgba-$LIBGBA_VER
|
||||
$MAKE || { echo "error building libgba"; exit 1; }
|
||||
@@ -53,3 +54,8 @@ $MAKE install || { echo "error installing libmirko"; exit 1; }
|
||||
cd $BUILDDIR/libfilesystem-$FILESYSTEM_VER
|
||||
$MAKE || { echo "error building libfilesystem"; exit 1; }
|
||||
$MAKE install || { echo "error installing libfilesystem"; exit 1; }
|
||||
|
||||
cd $BUILDDIR/libctru-$LIBCTRU_VER
|
||||
$MAKE || { echo "error building libctru"; exit 1; }
|
||||
$MAKE install || { echo "error installing libctru"; exit 1; }
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ then
|
||||
--enable-poison-system-directories \
|
||||
--enable-interwork --enable-multilib \
|
||||
--disable-dependency-tracking \
|
||||
--disable-threads --disable-win32-registry --disable-nls --disable-debug\
|
||||
--enable-threads --disable-win32-registry --disable-nls --disable-debug\
|
||||
--disable-libmudflap --disable-libssp --disable-libgomp \
|
||||
--disable-libstdcxx-pch \
|
||||
--target=$target \
|
||||
@@ -54,7 +54,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 42" \
|
||||
--with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 44" \
|
||||
$CROSS_PARAMS \
|
||||
|| { echo "Error configuring gcc"; exit 1; }
|
||||
touch configured-gcc
|
||||
@@ -84,10 +84,9 @@ cd $target/newlib
|
||||
|
||||
if [ ! -f configured-newlib ]
|
||||
then
|
||||
CFLAGS_FOR_TARGET="-DREENTRANT_SYSCALLS_PROVIDED -D__DEFAULT_UTF8__ -O2" ../../newlib-$NEWLIB_VER/configure \
|
||||
../../newlib-$NEWLIB_VER/configure \
|
||||
--disable-newlib-supplied-syscalls \
|
||||
--enable-newlib-mb \
|
||||
--enable-newlib-io-long-long \
|
||||
--target=$target \
|
||||
--prefix=$prefix \
|
||||
|| { echo "Error configuring newlib"; exit 1; }
|
||||
|
||||
4
dkarm-eabi/scripts/build-tools.sh
Normal file → Executable file
4
dkarm-eabi/scripts/build-tools.sh
Normal file → Executable file
@@ -10,11 +10,11 @@ do
|
||||
touch configured
|
||||
fi
|
||||
if [ ! -f built ]; then
|
||||
$MAKE || { echo "error building $archive"; exit 1; }
|
||||
$MAKE || { echo "error building $dir"; exit 1; }
|
||||
touch built
|
||||
fi
|
||||
if [ ! -f installed ]; then
|
||||
$MAKE install || { echo "error installing $archive"; exit 1; }
|
||||
$MAKE install || { echo "error installing $dir"; exit 1; }
|
||||
touch installed
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -30,10 +30,10 @@ done
|
||||
|
||||
case "$VERSION" in
|
||||
"1" )
|
||||
GCC_VER=4.8.2
|
||||
BINUTILS_VER=2.24
|
||||
NEWLIB_VER=2.1.0
|
||||
GDB_VER=7.7
|
||||
GCC_VER=4.9.2
|
||||
BINUTILS_VER=2.25
|
||||
NEWLIB_VER=2.2.0
|
||||
GDB_VER=7.8.2
|
||||
basedir='dkarm-eabi'
|
||||
package=devkitARM
|
||||
target=arm-none-eabi
|
||||
|
||||
Reference in New Issue
Block a user