summaryrefslogtreecommitdiff
path: root/m68k-unknown-amigaos
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2010-12-24 12:43:10 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2010-12-24 12:43:10 +0000
commitd4570b422e46cc8efbf9c51d112b9afb69b993df (patch)
tree64bec97fa29cb062a18ac94c5eac3581339d9bfd /m68k-unknown-amigaos
parentdd3d652af7ca6ff66409e9c2510fbe6810d42c13 (diff)
downloadtoolchains-d4570b422e46cc8efbf9c51d112b9afb69b993df.tar.gz
toolchains-d4570b422e46cc8efbf9c51d112b9afb69b993df.tar.bz2
A motley selection of changes, which ultimately result in a toolchain that produces binaries:
* Makefile: Change to a two-stage build and build+install clib2 between stages Other, associated changes to reflect additional patches etc * recipes/files/gcc: Contents moved to recipes/files/gcc/gcc Various changes to the target configuration to reflect use of clib2 * recipes/files/ndk: Additional header files for the NDK to permit clib2 to build * recipes/files/clib2: Add sys/wait.h to clib2, and stub out wait(), vfork(), and pipe() for the benefit of libiberty * recipes/patches/gcc/(config.host.p,config.gcc.p): Renamed to gcc.\1 * recipes/patches/gcc/libgcc.config.host.p: Make libgcc aware of our target triple * recipes/patches/binutils/gas.app.c.p: Backport a 5-year old fix that prevents the GAS lexer dropping input on the floor * recipes/patches/ndk/ndk.inline.intuition.h.p: Hack around inline function needing access to a variable from the place it was inlined * recipes/patches/clib2/clib2.modern_gcc.p: Fix up clib2 to compile with modern GCC * recipes/patches/clib2/clib2.include.unistd.h.p: Export definitions of vfork() and pipe() * recipes/patches/clib2/clib2.include.fcntl.h.p: Define FD_CLOEXEC -- the clib2 fcntl() implementation will ignore F_GETFD/F_SETFD anyway * recipes/patches/clib2/clib2.GNUmakefile.68k.p: Reflect our use of a full target triple in the toolchain settings Add stubs.c to build Do not attempt to build resident/resident32 library variants svn path=/toolchains/; revision=11120
Diffstat (limited to 'm68k-unknown-amigaos')
-rw-r--r--m68k-unknown-amigaos/Makefile142
-rw-r--r--m68k-unknown-amigaos/recipes/files/clib2/include/sys/wait.h18
-rw-r--r--m68k-unknown-amigaos/recipes/files/clib2/stubs.c27
-rw-r--r--m68k-unknown-amigaos/recipes/files/gcc/gcc/amigacollect2.c (renamed from m68k-unknown-amigaos/recipes/files/gcc/amigacollect2.c)0
-rw-r--r--m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/amigaos-protos.h (renamed from m68k-unknown-amigaos/recipes/files/gcc/config/m68k/amigaos-protos.h)2
-rw-r--r--m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/amigaos.c (renamed from m68k-unknown-amigaos/recipes/files/gcc/config/m68k/amigaos.c)0
-rw-r--r--m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/amigaos.h (renamed from m68k-unknown-amigaos/recipes/files/gcc/config/m68k/amigaos.h)100
-rw-r--r--m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/host-amigaos.c (renamed from m68k-unknown-amigaos/recipes/files/gcc/config/m68k/host-amigaos.c)0
-rw-r--r--m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/t-amigaos (renamed from m68k-unknown-amigaos/recipes/files/gcc/config/m68k/t-amigaos)6
-rw-r--r--m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/x-amigaos (renamed from m68k-unknown-amigaos/recipes/files/gcc/config/m68k/x-amigaos)0
-rw-r--r--m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/xm-amigaos.h (renamed from m68k-unknown-amigaos/recipes/files/gcc/config/m68k/xm-amigaos.h)0
-rw-r--r--m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/mathieeedoubbas.h68
-rw-r--r--m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/mathieeedoubtrans.h88
-rw-r--r--m68k-unknown-amigaos/recipes/patches/binutils/gas.app.c.p13
-rw-r--r--m68k-unknown-amigaos/recipes/patches/clib2/clib2.GNUmakefile.68k.p38
-rw-r--r--m68k-unknown-amigaos/recipes/patches/clib2/clib2.include.fcntl.h.p17
-rw-r--r--m68k-unknown-amigaos/recipes/patches/clib2/clib2.include.unistd.p17
-rw-r--r--m68k-unknown-amigaos/recipes/patches/clib2/clib2.modern_gcc.p2779
-rw-r--r--m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.gcc.p (renamed from m68k-unknown-amigaos/recipes/patches/gcc/config.gcc.p)0
-rw-r--r--m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.host.p (renamed from m68k-unknown-amigaos/recipes/patches/gcc/config.host.p)0
-rw-r--r--m68k-unknown-amigaos/recipes/patches/gcc/libgcc.config.host.p11
-rw-r--r--m68k-unknown-amigaos/recipes/patches/ndk/ndk.inline.intuition.h.p18
22 files changed, 3262 insertions, 82 deletions
diff --git a/m68k-unknown-amigaos/Makefile b/m68k-unknown-amigaos/Makefile
index a5d1042..8458919 100644
--- a/m68k-unknown-amigaos/Makefile
+++ b/m68k-unknown-amigaos/Makefile
@@ -1,6 +1,6 @@
-UPSTREAM_VERSION := 4.5.1
-UPSTREAM_TARBALL := gcc-$(UPSTREAM_VERSION).tar.bz2
-UPSTREAM_URI := http://ftp.gnu.org/gnu/gcc/gcc-$(UPSTREAM_VERSION)/$(UPSTREAM_TARBALL)
+UPSTREAM_GCC_VERSION := 4.5.1
+UPSTREAM_GCC_TARBALL := gcc-$(UPSTREAM_GCC_VERSION).tar.bz2
+UPSTREAM_GCC_URI := http://ftp.gnu.org/gnu/gcc/gcc-$(UPSTREAM_GCC_VERSION)/$(UPSTREAM_GCC_TARBALL)
UPSTREAM_BINUTILS_VERSION := 2.14
# Not a tarball; so sue me
@@ -20,41 +20,92 @@ UPSTREAM_MPC_VERSION := 0.8.2
UPSTREAM_MPC_TARBALL := mpc-$(UPSTREAM_MPC_VERSION).tar.gz
UPSTREAM_MPC_URI := http://www.multiprecision.org/mpc/download/$(UPSTREAM_MPC_TARBALL)
+UPSTREAM_CLIB2_TARBALL := clib2
+UPSTREAM_CLIB2_URI := anonymous@clib2.cvs.sourceforge.net:/cvsroot/clib2
+
+UPSTREAM_NDK_TARBALL := ndk-3.9-includes.tar.bz2
+UPSTREAM_NDK_URI := http://www.zerohero.se/cross/files/m68k-amigaos/ndk-3.9-includes.tar.bz2
+
TOP := $(CURDIR)
RECIPES := $(TOP)/recipes
BUILDSTEPS := $(TOP)/build-steps
SRCDIR := $(TOP)/srcdir
+BINUTILS_SRCDIR := $(TOP)/binutils-srcdir
BUILDDIR := $(TOP)/builddir
PREFIX ?= /usr/local/netsurf/cross/amiga68k/
TARGET_NAME := m68k-unknown-amigaos
-.PHONY: all install
-all: $(BUILDSTEPS)/toolchain.d
+.PHONY: all
+all: $(BUILDSTEPS)/stage2.d
-install: $(BUILDSTEPS)/install.d
+###
+# Rules to build the full compiler
+###
-$(BUILDSTEPS)/install.d: $(BUILDSTEPS)/toolchain.d
- cd $(BUILDDIR)/binutils/target && make install
- cd $(BUILDDIR) && make install
+$(BUILDSTEPS)/stage2.d: $(BUILDSTEPS)/clib2.d
+ rm -fr $(BUILDDIR)
+ mkdir -p $(BUILDDIR)
+ cd $(BUILDDIR) && PATH="$(PREFIX)/bin:$(PATH)" $(SRCDIR)/configure --prefix=$(PREFIX) --target=$(TARGET_NAME) \
+ --with-cpu=m68040 --disable-threads --disable-nls --disable-c-mbchar \
+ --enable-languages=c --enable-checking=no --enable-c99 --with-cross-host \
+ --disable-multilib --without-x --enable-maintainer-mode --disable-shared
+ cd $(BUILDDIR) && PATH="$(PREFIX)/bin:$(PATH)" make all
+ cd $(BUILDDIR) && PATH="$(PREFIX)/bin:$(PATH)" make install
touch $@
-$(BUILDSTEPS)/toolchain.d: $(BUILDSTEPS)/make.d $(BUILDSTEPS)/binutils.d
+###
+# Rules to build and install Clib2
+###
+
+$(BUILDSTEPS)/clib2.d: $(BUILDSTEPS)/bootstrap-compiler.d $(BUILDSTEPS)/ndk.d $(UPSTREAM_CLIB2_TARBALL)
+ cp -r $(UPSTREAM_CLIB2_TARBALL) $(BUILDDIR)/clib2
+ for p in `ls $(RECIPES)/patches/clib2/*.p` ; do patch -d $(BUILDDIR)/clib2 -p0 <$$p ; done
+ for dir in `find $(RECIPES)/files/clib2/ -type d | grep -v '\.svn' | sed 's#$(RECIPES)/files/clib2##'` ; do mkdir -p $(BUILDDIR)/clib2$$dir ; done
+ for file in `find $(RECIPES)/files/clib2/ -type f | grep -v '\.svn' | sed 's#$(RECIPES)/files/clib2##'` ; do cp -p $(RECIPES)/files/clib2$$file $(BUILDDIR)/clib2$$file ; done
+ cd $(BUILDDIR)/clib2 && PATH="$(PREFIX)/bin:$(PATH)" make -f GNUmakefile.68k
+ cp -r $(BUILDDIR)/clib2/include $(PREFIX)/$(TARGET_NAME)
+ cp -r $(BUILDDIR)/clib2/lib $(PREFIX)/$(TARGET_NAME)
touch $@
-$(BUILDSTEPS)/make.d: $(BUILDSTEPS)/configure.d
- cd $(BUILDDIR) && PATH="$(BUILDDIR)/binutils/bootstrap/prefix/bin:$(PATH)" make all
+###
+# Rules to install the NDK
+###
+
+$(BUILDSTEPS)/ndk.d: $(UPSTREAM_NDK_TARBALL)
+ mkdir -p $(PREFIX)/$(TARGET_NAME)
+ tar -C $(PREFIX)/$(TARGET_NAME) --strip-components=2 -xjf $(UPSTREAM_NDK_TARBALL)
+ for p in `ls $(RECIPES)/patches/ndk/*.p` ; do patch -d $(PREFIX)/$(TARGET_NAME) -p0 <$$p ; done
+ for dir in `find $(RECIPES)/files/ndk/ -type d | grep -v '\.svn' | sed 's#$(RECIPES)/files/ndk##'` ; do mkdir -p $(PREFIX)/$(TARGET_NAME)$$dir ; done
+ for file in `find $(RECIPES)/files/ndk/ -type f | grep -v '\.svn' | sed 's#$(RECIPES)/files/ndk##'` ; do cp -p $(RECIPES)/files/ndk$$file $(PREFIX)/$(TARGET_NAME)$$file ; done
touch $@
-$(BUILDSTEPS)/configure.d: $(BUILDSTEPS)/srcdir-step3.d
- cd $(BUILDDIR) && PATH="$(BUILDDIR)/binutils/bootstrap/prefix/bin:$(PATH)" $(SRCDIR)/configure --prefix=$(PREFIX) --target=$(TARGET_NAME) \
+###
+# Rules to build and install the bootstrap compiler
+###
+
+$(BUILDSTEPS)/bootstrap-compiler.d: $(BUILDSTEPS)/srcdir-step3.d $(BUILDSTEPS)/binutils.d
+ cd $(BUILDDIR) && PATH="$(PREFIX)/bin:$(PATH)" $(SRCDIR)/configure --prefix=$(PREFIX) --target=$(TARGET_NAME) \
--with-cpu=m68040 --disable-threads --disable-nls --disable-c-mbchar \
--enable-languages=c --enable-checking=no --enable-c99 --with-cross-host \
- --enable-multilib --without-x --enable-maintainer-mode
+ --disable-multilib --without-x --enable-maintainer-mode --disable-shared \
+ --without-headers
+ cd $(BUILDDIR) && PATH="$(PREFIX)/bin:$(PATH)" make all-gcc
+ cd $(BUILDDIR) && PATH="$(PREFIX)/bin:$(PATH)" make install-gcc
+ touch $@
+
+###
+# Rules to create the GCC source tree
+###
+
+$(BUILDSTEPS)/srcdir-step3.d: $(BUILDSTEPS)/srcdir-step2.d
+ for p in `ls $(RECIPES)/patches/gcc/*.p` ; do patch -d $(SRCDIR) -p0 <$$p ; done
+ for dir in `find $(RECIPES)/files/gcc/ -type d | grep -v '\.svn' | sed 's#$(RECIPES)/files/gcc##'` ; do mkdir -p $(SRCDIR)$$dir ; done
+ for file in `find $(RECIPES)/files/gcc/ -type f | grep -v '\.svn' | sed 's#$(RECIPES)/files/gcc##'` ; do cp -p $(RECIPES)/files/gcc$$file $(SRCDIR)$$file ; done
touch $@
-$(BUILDSTEPS)/srcdir-step3.d: $(BUILDSTEPS)/srcdir-step2.d $(UPSTREAM_GMP_TARBALL) $(UPSTREAM_MPFR_TARBALL) $(UPSTREAM_MPC_TARBALL)
+$(BUILDSTEPS)/srcdir-step2.d: $(BUILDSTEPS)/srcdir-step1.d $(UPSTREAM_GMP_TARBALL) $(UPSTREAM_MPFR_TARBALL) $(UPSTREAM_MPC_TARBALL)
tar xjf $(UPSTREAM_GMP_TARBALL)
mv gmp-$(UPSTREAM_GMP_VERSION) $(SRCDIR)/gmp
tar xjf $(UPSTREAM_MPFR_TARBALL)
@@ -63,42 +114,39 @@ $(BUILDSTEPS)/srcdir-step3.d: $(BUILDSTEPS)/srcdir-step2.d $(UPSTREAM_GMP_TARBAL
mv mpc-$(UPSTREAM_MPC_VERSION) $(SRCDIR)/mpc
touch $@
-$(BUILDSTEPS)/srcdir-step2.d: $(BUILDSTEPS)/srcdir-step1.d
- for p in `ls $(RECIPES)/patches/gcc/*.p` ; do patch -d $(SRCDIR) -p0 <$$p ; done
- for dir in `find $(RECIPES)/files -type d | grep -v '\.svn' | sed 's#$(RECIPES)/files/##'` ; do mkdir -p $(SRCDIR)/$$dir ; done
- for file in `find $(RECIPES)/files -type f | grep -v '\.svn' | sed 's#$(RECIPES)/files/##'` ; do cp -p $(RECIPES)/files/$$file $(SRCDIR)/$$file ; done
- touch $@
-
-$(BUILDSTEPS)/srcdir-step1.d: $(BUILDSTEPS)/orig.gcc.d $(BUILDSTEPS)/bootstrap-binutils.d
- ln -s orig.gcc $(SRCDIR)
- touch $@
-
-$(BUILDSTEPS)/orig.gcc.d: $(BUILDSTEPS)/orig.gcc-$(UPSTREAM_TARBALL).d
- tar xjf orig.gcc-$(UPSTREAM_TARBALL)
- mv gcc-$(UPSTREAM_VERSION) orig.gcc
+$(BUILDSTEPS)/srcdir-step1.d: $(BUILDSTEPS)/$(UPSTREAM_GCC_TARBALL).d
+ tar xjf $(UPSTREAM_GCC_TARBALL)
+ mv gcc-$(UPSTREAM_GCC_VERSION) srcdir
touch $@
-$(BUILDSTEPS)/orig.gcc-$(UPSTREAM_TARBALL).d: $(BUILDSTEPS)/buildsteps.d orig.gcc-$(UPSTREAM_TARBALL)
+$(BUILDSTEPS)/$(UPSTREAM_GCC_TARBALL).d: $(BUILDSTEPS)/buildsteps.d $(UPSTREAM_GCC_TARBALL)
touch $@
-orig.gcc-$(UPSTREAM_TARBALL):
- wget -q -O $@ $(UPSTREAM_URI)
+###
+# Rules to build and install binutils
+###
# Ugh. Upstream binutils is not remotely 64-bit safe.
# Build a 32bit binary until this gets fixed
-$(BUILDSTEPS)/binutils.d: $(UPSTREAM_BINUTILS_TARBALL)
- mkdir -p $(BUILDDIR)/binutils/target
- cd $(BUILDDIR)/binutils/target && CFLAGS="-m32" LDFLAGS="-m32" $(TOP)/binutils-$(UPSTREAM_BINUTILS_VERSION)/configure --prefix=$(PREFIX) --target=$(TARGET_NAME)
- cd $(BUILDDIR)/binutils/target && make
+$(BUILDSTEPS)/binutils.d: $(BUILDSTEPS)/binutils-srcdir.d
+ mkdir -p $(BUILDDIR)/binutils
+ cd $(BUILDDIR)/binutils && CFLAGS="-m32" LDFLAGS="-m32" $(BINUTILS_SRCDIR)/configure --prefix=$(PREFIX) --target=$(TARGET_NAME) --disable-nls
+ cd $(BUILDDIR)/binutils && make
+ cd $(BUILDDIR)/binutils && make install
touch $@
-$(BUILDSTEPS)/bootstrap-binutils.d: $(UPSTREAM_BINUTILS_TARBALL)
- mkdir -p $(BUILDDIR)/binutils/bootstrap
- cd $(BUILDDIR)/binutils/bootstrap && CFLAGS="-m32" LDFLAGS="-m32" $(TOP)/binutils-$(UPSTREAM_BINUTILS_VERSION)/configure --prefix=$(BUILDDIR)/binutils/bootstrap/prefix --target=$(TARGET_NAME)
- cd $(BUILDDIR)/binutils/bootstrap && make
- cd $(BUILDDIR)/binutils/bootstrap && make install
+$(BUILDSTEPS)/binutils-srcdir.d: $(UPSTREAM_BINUTILS_TARBALL)
+ cp -r $(UPSTREAM_BINUTILS_TARBALL) $(BINUTILS_SRCDIR)
+ for p in `ls $(RECIPES)/patches/binutils/*.p` ; do patch -d $(BINUTILS_SRCDIR) -p0 <$$p ; done
touch $@
+###
+# Rules to fetch upstream sources
+###
+
+$(UPSTREAM_GCC_TARBALL):
+ wget -q -O $@ $(UPSTREAM_GCC_URI)
+
$(UPSTREAM_GMP_TARBALL):
wget -q -O $@ $(UPSTREAM_GMP_URI)
@@ -111,6 +159,18 @@ $(UPSTREAM_MPC_TARBALL):
$(UPSTREAM_BINUTILS_TARBALL):
svn co $(UPSTREAM_BINUTILS_URI) $@
+$(UPSTREAM_CLIB2_TARBALL):
+ cvs -Q -d:pserver:$(UPSTREAM_CLIB2_URI) login
+ cvs -z9 -d:pserver:$(UPSTREAM_CLIB2_URI) co library
+ mv library $@
+
+$(UPSTREAM_NDK_TARBALL):
+ wget -q -O $@ $(UPSTREAM_NDK_URI)
+
+###
+# Rule to create buildsteps dir
+###
+
$(BUILDSTEPS)/buildsteps.d:
mkdir -p $(BUILDSTEPS)
touch $@
diff --git a/m68k-unknown-amigaos/recipes/files/clib2/include/sys/wait.h b/m68k-unknown-amigaos/recipes/files/clib2/include/sys/wait.h
new file mode 100644
index 0000000..99844c4
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/files/clib2/include/sys/wait.h
@@ -0,0 +1,18 @@
+#ifndef _SYS_WAIT_H
+#define _SYS_WAIT_H
+
+#ifndef _SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern pid_t wait(int *status);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/m68k-unknown-amigaos/recipes/files/clib2/stubs.c b/m68k-unknown-amigaos/recipes/files/clib2/stubs.c
new file mode 100644
index 0000000..c857aed
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/files/clib2/stubs.c
@@ -0,0 +1,27 @@
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#include "stdlib_headers.h"
+
+pid_t wait(int *status)
+{
+ __set_errno(ECHILD);
+
+ return -1;
+}
+
+pid_t vfork(void)
+{
+ __set_errno(EAGAIN);
+
+ return -1;
+}
+
+int pipe(int pipefd[2])
+{
+ __set_errno(ENFILE);
+
+ return -1;
+}
+
diff --git a/m68k-unknown-amigaos/recipes/files/gcc/amigacollect2.c b/m68k-unknown-amigaos/recipes/files/gcc/gcc/amigacollect2.c
index 9df71a7..9df71a7 100644
--- a/m68k-unknown-amigaos/recipes/files/gcc/amigacollect2.c
+++ b/m68k-unknown-amigaos/recipes/files/gcc/gcc/amigacollect2.c
diff --git a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/amigaos-protos.h b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/amigaos-protos.h
index d192f03..f7f7e97 100644
--- a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/amigaos-protos.h
+++ b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/amigaos-protos.h
@@ -34,7 +34,7 @@ extern struct rtx_def* gen_stack_cleanup_call (rtx, rtx);
extern void amigaos_alternate_allocate_stack (rtx *);
#ifdef TREE_CODE
extern void amigaos_init_cumulative_args (CUMULATIVE_ARGS *, tree);
-//extern void amigaos_function_arg_advance (CUMULATIVE_ARGS *);
+/* extern void amigaos_function_arg_advance (CUMULATIVE_ARGS *); */
extern struct rtx_def *amigaos_function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree);
#endif
#endif
diff --git a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/amigaos.c b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/amigaos.c
index 3b1782c..3b1782c 100644
--- a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/amigaos.c
+++ b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/amigaos.c
diff --git a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/amigaos.h b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/amigaos.h
index 5d86e79..9ea6ec7 100644
--- a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/amigaos.h
+++ b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/amigaos.h
@@ -22,7 +22,7 @@ along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-//use the motorola syntax, other mode is broken.
+/* use the motorola syntax, other mode is broken. */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)")
@@ -30,9 +30,9 @@ Boston, MA 02111-1307, USA. */
#undef MOTOROLA
#define MOTOROLA 1
-//#define IRA_COVER_CLASSES
+/* #define IRA_COVER_CLASSES */
-// disable 80 bit and 128 bit floats, dont work in libgcc
+/* disable 80 bit and 128 bit floats, dont work in libgcc */
#undef LIBGCC2_HAS_XF_MODE
#define LIBGCC2_HAS_XF_MODE 0
@@ -58,8 +58,8 @@ Boston, MA 02111-1307, USA. */
On most systems they are not needed.
When they are needed, also define ALTERNATE_ALLOCATE_STACK (see m68k.md)
to perform the necessary actions. */
-//#undef TARGET_ALTERNATE_ALLOCATE_STACK
-//#define TARGET_ALTERNATE_ALLOCATE_STACK 0
+/* #undef TARGET_ALTERNATE_ALLOCATE_STACK
+#define TARGET_ALTERNATE_ALLOCATE_STACK 0 */
/* Specs, switches. */
@@ -94,7 +94,7 @@ Boston, MA 02111-1307, USA. */
/* Inform the program which CPU we compile for. */
-//#undef TARGET_CPU_CPP_BUILTINS
+/* #undef TARGET_CPU_CPP_BUILTINS */
/*
use --with-cpu=mc68040 etc.. instead on config. code was after #define TARGET_CPU_CPP_BUILTINS()
if (TARGET_68040_ONLY) \
@@ -133,23 +133,28 @@ Boston, MA 02111-1307, USA. */
Differentiate between libnix and ixemul. */
#define CPP_SPEC \
- "%{m68881:-D__HAVE_68881__} " \
+ "%{m68881:-D__HAVE_68881__}"
+/*
"%{noixemul:%{!ansi:%{!std=*:-Dlibnix}%{std=gnu*:-Dlibnix}} -D__libnix -D__libnix__} " \
"%{!noixemul:%{!ansi:%{!std=*:-Dixemul}%{std=gnu*:-Dixemul}} -D__ixemul -D__ixemul__}"
+*/
/* Translate '-resident' to '-fbaserel' (they differ in linking stage only).
Don't put function addresses in registers for PC-relative code. */
+/*
#define CC1_SPEC \
"%{resident:-fbaserel} " \
"%{resident32:-fbaserel32} " \
"%{msmall-code:-fno-function-cse}"
+*/
/* Various -m flags require special flags to the assembler. */
#undef ASM_SPEC
#define ASM_SPEC \
- "%(asm_cpu) %(asm_cpu_default) %{msmall-code:-sc}"
+ "%(asm_cpu) %(asm_cpu_default)"
+/* %{msmall-code:-sc}" */
#undef ASM_CPU_SPEC
#define ASM_CPU_SPEC \
@@ -168,12 +173,17 @@ Boston, MA 02111-1307, USA. */
commandline options. */
#define LINK_SPEC \
- "%{noixemul:-fl libnix} " \
+ "%{g:-amiga-debug-hunk} " \
+ "%(link_cpu)"
+
+/*
"%{resident*:-amiga-datadata-reloc} " \
"%{resident|fbaserel:-m amiga_bss -fl libb} " \
"%{resident32|fbaserel32:-m amiga_bss -fl libb32} " \
"%{g:-amiga-debug-hunk} " \
"%(link_cpu)"
+ "%{noixemul:-fl libnix} "
+*/
#define LINK_CPU_SPEC \
"%{m6802*|mc68020|m68030|m68040|m68060:-fl libm020} " \
@@ -184,6 +194,8 @@ Boston, MA 02111-1307, USA. */
32-bit versions, libnix, profiling or plain crt0.o. */
#define STARTFILE_SPEC \
+ "ncrt0.o%s"
+/*
"%{!noixemul:" \
"%{fbaserel:%{!resident:bcrt0.o%s}}" \
"%{resident:rcrt0.o%s}" \
@@ -194,10 +206,13 @@ Boston, MA 02111-1307, USA. */
"%{noixemul:" \
"%{resident:libnix/nrcrt0.o%s} " \
"%{!resident:%{fbaserel:libnix/nbcrt0.o%s}%{!fbaserel:libnix/ncrt0.o%s}}}"
+*/
+/*
#define ENDFILE_SPEC \
"%{noixemul:-lstubs}"
-
+*/
+
/* put return values in FPU build in FP0 Reg */
#undef FUNCTION_VALUE_REGNO_P
#define FUNCTION_VALUE_REGNO_P(N) \
@@ -218,11 +233,13 @@ Boston, MA 02111-1307, USA. */
example) calls like sprintf come from -lamiga rather than -lc. */
#define LIB_SPEC \
- "%{!noixemul:" \
+ "%{!nostdlib:-lc -lamiga -lm -lc}"
+/* "%{!noixemul:" \
"%{p|pg:-lc_p}" \
"%{!p:%{!pg:-lc -lamiga -lc}}}" \
"%{noixemul:" \
"-lnixmain -lnix -lamiga %{mstackcheck|mstackextend:-lstack}}"
+*/
/* This macro defines names of additional specifications to put in the specs
that can be used in various specifications like CC1_SPEC. Its definition
@@ -248,8 +265,8 @@ Boston, MA 02111-1307, USA. */
|| lookup_attribute ("stackext", \
TYPE_ATTRIBUTES (TREE_TYPE (current_function_decl))))
-///* Compile with stack checking. */
-//
+/* Compile with stack checking. */
+
#define MASK_STACKCHECK 0x20000000 /* 1 << 29 */
#define TARGET_STACKCHECK ((target_flags & MASK_STACKCHECK) \
&& !(target_flags & MASK_STACKEXTEND) \
@@ -350,15 +367,16 @@ while (0)
with an error code above the `error' or even `failure' level
(which is configurable with the FAILAT command)). */
-//+2004-06-24 Ulrich Weigand <uweigand@de.ibm.com>
-//+
-//+ * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
-//+ * system.h (DEFAULT_MAIN_RETURN): Poison.
-//+ * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
-//+
+/* +2004-06-24 Ulrich Weigand <uweigand@de.ibm.com>
++
++ * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
++ * system.h (DEFAULT_MAIN_RETURN): Poison.
++ * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
++
-//poison VAR
-//#define DEFAULT_MAIN_RETURN c_expand_return (integer_zero_node)
+poison VAR
+#define DEFAULT_MAIN_RETURN c_expand_return (integer_zero_node)
+*/
#undef WCHAR_TYPE
#define WCHAR_TYPE "unsigned int"
@@ -449,8 +467,8 @@ while (0)
/* Select and switch to a section for EXP. */
-//#undef TARGET_ASM_SELECT_SECTION
-//#define TARGET_ASM_SELECT_SECTION amigaos_select_section
+/* #undef TARGET_ASM_SELECT_SECTION
+#define TARGET_ASM_SELECT_SECTION amigaos_select_section */
/* Preserve A4 for baserel code if necessary. */
@@ -615,25 +633,27 @@ struct amigaos_args
#define ALTERNATE_RETURN(STREAM)
-//#define HAVE_restore_stack_nonlocal TARGET_STACKEXTEND
-//#define gen_restore_stack_nonlocal gen_stack_cleanup_call
+/*
+#define HAVE_restore_stack_nonlocal TARGET_STACKEXTEND
+#define gen_restore_stack_nonlocal gen_stack_cleanup_call
+
+#define HAVE_restore_stack_function TARGET_STACKEXTEND
+#define gen_restore_stack_function gen_stack_cleanup_call
-//#define HAVE_restore_stack_function TARGET_STACKEXTEND
-//#define gen_restore_stack_function gen_stack_cleanup_call
+#define HAVE_restore_stack_block TARGET_STACKEXTEND
+#define gen_restore_stack_block gen_stack_cleanup_call
-//#define HAVE_restore_stack_block TARGET_STACKEXTEND
-//#define gen_restore_stack_block gen_stack_cleanup_call
+#undef TARGET_ALTERNATE_ALLOCATE_STACK
+#define TARGET_ALTERNATE_ALLOCATE_STACK 1
-//#undef TARGET_ALTERNATE_ALLOCATE_STACK
-//#define TARGET_ALTERNATE_ALLOCATE_STACK 1
-//
-//#define ALTERNATE_ALLOCATE_STACK(OPERANDS) \
-//do \
-// { \
-// amigaos_alternate_allocate_stack (OPERANDS); \
-// DONE; \
-// } \
-//while (0)
+#define ALTERNATE_ALLOCATE_STACK(OPERANDS) \
+do \
+ { \
+ amigaos_alternate_allocate_stack (OPERANDS); \
+ DONE; \
+ } \
+while (0)
+*/
/* begin-GG-local: dynamic libraries */
@@ -648,7 +668,7 @@ extern void amigaos_postlink_hook (const char *);
We need a few special ones, like stripping after linking. */
#define DO_COLLECTING (do_collecting || amigaos_do_collecting())
-#define COLLECT2_POSTLINK_HOOK(OUTPUT_FILE) amigaos_postlink_hook(OUTPUT_FILE) //new
+#define COLLECT2_POSTLINK_HOOK(OUTPUT_FILE) amigaos_postlink_hook(OUTPUT_FILE) /* new */
/* This macro is called in collect2 for every GCC argument name.
ARG is a part of commandline (without '\0' at the end). */
diff --git a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/host-amigaos.c b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/host-amigaos.c
index 8c72d51..8c72d51 100644
--- a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/host-amigaos.c
+++ b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/host-amigaos.c
diff --git a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/t-amigaos b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/t-amigaos
index 12f5a57..3b2d16f 100644
--- a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/t-amigaos
+++ b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/t-amigaos
@@ -28,3 +28,9 @@ LIBGCC_MULTI = .; \
# $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
# -DA2IXDIR_PREFIX=\"$(prefix)/share/a2ixlibrary\" $< $(OUTPUT_OPTION)
### end-GG-local
+
+# Prevent fixincludes clobbering our limits.h
+LIMITS_H_TEST = true
+
+# Prevent installation of GCC's limits.h
+INSTALL_LIMITS_H = false
diff --git a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/x-amigaos b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/x-amigaos
index a8f60b8..a8f60b8 100644
--- a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/x-amigaos
+++ b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/x-amigaos
diff --git a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/xm-amigaos.h b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/xm-amigaos.h
index bb571ba..bb571ba 100644
--- a/m68k-unknown-amigaos/recipes/files/gcc/config/m68k/xm-amigaos.h
+++ b/m68k-unknown-amigaos/recipes/files/gcc/gcc/config/m68k/xm-amigaos.h
diff --git a/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/mathieeedoubbas.h b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/mathieeedoubbas.h
new file mode 100644
index 0000000..8b711db
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/mathieeedoubbas.h
@@ -0,0 +1,68 @@
+#ifndef _INLINE_MATHIEEEDOUBBAS_H
+#define _INLINE_MATHIEEEDOUBBAS_H
+
+#ifndef CLIB_MATHIEEEDOUBBAS_PROTOS_H
+#define CLIB_MATHIEEEDOUBBAS_PROTOS_H
+#endif
+
+#ifndef __INLINE_MACROS_H
+#include <inline/macros.h>
+#endif
+
+#ifndef EXEC_TYPES_H
+#include <exec/types.h>
+#endif
+
+#ifndef MATHIEEEDOUBBAS_BASE_NAME
+#define MATHIEEEDOUBBAS_BASE_NAME MathIeeeDoubBasBase
+#endif
+
+#define IEEEDPFix(parm) \
+ LP1(0x1e, LONG, IEEEDPFix, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPFlt(integer) \
+ LP1(0x24, DOUBLE, IEEEDPFlt, LONG, integer, d0, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPCmp(leftParm, rightParm) \
+ LP2(0x2a, LONG, IEEEDPCmp, DOUBLE, leftParm, d0, DOUBLE, rightParm, d2, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPTst(parm) \
+ LP1(0x30, LONG, IEEEDPTst, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPAbs(parm) \
+ LP1(0x36, DOUBLE, IEEEDPAbs, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPNeg(parm) \
+ LP1(0x3c, DOUBLE, IEEEDPNeg, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPAdd(leftParm, rightParm) \
+ LP2(0x42, DOUBLE, IEEEDPAdd, DOUBLE, leftParm, d0, DOUBLE, rightParm, d2, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPSub(leftParm, rightParm) \
+ LP2(0x48, DOUBLE, IEEEDPSub, DOUBLE, leftParm, d0, DOUBLE, rightParm, d2, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPMul(leftParm, rightParm) \
+ LP2(0x4e, DOUBLE, IEEEDPMul, DOUBLE, leftParm, d0, DOUBLE, rightParm, d2, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPDiv(dividend, divisor) \
+ LP2(0x54, DOUBLE, IEEEDPDiv, DOUBLE, dividend, d0, DOUBLE, divisor, d2, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPFloor(parm) \
+ LP1(0x5a, DOUBLE, IEEEDPFloor, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#define IEEEDPCeil(parm) \
+ LP1(0x60, DOUBLE, IEEEDPCeil, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBBAS_BASE_NAME)
+
+#endif /* _INLINE_MATHIEEEDOUBBAS_H */
diff --git a/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/mathieeedoubtrans.h b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/mathieeedoubtrans.h
new file mode 100644
index 0000000..0ccfa69
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/files/ndk/sys-include/inline/mathieeedoubtrans.h
@@ -0,0 +1,88 @@
+#ifndef _INLINE_MATHIEEEDOUBTRANS_H
+#define _INLINE_MATHIEEEDOUBTRANS_H
+
+#ifndef CLIB_MATHIEEEDOUBTRANS_PROTOS_H
+#define CLIB_MATHIEEEDOUBTRANS_PROTOS_H
+#endif
+
+#ifndef __INLINE_MACROS_H
+#include <inline/macros.h>
+#endif
+
+#ifndef EXEC_TYPES_H
+#include <exec/types.h>
+#endif
+
+#ifndef MATHIEEEDOUBTRANS_BASE_NAME
+#define MATHIEEEDOUBTRANS_BASE_NAME MathIeeeDoubTransBase
+#endif
+
+#define IEEEDPAtan(parm) \
+ LP1(0x1e, DOUBLE, IEEEDPAtan, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPSin(parm) \
+ LP1(0x24, DOUBLE, IEEEDPSin, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPCos(parm) \
+ LP1(0x2a, DOUBLE, IEEEDPCos, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPTan(parm) \
+ LP1(0x30, DOUBLE, IEEEDPTan, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPSincos(cosptr, parm) \
+ LP2(0x36, DOUBLE, IEEEDPSincos, DOUBLE *, cosptr, a0, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPSinh(parm) \
+ LP1(0x3c, DOUBLE, IEEEDPSinh, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPCosh(parm) \
+ LP1(0x42, DOUBLE, IEEEDPCosh, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPTanh(parm) \
+ LP1(0x48, DOUBLE, IEEEDPTanh, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPExp(parm) \
+ LP1(0x4e, DOUBLE, IEEEDPExp, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPLog(parm) \
+ LP1(0x54, DOUBLE, IEEEDPLog, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPPow(exp, arg) \
+ LP2(0x5a, DOUBLE, IEEEDPPow, DOUBLE, exp, d2, DOUBLE, arg, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPSqrt(parm) \
+ LP1(0x60, DOUBLE, IEEEDPSqrt, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPTieee(parm) \
+ LP1(0x66, FLOAT, IEEEDPTieee, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPFieee(parm) \
+ LP1(0x6c, DOUBLE, IEEEDPFieee, FLOAT, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPAsin(parm) \
+ LP1(0x72, DOUBLE, IEEEDPAsin, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPAcos(parm) \
+ LP1(0x78, DOUBLE, IEEEDPAcos, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#define IEEEDPLog10(parm) \
+ LP1(0x7e, DOUBLE, IEEEDPLog10, DOUBLE, parm, d0, \
+ , MATHIEEEDOUBTRANS_BASE_NAME)
+
+#endif /* _INLINE_MATHIEEEDOUBTRANS_H */
diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/gas.app.c.p b/m68k-unknown-amigaos/recipes/patches/binutils/gas.app.c.p
new file mode 100644
index 0000000..33124b5
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/binutils/gas.app.c.p
@@ -0,0 +1,13 @@
+Index: gas/app.c
+===================================================================
+--- gas/app.c (revision 240)
++++ gas/app.c (working copy)
+@@ -1279,6 +1279,8 @@
+ case 1: *to++ = *from++;
+ }
+ }
++ if (to >= toend)
++ goto tofull;
+ ch = GET ();
+ }
+ }
diff --git a/m68k-unknown-amigaos/recipes/patches/clib2/clib2.GNUmakefile.68k.p b/m68k-unknown-amigaos/recipes/patches/clib2/clib2.GNUmakefile.68k.p
new file mode 100644
index 0000000..c4b26d3
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/clib2/clib2.GNUmakefile.68k.p
@@ -0,0 +1,38 @@
+--- GNUmakefile.68k 20 Oct 2010 13:50:16 -0000 1.107
++++ GNUmakefile.68k 24 Dec 2010 05:30:31 -0000
+@@ -24,9 +24,9 @@
+
+ # override certain things for non-native builds
+ ifneq ($(HOST), AmigaOS)
+- CC = m68k-amigaos-gcc
+- AR = m68k-amigaos-ar -q
+- RANLIB = m68k-amigaos-ranlib
++ CC = m68k-unknown-amigaos-gcc
++ AR = m68k-unknown-amigaos-ar -q
++ RANLIB = m68k-unknown-amigaos-ranlib
+ COPY = cp
+ DELETE = rm -rf
+ MAKEDIR = mkdir -p
+@@ -530,6 +530,7 @@
+ stdlib_realloc.o \
+ stdlib_resetmemstats.o \
+ stdlib_system.o \
++ stubs.o \
+ systeminfo_sysinfo.o \
+ termios_cfgetispeed.o \
+ termios_cfgetospeed.o \
+@@ -979,10 +980,10 @@
+ lib/n32bcrt0.o \
+ lib/n32rcrt0.o \
+ lib/libm020/libm.a \
+- lib/libm.a \
+- lib/libb/libm.a \
+- lib/libb/libm020/libm.a \
+- lib/libb32/libm020/libm.a
++ lib/libm.a
++# lib/libb/libm.a \
++# lib/libb/libm020/libm.a \
++# lib/libb32/libm020/libm.a
+
+ ##############################################################################
+
diff --git a/m68k-unknown-amigaos/recipes/patches/clib2/clib2.include.fcntl.h.p b/m68k-unknown-amigaos/recipes/patches/clib2/clib2.include.fcntl.h.p
new file mode 100644
index 0000000..3e00401
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/clib2/clib2.include.fcntl.h.p
@@ -0,0 +1,17 @@
+? include/.fcntl.h.swp
+Index: include/fcntl.h
+===================================================================
+RCS file: /cvsroot/clib2/library/include/fcntl.h,v
+retrieving revision 1.9
+diff -u -r1.9 fcntl.h
+--- include/fcntl.h 8 Jan 2006 12:06:14 -0000 1.9
++++ include/fcntl.h 24 Dec 2010 05:32:32 -0000
+@@ -87,6 +87,8 @@
+ #define F_GETOWN 5
+ #define F_SETOWN 6
+
++#define FD_CLOEXEC 1
++
+ /****************************************************************************/
+
+ /*
diff --git a/m68k-unknown-amigaos/recipes/patches/clib2/clib2.include.unistd.p b/m68k-unknown-amigaos/recipes/patches/clib2/clib2.include.unistd.p
new file mode 100644
index 0000000..0adb5aa
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/clib2/clib2.include.unistd.p
@@ -0,0 +1,17 @@
+? include/.unistd.h.swp
+Index: include/unistd.h
+===================================================================
+RCS file: /cvsroot/clib2/library/include/unistd.h,v
+retrieving revision 1.23
+diff -u -r1.23 unistd.h
+--- include/unistd.h 6 Jan 2007 10:09:49 -0000 1.23
++++ include/unistd.h 24 Dec 2010 05:27:43 -0000
+@@ -133,6 +133,8 @@
+ extern int execve(const char *path,char *const argv[],char *const envp[]);
+ extern int execvp(const char *command,char * const argv[]);
+ extern int profil(unsigned short *buffer, size_t bufSize, size_t offset, unsigned int scale);
++extern pid_t vfork(void);
++extern int pipe(int pipefd[2]);
+
+ /****************************************************************************/
+
diff --git a/m68k-unknown-amigaos/recipes/patches/clib2/clib2.modern_gcc.p b/m68k-unknown-amigaos/recipes/patches/clib2/clib2.modern_gcc.p
new file mode 100644
index 0000000..4cfcc6f
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/clib2/clib2.modern_gcc.p
@@ -0,0 +1,2779 @@
+Index: amiga_addtof.c
+===================================================================
+RCS file: /cvsroot/clib2/library/amiga_addtof.c,v
+retrieving revision 1.4
+diff -u -r1.4 amiga_addtof.c
+--- amiga_addtof.c 8 Jan 2006 12:04:22 -0000 1.4
++++ amiga_addtof.c 24 Dec 2010 00:45:23 -0000
+@@ -58,8 +58,10 @@
+ /****************************************************************************/
+
+ STATIC LONG INTERRUPT ASM
+-call_routine(REG(a1,struct Isrvstr *i))
++call_routine()
+ {
++ register struct Isrvstr *i __asm("a1");
++
+ CFUNC p = (CFUNC)i->ccode;
+
+ (*p)(i->Carg);
+Index: amiga_beginio.c
+===================================================================
+RCS file: /cvsroot/clib2/library/amiga_beginio.c,v
+retrieving revision 1.5
+diff -u -r1.5 amiga_beginio.c
+--- amiga_beginio.c 25 Sep 2006 15:12:47 -0000 1.5
++++ amiga_beginio.c 24 Dec 2010 00:45:23 -0000
+@@ -64,7 +64,7 @@
+ __asm volatile ("jsr a6@(-30:W)" \
+ : \
+ : "r"(__BeginIO__bn), "r"(__BeginIO_ior) \
+- : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d0", "d1", "a0", "fp0", "fp1", "cc", "memory"); \
+ } \
+ })
+
+Index: amiga_callhooka.c
+===================================================================
+RCS file: /cvsroot/clib2/library/amiga_callhooka.c,v
+retrieving revision 1.3
+diff -u -r1.3 amiga_callhooka.c
+--- amiga_callhooka.c 8 Jan 2006 12:04:22 -0000 1.3
++++ amiga_callhooka.c 24 Dec 2010 00:45:23 -0000
+@@ -35,58 +35,57 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+-h_Entry = 8
+-
+- .text
+- .even
+-
+-|---------------------------------------------------------------------------
+-| new hook standard
+-| use struct Hook (with minnode at the top)
+-|
+-| *** register calling convention: ***
+-| A0 - pointer to hook itself
+-| A1 - pointer to parameter packed ('message')
+-| A2 - Hook specific address data ('object,' e.g, gadget )
+-|
+-| *** C conventions: ***
+-| Note that parameters are in unusual register order: a0, a2, a1.
+-| This is to provide a performance boost for assembly language
+-| programming (the object in a2 is most frequently untouched).
+-| It is also no problem in 'register direct' C function parameters.
+-|
+-| calling through a hook
+-| CallHook( hook, object, msgid, p1, p2, ... );
+-| CallHookA( hook, object, msgpkt );
+-|
+-| using a C function: CFunction( hook, object, message );
+-| hook.h_Entry = HookEntry;
+-| hook.h_SubEntry = CFunction;
+-|
+-|---------------------------------------------------------------------------
+-
+-| C calling hook interface for prepared message packet
+-
+- .globl _CallHookA
+-
+-_CallHookA:
+-
+- moveml a2/a6,sp@-
+- moveal sp@(12),a0
+- moveal sp@(16),a2
+- moveal sp@(20),a1
+- pea callhooka_return
+- movel a0@(h_Entry),sp@-
+- rts
+-
+-callhooka_return:
+-
+- moveml sp@+,a2/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++"h_Entry = 8\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++"|---------------------------------------------------------------------------\n"
++"| new hook standard\n"
++"| use struct Hook (with minnode at the top)\n"
++"|\n"
++"| *** register calling convention: ***\n"
++"| A0 - pointer to hook itself\n"
++"| A1 - pointer to parameter packed ('message')\n"
++"| A2 - Hook specific address data ('object,' e.g, gadget )\n"
++"|\n"
++"| *** C conventions: ***\n"
++"| Note that parameters are in unusual register order: a0, a2, a1.\n"
++"| This is to provide a performance boost for assembly language\n"
++"| programming (the object in a2 is most frequently untouched).\n"
++"| It is also no problem in 'register direct' C function parameters.\n"
++"|\n"
++"| calling through a hook\n"
++"| CallHook( hook, object, msgid, p1, p2, ... );\n"
++"| CallHookA( hook, object, msgpkt );\n"
++"|\n"
++"| using a C function: CFunction( hook, object, message );\n"
++"| hook.h_Entry = HookEntry;\n"
++"| hook.h_SubEntry = CFunction;\n"
++"|\n"
++"|---------------------------------------------------------------------------\n"
++"\n"
++"| C calling hook interface for prepared message packet\n"
++"\n"
++" .globl _CallHookA\n"
++"\n"
++"_CallHookA:\n"
++"\n"
++" moveml a2/a6,sp@-\n"
++" moveal sp@(12),a0\n"
++" moveal sp@(16),a2\n"
++" moveal sp@(20),a1\n"
++" pea callhooka_return\n"
++" movel a0@(h_Entry),sp@-\n"
++" rts\n"
++"\n"
++"callhooka_return:\n"
++"\n"
++" moveml sp@+,a2/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: amiga_hookentry.c
+===================================================================
+RCS file: /cvsroot/clib2/library/amiga_hookentry.c,v
+retrieving revision 1.3
+diff -u -r1.3 amiga_hookentry.c
+--- amiga_hookentry.c 8 Jan 2006 12:04:22 -0000 1.3
++++ amiga_hookentry.c 24 Dec 2010 00:45:23 -0000
+@@ -35,26 +35,25 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+-h_SubEntry = 12
+-
+- .text
+- .even
+-
+- .globl _HookEntry
+-
+-_HookEntry:
+-
+- movel a1,sp@-
+- movel a2,sp@-
+- movel a0,sp@-
+- movel a0@(h_SubEntry:W),a0
+- jsr a0@
+- lea sp@(12:W),sp
+- rts
+-
+-");
++asm("\n"
++"\n"
++"h_SubEntry = 12\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _HookEntry\n"
++"\n"
++"_HookEntry:\n"
++"\n"
++" movel a1,sp@-\n"
++" movel a2,sp@-\n"
++" movel a0,sp@-\n"
++" movel a0@(h_SubEntry:W),a0\n"
++" jsr a0@\n"
++" lea sp@(12:W),sp\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: amiga_rexxvars.c
+===================================================================
+RCS file: /cvsroot/clib2/library/amiga_rexxvars.c,v
+retrieving revision 1.19
+diff -u -r1.19 amiga_rexxvars.c
+--- amiga_rexxvars.c 18 Apr 2008 10:11:59 -0000 1.19
++++ amiga_rexxvars.c 24 Dec 2010 00:45:23 -0000
+@@ -311,209 +311,201 @@
+ /****************************************************************************/
+
+ /* struct Environment * a0,APTR block a1,LONG d0 */
+-asm("
+-
+- .text
+- .even
+-
+- .globl __FreeSpace
+-
+-__FreeSpace:
+-
+- moveal sp@(4),a0
+- moveal sp@(8),a1
+- movel sp@(12),d0
+-
+- movel a6,sp@-
+- moveal "A4(_RexxSysBase)",a6
+- jsr a6@(-120)
+- moveal sp@+,a6
+-
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl __FreeSpace\n"
++"\n"
++"__FreeSpace:\n"
++"\n"
++" moveal sp@(4),a0\n"
++" moveal sp@(8),a1\n"
++" movel sp@(12),d0\n"
++"\n"
++" movel a6,sp@-\n"
++" moveal "A4(_RexxSysBase)",a6\n"
++" jsr a6@(-120)\n"
++" moveal sp@+,a6\n"
++"\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+ /* struct Environment * a0,LONG d0 : APTR d0 */
+-asm("
+-
+- .text
+- .even
+-
+- .globl __GetSpace
+-
+-__GetSpace:
+-
+- moveal sp@(4),a0
+- movel sp@(8),d0
+-
+- movel a6,sp@-
+- moveal "A4(_RexxSysBase)",a6
+- jsr a6@(-114)
+- moveal sp@+,a6
+-
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl __GetSpace\n"
++"\n"
++"__GetSpace:\n"
++"\n"
++" moveal sp@(4),a0\n"
++" movel sp@(8),d0\n"
++"\n"
++" movel a6,sp@-\n"
++" moveal "A4(_RexxSysBase)",a6\n"
++" jsr a6@(-114)\n"
++" moveal sp@+,a6\n"
++"\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+ /* STRPTR a0 : LONG d0, LONG d1 */
+-asm("
+-
+- .text
+- .even
+-
+- .globl __IsSymbol
+-
+-__IsSymbol:
+-
+- moveal sp@(4),a0
+-
+- movel a6,sp@-
+- moveal "A4(_RexxSysBase)",a6
+- jsr a6@(-102)
+- moveal sp@+,a6
+-
+- moveal sp@(8),a1
+- movel d1,a1@
+-
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl __IsSymbol\n"
++"\n"
++"__IsSymbol:\n"
++"\n"
++" moveal sp@(4),a0\n"
++"\n"
++" movel a6,sp@-\n"
++" moveal "A4(_RexxSysBase)",a6\n"
++" jsr a6@(-102)\n"
++" moveal sp@+,a6\n"
++"\n"
++" moveal sp@(8),a1\n"
++" movel d1,a1@\n"
++"\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+ /* struct RexxTask * a0 : struct Environment * a0 */
+-asm("
+-
+- .text
+- .even
+-
+- .globl __CurrentEnv
+-
+-__CurrentEnv:
+-
+- moveal sp@(4),a0
+-
+- movel a6,sp@-
+- moveal "A4(_RexxSysBase)",a6
+- jsr a6@(-108)
+- moveal sp@+,a6
+-
+- moveal sp@(8),a1
+- movel a0,a1@
+-
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl __CurrentEnv\n"
++"\n"
++"__CurrentEnv:\n"
++"\n"
++" moveal sp@(4),a0\n"
++"\n"
++" movel a6,sp@-\n"
++" moveal "A4(_RexxSysBase)",a6\n"
++" jsr a6@(-108)\n"
++" moveal sp@+,a6\n"
++"\n"
++" moveal sp@(8),a1\n"
++" movel a0,a1@\n"
++"\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+ /* struct Environment * a0,struct NexxStr * a1,struct NexxStr * d0,struct Node * d1 : struct NexxStr * a0, LONG d1 */
+-asm("
+-
+- .text
+- .even
+-
+- .globl __FetchValue
+-
+-__FetchValue:
+-
+- moveal sp@(4),a0
+- moveal sp@(8),a1
+- movel sp@(12),d0
+- movel sp@(16),d1
+-
+- movel a6,sp@-
+- moveal "A4(_RexxSysBase)",a6
+- jsr a6@(-72)
+- moveal sp@+,a6
+-
+- moveal sp@(20),a1
+- movel a0,a1@
+- moveal sp@(24),a1
+- movel d1,a1@
+-
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl __FetchValue\n"
++"\n"
++"__FetchValue:\n"
++"\n"
++" moveal sp@(4),a0\n"
++" moveal sp@(8),a1\n"
++" movel sp@(12),d0\n"
++" movel sp@(16),d1\n"
++"\n"
++" movel a6,sp@-\n"
++" moveal "A4(_RexxSysBase)",a6\n"
++" jsr a6@(-72)\n"
++" moveal sp@+,a6\n"
++"\n"
++" moveal sp@(20),a1\n"
++" movel a0,a1@\n"
++" moveal sp@(24),a1\n"
++" movel d1,a1@\n"
++"\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+ /* struct Environment a0, struct NexxStr *a1, struct NexxStr * d0 : struct Node * d0 */
+-asm("
+-
+- .text
+- .even
+-
+- .globl __EnterSymbol
+-
+-__EnterSymbol:
+-
+- moveal sp@(4),a0
+- moveal sp@(8),a1
+- movel sp@(12),d0
+-
+- movel a6,sp@-
+- moveal "A4(_RexxSysBase)",a6
+- jsr a6@(-66)
+- moveal sp@+,a6
+-
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl __EnterSymbol\n"
++"\n"
++"__EnterSymbol:\n"
++"\n"
++" moveal sp@(4),a0\n"
++" moveal sp@(8),a1\n"
++" movel sp@(12),d0\n"
++"\n"
++" movel a6,sp@-\n"
++" moveal "A4(_RexxSysBase)",a6\n"
++" jsr a6@(-66)\n"
++" moveal sp@+,a6\n"
++"\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+ /* struct Environment *a0, struct NexxStr *a1, struct Node * d0 */
+-asm("
+-
+- .text
+- .even
+-
+- .globl __SetValue
+-
+-__SetValue:
+-
+- moveal sp@(4),a0
+- moveal sp@(8),a1
+- movel sp@(12),d0
+-
+- movel a6,sp@-
+- moveal "A4(_RexxSysBase)",a6
+- jsr a6@(-84)
+- moveal sp@+,a6
+-
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl __SetValue\n"
++"\n"
++"__SetValue:\n"
++"\n"
++" moveal sp@(4),a0\n"
++" moveal sp@(8),a1\n"
++" movel sp@(12),d0\n"
++"\n"
++" movel a6,sp@-\n"
++" moveal "A4(_RexxSysBase)",a6\n"
++" jsr a6@(-84)\n"
++" moveal sp@+,a6\n"
++"\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+ /* STRPTR a0,STRPTR a1,LONG d0 : ULONG d0 */
+-asm("
+-
+- .text
+- .even
+-
+- .globl __StrcpyN
+-
+-__StrcpyN:
+-
+- moveal sp@(4),a0
+- moveal sp@(8),a1
+- movel sp@(12),d0
+-
+- movel a6,sp@-
+- moveal "A4(_RexxSysBase)",a6
+- jsr a6@(-270)
+- moveal sp@+,a6
+-
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl __StrcpyN\n"
++"\n"
++"__StrcpyN:\n"
++"\n"
++" moveal sp@(4),a0\n"
++" moveal sp@(8),a1\n"
++" movel sp@(12),d0\n"
++"\n"
++" movel a6,sp@-\n"
++" moveal "A4(_RexxSysBase)",a6\n"
++" jsr a6@(-270)\n"
++" moveal sp@+,a6\n"
++"\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: debug_headers.h
+===================================================================
+RCS file: /cvsroot/clib2/library/debug_headers.h,v
+retrieving revision 1.4
+diff -u -r1.4 debug_headers.h
+--- debug_headers.h 8 Jan 2006 12:04:22 -0000 1.4
++++ debug_headers.h 24 Dec 2010 00:45:23 -0000
+@@ -96,7 +96,7 @@
+ __asm volatile ("jsr a6@(-516:W)" \
+ : \
+ : "r"(__RawPutChar__bn), "r"(__RawPutChar_c) \
+- : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ } \
+ })
+
+Index: debug_kputfmt.c
+===================================================================
+RCS file: /cvsroot/clib2/library/debug_kputfmt.c,v
+retrieving revision 1.4
+diff -u -r1.4 debug_kputfmt.c
+--- debug_kputfmt.c 8 Jan 2006 12:04:22 -0000 1.4
++++ debug_kputfmt.c 24 Dec 2010 00:45:23 -0000
+@@ -151,8 +151,10 @@
+ /****************************************************************************/
+
+ STATIC VOID ASM
+-raw_put_char(REG(d0,UBYTE c))
++raw_put_char()
+ {
++ register UBYTE c __asm("d0");
++
+ kputc(c);
+ }
+
+Index: math_acos.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_acos.c,v
+retrieving revision 1.7
+diff -u -r1.7 math_acos.c
+--- math_acos.c 8 Jan 2006 12:04:23 -0000 1.7
++++ math_acos.c 24 Dec 2010 00:45:23 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___acos
+-
+-___acos:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-120:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___acos\n"
++"\n"
++"___acos:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-120:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_adddf3.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_adddf3.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_adddf3.c
+--- math_adddf3.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_adddf3.c 24 Dec 2010 00:45:23 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___adddf3
+-
+-___adddf3:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-66:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___adddf3\n"
++"\n"
++"___adddf3:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-66:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_asin.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_asin.c,v
+retrieving revision 1.7
+diff -u -r1.7 math_asin.c
+--- math_asin.c 8 Jan 2006 12:04:23 -0000 1.7
++++ math_asin.c 24 Dec 2010 00:45:23 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___asin
+-
+-___asin:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-114:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___asin\n"
++"\n"
++"___asin:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-114:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_atan.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_atan.c,v
+retrieving revision 1.5
+diff -u -r1.5 math_atan.c
+--- math_atan.c 8 Jan 2006 12:04:23 -0000 1.5
++++ math_atan.c 24 Dec 2010 00:45:23 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___atan
+-
+-___atan:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-30:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___atan\n"
++"\n"
++"___atan:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-30:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_ceil.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_ceil.c,v
+retrieving revision 1.6
+diff -u -r1.6 math_ceil.c
+--- math_ceil.c 8 Jan 2006 12:04:23 -0000 1.6
++++ math_ceil.c 24 Dec 2010 00:45:23 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___ceil
+-
+-___ceil:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-96:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___ceil\n"
++"\n"
++"___ceil:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-96:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_cos.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_cos.c,v
+retrieving revision 1.6
+diff -u -r1.6 math_cos.c
+--- math_cos.c 8 Jan 2006 12:04:23 -0000 1.6
++++ math_cos.c 24 Dec 2010 00:45:23 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___cos
+-
+-___cos:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-42:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___cos\n"
++"\n"
++"___cos:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-42:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_cosh.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_cosh.c,v
+retrieving revision 1.5
+diff -u -r1.5 math_cosh.c
+--- math_cosh.c 8 Jan 2006 12:04:23 -0000 1.5
++++ math_cosh.c 24 Dec 2010 00:45:23 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___cosh
+-
+-___cosh:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-66:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___cosh\n"
++"\n"
++"___cosh:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-66:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_divdf3.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_divdf3.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_divdf3.c
+--- math_divdf3.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_divdf3.c 24 Dec 2010 00:45:23 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___divdf3
+-
+-___divdf3:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-84:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___divdf3\n"
++"\n"
++"___divdf3:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-84:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_eqdf2.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_eqdf2.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_eqdf2.c
+--- math_eqdf2.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_eqdf2.c 24 Dec 2010 00:45:23 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___eqdf2
+-
+-___eqdf2:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-42:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___eqdf2\n"
++"\n"
++"___eqdf2:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-42:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_exp.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_exp.c,v
+retrieving revision 1.8
+diff -u -r1.8 math_exp.c
+--- math_exp.c 22 Sep 2006 09:02:51 -0000 1.8
++++ math_exp.c 24 Dec 2010 00:45:24 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___exp
+-
+-___exp:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-78:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___exp\n"
++"\n"
++"___exp:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-78:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_extendsfdf2.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_extendsfdf2.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_extendsfdf2.c
+--- math_extendsfdf2.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_extendsfdf2.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___extendsfdf2
+-
+-___extendsfdf2:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- movel sp@(8),d0
+- jsr a6@(-108:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___extendsfdf2\n"
++"\n"
++"___extendsfdf2:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" movel sp@(8),d0\n"
++" jsr a6@(-108:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_fabs.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_fabs.c,v
+retrieving revision 1.8
+diff -u -r1.8 math_fabs.c
+--- math_fabs.c 8 Jan 2006 12:04:23 -0000 1.8
++++ math_fabs.c 24 Dec 2010 00:45:24 -0000
+@@ -63,24 +63,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___fabs
+-
+-___fabs:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-54:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___fabs\n"
++"\n"
++"___fabs:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-54:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_fabsf.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_fabsf.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_fabsf.c
+--- math_fabsf.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_fabsf.c 24 Dec 2010 00:45:24 -0000
+@@ -63,24 +63,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeSingBasBase
+- .globl ___fabsf
+-
+-___fabsf:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeSingBasBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-54:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeSingBasBase\n"
++" .globl ___fabsf\n"
++"\n"
++"___fabsf:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeSingBasBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-54:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_fixdfsi.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_fixdfsi.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_fixdfsi.c
+--- math_fixdfsi.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_fixdfsi.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___fixdfsi
+-
+-___fixdfsi:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-30:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___fixdfsi\n"
++"\n"
++"___fixdfsi:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-30:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_floatsidf.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_floatsidf.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_floatsidf.c
+--- math_floatsidf.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_floatsidf.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___floatsidf
+-
+-___floatsidf:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- movel sp@(8),d0
+- jsr a6@(-36:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___floatsidf\n"
++"\n"
++"___floatsidf:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" movel sp@(8),d0\n"
++" jsr a6@(-36:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_floor.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_floor.c,v
+retrieving revision 1.5
+diff -u -r1.5 math_floor.c
+--- math_floor.c 8 Jan 2006 12:04:23 -0000 1.5
++++ math_floor.c 24 Dec 2010 00:45:24 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___floor
+-
+-___floor:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-90:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___floor\n"
++"\n"
++"___floor:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-90:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_gedf2.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_gedf2.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_gedf2.c
+--- math_gedf2.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_gedf2.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___gedf2
+-
+-___gedf2:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-42:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___gedf2\n"
++"\n"
++"___gedf2:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-42:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_gtdf2.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_gtdf2.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_gtdf2.c
+--- math_gtdf2.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_gtdf2.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___gtdf2
+-
+-___gtdf2:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-42:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___gtdf2\n"
++"\n"
++"___gtdf2:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-42:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_ledf2.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_ledf2.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_ledf2.c
+--- math_ledf2.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_ledf2.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___ledf2
+-
+-___ledf2:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-42:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___ledf2\n"
++"\n"
++"___ledf2:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-42:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_log.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_log.c,v
+retrieving revision 1.10
+diff -u -r1.10 math_log.c
+--- math_log.c 8 Nov 2007 11:23:53 -0000 1.10
++++ math_log.c 24 Dec 2010 00:45:24 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___log
+-
+-___log:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-84:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___log\n"
++"\n"
++"___log:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-84:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_log10.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_log10.c,v
+retrieving revision 1.9
+diff -u -r1.9 math_log10.c
+--- math_log10.c 8 Nov 2007 11:23:53 -0000 1.9
++++ math_log10.c 24 Dec 2010 00:45:24 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___log10
+-
+-___log10:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-126:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___log10\n"
++"\n"
++"___log10:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-126:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_ltdf2.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_ltdf2.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_ltdf2.c
+--- math_ltdf2.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_ltdf2.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___ltdf2
+-
+-___ltdf2:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-42:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___ltdf2\n"
++"\n"
++"___ltdf2:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-42:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_muldf3.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_muldf3.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_muldf3.c
+--- math_muldf3.c 8 Jan 2006 12:04:23 -0000 1.3
++++ math_muldf3.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___muldf3
+-
+-___muldf3:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-78:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___muldf3\n"
++"\n"
++"___muldf3:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-78:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_nedf2.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_nedf2.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_nedf2.c
+--- math_nedf2.c 8 Jan 2006 12:04:24 -0000 1.3
++++ math_nedf2.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___nedf2
+-
+-___nedf2:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-42:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___nedf2\n"
++"\n"
++"___nedf2:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-42:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_negdf2.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_negdf2.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_negdf2.c
+--- math_negdf2.c 8 Jan 2006 12:04:24 -0000 1.3
++++ math_negdf2.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___negdf2
+-
+-___negdf2:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-60:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___negdf2\n"
++"\n"
++"___negdf2:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-60:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_pow.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_pow.c,v
+retrieving revision 1.10
+diff -u -r1.10 math_pow.c
+--- math_pow.c 8 Jan 2006 12:04:24 -0000 1.10
++++ math_pow.c 24 Dec 2010 00:45:24 -0000
+@@ -72,25 +72,24 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___pow
+-
+-___pow:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(16),d0/d1 | Note that the parameters
+- moveml sp@(24),d2/d3 | are reversed!
+- jsr a6@(-90:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___pow\n"
++"\n"
++"___pow:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(16),d0/d1 | Note that the parameters\n"
++" moveml sp@(24),d2/d3 | are reversed!\n"
++" jsr a6@(-90:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_sin.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_sin.c,v
+retrieving revision 1.5
+diff -u -r1.5 math_sin.c
+--- math_sin.c 8 Jan 2006 12:04:24 -0000 1.5
++++ math_sin.c 24 Dec 2010 00:45:24 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___sin
+-
+-___sin:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-36:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___sin\n"
++"\n"
++"___sin:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-36:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_sinh.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_sinh.c,v
+retrieving revision 1.5
+diff -u -r1.5 math_sinh.c
+--- math_sinh.c 8 Jan 2006 12:04:24 -0000 1.5
++++ math_sinh.c 24 Dec 2010 00:45:24 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___sinh
+-
+-___sinh:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-60:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___sinh\n"
++"\n"
++"___sinh:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-60:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_sqrt.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_sqrt.c,v
+retrieving revision 1.9
+diff -u -r1.9 math_sqrt.c
+--- math_sqrt.c 22 Sep 2006 07:54:24 -0000 1.9
++++ math_sqrt.c 24 Dec 2010 00:45:24 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___sqrt
+-
+-___sqrt:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-96:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___sqrt\n"
++"\n"
++"___sqrt:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-96:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_subdf3.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_subdf3.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_subdf3.c
+--- math_subdf3.c 8 Jan 2006 12:04:24 -0000 1.3
++++ math_subdf3.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubBasBase
+- .globl ___subdf3
+-
+-___subdf3:
+-
+- moveml d2/d3/a6,sp@-
+- movel "A4(_MathIeeeDoubBasBase)",a6
+- moveml sp@(16),d0/d1/d2/d3
+- jsr a6@(-72:W)
+- moveml sp@+,d2/d3/a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubBasBase\n"
++" .globl ___subdf3\n"
++"\n"
++"___subdf3:\n"
++"\n"
++" moveml d2/d3/a6,sp@-\n"
++" movel "A4(_MathIeeeDoubBasBase)",a6\n"
++" moveml sp@(16),d0/d1/d2/d3\n"
++" jsr a6@(-72:W)\n"
++" moveml sp@+,d2/d3/a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_tan.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_tan.c,v
+retrieving revision 1.5
+diff -u -r1.5 math_tan.c
+--- math_tan.c 8 Jan 2006 12:04:24 -0000 1.5
++++ math_tan.c 24 Dec 2010 00:45:24 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___tan
+-
+-___tan:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-48:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___tan\n"
++"\n"
++"___tan:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-48:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_tanh.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_tanh.c,v
+retrieving revision 1.5
+diff -u -r1.5 math_tanh.c
+--- math_tanh.c 8 Jan 2006 12:04:24 -0000 1.5
++++ math_tanh.c 24 Dec 2010 00:45:24 -0000
+@@ -72,24 +72,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___tanh
+-
+-___tanh:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-72:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___tanh\n"
++"\n"
++"___tanh:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-72:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: math_truncdfsf2.c
+===================================================================
+RCS file: /cvsroot/clib2/library/math_truncdfsf2.c,v
+retrieving revision 1.3
+diff -u -r1.3 math_truncdfsf2.c
+--- math_truncdfsf2.c 8 Jan 2006 12:04:24 -0000 1.3
++++ math_truncdfsf2.c 24 Dec 2010 00:45:24 -0000
+@@ -51,24 +51,23 @@
+
+ /****************************************************************************/
+
+-asm("
+-
+- .text
+- .even
+-
+- .globl _MathIeeeDoubTransBase
+- .globl ___truncdfsf2
+-
+-___truncdfsf2:
+-
+- movel a6,sp@-
+- movel "A4(_MathIeeeDoubTransBase)",a6
+- moveml sp@(8),d0/d1
+- jsr a6@(-102:W)
+- movel sp@+,a6
+- rts
+-
+-");
++asm("\n"
++"\n"
++" .text\n"
++" .even\n"
++"\n"
++" .globl _MathIeeeDoubTransBase\n"
++" .globl ___truncdfsf2\n"
++"\n"
++"___truncdfsf2:\n"
++"\n"
++" movel a6,sp@-\n"
++" movel "A4(_MathIeeeDoubTransBase)",a6\n"
++" moveml sp@(8),d0/d1\n"
++" jsr a6@(-102:W)\n"
++" movel sp@+,a6\n"
++" rts\n"
++"\n");
+
+ /****************************************************************************/
+
+Index: socket_headers.h
+===================================================================
+RCS file: /cvsroot/clib2/library/socket_headers.h,v
+retrieving revision 1.14
+diff -u -r1.14 socket_headers.h
+--- socket_headers.h 5 Apr 2006 07:53:24 -0000 1.14
++++ socket_headers.h 24 Dec 2010 00:45:25 -0000
+@@ -203,7 +203,7 @@
+ __asm volatile ("jsr a6@(-30:W)" \
+ : "=r"(__socket__re) \
+ : "r"(__socket__bn), "r"(__socket_domain), "r"(__socket_type), "r"(__socket_protocol) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __socket__re; \
+ }); \
+ _socket__re; \
+@@ -223,7 +223,7 @@
+ __asm volatile ("jsr a6@(-36:W)" \
+ : "=r"(__bind__re) \
+ : "r"(__bind__bn), "r"(__bind_sock), "r"(__bind_name), "r"(__bind_namelen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a1", "fp0", "fp1", "cc", "memory"); \
+ __bind__re; \
+ }); \
+ _bind__re; \
+@@ -241,7 +241,7 @@
+ __asm volatile ("jsr a6@(-42:W)" \
+ : "=r"(__listen__re) \
+ : "r"(__listen__bn), "r"(__listen_sock), "r"(__listen_backlog) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __listen__re; \
+ }); \
+ _listen__re; \
+@@ -261,7 +261,7 @@
+ __asm volatile ("jsr a6@(-48:W)" \
+ : "=r"(__accept__re) \
+ : "r"(__accept__bn), "r"(__accept_sock), "r"(__accept_addr), "r"(__accept_addrlen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "fp0", "fp1", "cc", "memory"); \
+ __accept__re; \
+ }); \
+ _accept__re; \
+@@ -281,7 +281,7 @@
+ __asm volatile ("jsr a6@(-54:W)" \
+ : "=r"(__connect__re) \
+ : "r"(__connect__bn), "r"(__connect_sock), "r"(__connect_name), "r"(__connect_namelen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a1", "fp0", "fp1", "cc", "memory"); \
+ __connect__re; \
+ }); \
+ _connect__re; \
+@@ -307,7 +307,7 @@
+ __asm volatile ("jsr a6@(-60:W)" \
+ : "=r"(__sendto__re) \
+ : "r"(__sendto__bn), "r"(__sendto_sock), "r"(__sendto_buf), "r"(__sendto_len), "r"(__sendto_flags), "r"(__sendto_to), "r"(__sendto_tolen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "fp0", "fp1", "cc", "memory"); \
+ __sendto__re; \
+ }); \
+ _sendto__re; \
+@@ -329,7 +329,7 @@
+ __asm volatile ("jsr a6@(-66:W)" \
+ : "=r"(__send__re) \
+ : "r"(__send__bn), "r"(__send_sock), "r"(__send_buf), "r"(__send_len), "r"(__send_flags) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a1", "fp0", "fp1", "cc", "memory"); \
+ __send__re; \
+ }); \
+ _send__re; \
+@@ -355,7 +355,7 @@
+ __asm volatile ("jsr a6@(-72:W)" \
+ : "=r"(__recvfrom__re) \
+ : "r"(__recvfrom__bn), "r"(__recvfrom_sock), "r"(__recvfrom_buf), "r"(__recvfrom_len), "r"(__recvfrom_flags), "r"(__recvfrom_addr), "r"(__recvfrom_addrlen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "fp0", "fp1", "cc", "memory"); \
+ __recvfrom__re; \
+ }); \
+ _recvfrom__re; \
+@@ -377,7 +377,7 @@
+ __asm volatile ("jsr a6@(-78:W)" \
+ : "=r"(__recv__re) \
+ : "r"(__recv__bn), "r"(__recv_sock), "r"(__recv_buf), "r"(__recv_len), "r"(__recv_flags) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a1", "fp0", "fp1", "cc", "memory"); \
+ __recv__re; \
+ }); \
+ _recv__re; \
+@@ -395,7 +395,7 @@
+ __asm volatile ("jsr a6@(-84:W)" \
+ : "=r"(__shutdown__re) \
+ : "r"(__shutdown__bn), "r"(__shutdown_sock), "r"(__shutdown_how) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __shutdown__re; \
+ }); \
+ _shutdown__re; \
+@@ -419,7 +419,7 @@
+ __asm volatile ("jsr a6@(-90:W)" \
+ : "=r"(__setsockopt__re) \
+ : "r"(__setsockopt__bn), "r"(__setsockopt_sock), "r"(__setsockopt_level), "r"(__setsockopt_optname), "r"(__setsockopt_optval), "r"(__setsockopt_optlen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a1", "fp0", "fp1", "cc", "memory"); \
+ __setsockopt__re; \
+ }); \
+ _setsockopt__re; \
+@@ -443,7 +443,7 @@
+ __asm volatile ("jsr a6@(-96:W)" \
+ : "=r"(__getsockopt__re) \
+ : "r"(__getsockopt__bn), "r"(__getsockopt_sock), "r"(__getsockopt_level), "r"(__getsockopt_optname), "r"(__getsockopt_optval), "r"(__getsockopt_optlen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "fp0", "fp1", "cc", "memory"); \
+ __getsockopt__re; \
+ }); \
+ _getsockopt__re; \
+@@ -463,7 +463,7 @@
+ __asm volatile ("jsr a6@(-102:W)" \
+ : "=r"(__getsockname__re) \
+ : "r"(__getsockname__bn), "r"(__getsockname_sock), "r"(__getsockname_name), "r"(__getsockname_namelen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "fp0", "fp1", "cc", "memory"); \
+ __getsockname__re; \
+ }); \
+ _getsockname__re; \
+@@ -483,7 +483,7 @@
+ __asm volatile ("jsr a6@(-108:W)" \
+ : "=r"(__getpeername__re) \
+ : "r"(__getpeername__bn), "r"(__getpeername_sock), "r"(__getpeername_name), "r"(__getpeername_namelen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "fp0", "fp1", "cc", "memory"); \
+ __getpeername__re; \
+ }); \
+ _getpeername__re; \
+@@ -503,7 +503,7 @@
+ __asm volatile ("jsr a6@(-114:W)" \
+ : "=r"(__IoctlSocket__re) \
+ : "r"(__IoctlSocket__bn), "r"(__IoctlSocket_sock), "r"(__IoctlSocket_req), "r"(__IoctlSocket_argp) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a1", "fp0", "fp1", "cc", "memory"); \
+ __IoctlSocket__re; \
+ }); \
+ _IoctlSocket__re; \
+@@ -545,7 +545,7 @@
+ __asm volatile ("jsr a6@(-126:W)" \
+ : "=r"(__WaitSelect__re) \
+ : "r"(__WaitSelect__bn), "r"(__WaitSelect_nfds), "r"(__WaitSelect_read_fds), "r"(__WaitSelect_write_fds), "r"(__WaitSelect_except_fds), "r"(__WaitSelect_timeout), "r"(__WaitSelect_signals) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "fp0", "fp1", "cc", "memory"); \
+ __WaitSelect__re; \
+ }); \
+ _WaitSelect__re; \
+@@ -563,7 +563,7 @@
+ __asm volatile ("jsr a6@(-132:W)" \
+ : \
+ : "r"(__SetSocketSignals__bn), "r"(__SetSocketSignals_int_mask), "r"(__SetSocketSignals_io_mask), "r"(__SetSocketSignals_urgent_mask) \
+- : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ } \
+ })
+
+@@ -597,7 +597,7 @@
+ __asm volatile ("jsr a6@(-144:W)" \
+ : "=r"(__ObtainSocket__re) \
+ : "r"(__ObtainSocket__bn), "r"(__ObtainSocket_id), "r"(__ObtainSocket_domain), "r"(__ObtainSocket_type), "r"(__ObtainSocket_protocol) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __ObtainSocket__re; \
+ }); \
+ _ObtainSocket__re; \
+@@ -615,7 +615,7 @@
+ __asm volatile ("jsr a6@(-150:W)" \
+ : "=r"(__ReleaseSocket__re) \
+ : "r"(__ReleaseSocket__bn), "r"(__ReleaseSocket_sock), "r"(__ReleaseSocket_id) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __ReleaseSocket__re; \
+ }); \
+ _ReleaseSocket__re; \
+@@ -633,7 +633,7 @@
+ __asm volatile ("jsr a6@(-156:W)" \
+ : "=r"(__ReleaseCopyOfSocket__re) \
+ : "r"(__ReleaseCopyOfSocket__bn), "r"(__ReleaseCopyOfSocket_sock), "r"(__ReleaseCopyOfSocket_id) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __ReleaseCopyOfSocket__re; \
+ }); \
+ _ReleaseCopyOfSocket__re; \
+@@ -663,7 +663,7 @@
+ __asm volatile ("jsr a6@(-168:W)" \
+ : \
+ : "r"(__SetErrnoPtr__bn), "r"(__SetErrnoPtr_errno_ptr), "r"(__SetErrnoPtr_size) \
+- : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ } \
+ })
+
+@@ -693,7 +693,7 @@
+ __asm volatile ("jsr a6@(-180:W)" \
+ : "=r"(__inet_addr__re) \
+ : "r"(__inet_addr__bn), "r"(__inet_addr_cp) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __inet_addr__re; \
+ }); \
+ _inet_addr__re; \
+@@ -743,7 +743,7 @@
+ __asm volatile ("jsr a6@(-198:W)" \
+ : "=r"(__Inet_MakeAddr__re) \
+ : "r"(__Inet_MakeAddr__bn), "r"(__Inet_MakeAddr_net), "r"(__Inet_MakeAddr_host) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __Inet_MakeAddr__re; \
+ }); \
+ _Inet_MakeAddr__re; \
+@@ -759,7 +759,7 @@
+ __asm volatile ("jsr a6@(-204:W)" \
+ : "=r"(__inet_network__re) \
+ : "r"(__inet_network__bn), "r"(__inet_network_cp) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __inet_network__re; \
+ }); \
+ _inet_network__re; \
+@@ -775,7 +775,7 @@
+ __asm volatile ("jsr a6@(-210:W)" \
+ : "=r"(__gethostbyname__re) \
+ : "r"(__gethostbyname__bn), "r"(__gethostbyname_name) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __gethostbyname__re; \
+ }); \
+ _gethostbyname__re; \
+@@ -795,7 +795,7 @@
+ __asm volatile ("jsr a6@(-216:W)" \
+ : "=r"(__gethostbyaddr__re) \
+ : "r"(__gethostbyaddr__bn), "r"(__gethostbyaddr_addr), "r"(__gethostbyaddr_len), "r"(__gethostbyaddr_type) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a1", "fp0", "fp1", "cc", "memory"); \
+ __gethostbyaddr__re; \
+ }); \
+ _gethostbyaddr__re; \
+@@ -811,7 +811,7 @@
+ __asm volatile ("jsr a6@(-222:W)" \
+ : "=r"(__getnetbyname__re) \
+ : "r"(__getnetbyname__bn), "r"(__getnetbyname_name) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __getnetbyname__re; \
+ }); \
+ _getnetbyname__re; \
+@@ -829,7 +829,7 @@
+ __asm volatile ("jsr a6@(-228:W)" \
+ : "=r"(__getnetbyaddr__re) \
+ : "r"(__getnetbyaddr__bn), "r"(__getnetbyaddr_net), "r"(__getnetbyaddr_type) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __getnetbyaddr__re; \
+ }); \
+ _getnetbyaddr__re; \
+@@ -847,7 +847,7 @@
+ __asm volatile ("jsr a6@(-234:W)" \
+ : "=r"(__getservbyname__re) \
+ : "r"(__getservbyname__bn), "r"(__getservbyname_name), "r"(__getservbyname_proto) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "fp0", "fp1", "cc", "memory"); \
+ __getservbyname__re; \
+ }); \
+ _getservbyname__re; \
+@@ -865,7 +865,7 @@
+ __asm volatile ("jsr a6@(-240:W)" \
+ : "=r"(__getservbyport__re) \
+ : "r"(__getservbyport__bn), "r"(__getservbyport_port), "r"(__getservbyport_proto) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __getservbyport__re; \
+ }); \
+ _getservbyport__re; \
+@@ -881,7 +881,7 @@
+ __asm volatile ("jsr a6@(-246:W)" \
+ : "=r"(__getprotobyname__re) \
+ : "r"(__getprotobyname__bn), "r"(__getprotobyname_name) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __getprotobyname__re; \
+ }); \
+ _getprotobyname__re; \
+@@ -915,7 +915,7 @@
+ __asm volatile ("jsr a6@(-258:W)" \
+ : \
+ : "r"(__vsyslog__bn), "r"(__vsyslog_pri), "r"(__vsyslog_msg), "r"(__vsyslog_args) \
+- : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "fp0", "fp1", "cc", "memory"); \
+ } \
+ })
+
+@@ -931,7 +931,7 @@
+ __asm volatile ("jsr a6@(-264:W)" \
+ : "=r"(__Dup2Socket__re) \
+ : "r"(__Dup2Socket__bn), "r"(__Dup2Socket_old_socket), "r"(__Dup2Socket_new_socket) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __Dup2Socket__re; \
+ }); \
+ _Dup2Socket__re; \
+@@ -951,7 +951,7 @@
+ __asm volatile ("jsr a6@(-270:W)" \
+ : "=r"(__sendmsg__re) \
+ : "r"(__sendmsg__bn), "r"(__sendmsg_sock), "r"(__sendmsg_msg), "r"(__sendmsg_flags) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a1", "fp0", "fp1", "cc", "memory"); \
+ __sendmsg__re; \
+ }); \
+ _sendmsg__re; \
+@@ -971,7 +971,7 @@
+ __asm volatile ("jsr a6@(-276:W)" \
+ : "=r"(__recvmsg__re) \
+ : "r"(__recvmsg__bn), "r"(__recvmsg_sock), "r"(__recvmsg_msg), "r"(__recvmsg_flags) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a1", "fp0", "fp1", "cc", "memory"); \
+ __recvmsg__re; \
+ }); \
+ _recvmsg__re; \
+@@ -989,7 +989,7 @@
+ __asm volatile ("jsr a6@(-282:W)" \
+ : "=r"(__gethostname__re) \
+ : "r"(__gethostname__bn), "r"(__gethostname_name), "r"(__gethostname_namelen) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __gethostname__re; \
+ }); \
+ _gethostname__re; \
+@@ -1019,7 +1019,7 @@
+ __asm volatile ("jsr a6@(-294:W)" \
+ : "=r"(__SocketBaseTagList__re) \
+ : "r"(__SocketBaseTagList__bn), "r"(__SocketBaseTagList_tags) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __SocketBaseTagList__re; \
+ }); \
+ _SocketBaseTagList__re; \
+@@ -1035,7 +1035,7 @@
+ __asm volatile ("jsr a6@(-690:W)" \
+ : "=r"(__ProcessIsServer__re) \
+ : "r"(__ProcessIsServer__bn), "r"(__ProcessIsServer_pr) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __ProcessIsServer__re; \
+ }); \
+ _ProcessIsServer__re; \
+Index: stdlib_constructor.h
+===================================================================
+RCS file: /cvsroot/clib2/library/stdlib_constructor.h,v
+retrieving revision 1.3
+diff -u -r1.3 stdlib_constructor.h
+--- stdlib_constructor.h 8 Jan 2006 12:04:25 -0000 1.3
++++ stdlib_constructor.h 24 Dec 2010 00:45:25 -0000
+@@ -83,14 +83,14 @@
+ #define CONSTRUCTOR(name,pri) \
+ asm(".stabs \"___INIT_LIST__\",22,0,0,___ctor_" #name); \
+ asm(".stabs \"___INIT_LIST__\",20,0,0," #pri); \
+- VOID __ctor_##name##(VOID); \
+- VOID __ctor_##name##(VOID)
++ VOID __ctor_##name(VOID); \
++ VOID __ctor_##name(VOID)
+
+ #define DESTRUCTOR(name,pri) \
+ asm(".stabs \"___EXIT_LIST__\",22,0,0,___dtor_" #name); \
+ asm(".stabs \"___EXIT_LIST__\",20,0,0," #pri); \
+- VOID __dtor_##name##(VOID); \
+- VOID __dtor_##name##(VOID)
++ VOID __dtor_##name(VOID); \
++ VOID __dtor_##name(VOID)
+
+ #endif /* __amigaos4__ */
+
+Index: stdlib_main.c
+===================================================================
+RCS file: /cvsroot/clib2/library/stdlib_main.c,v
+retrieving revision 1.34
+diff -u -r1.34 stdlib_main.c
+--- stdlib_main.c 30 Sep 2008 14:09:00 -0000 1.34
++++ stdlib_main.c 24 Dec 2010 00:45:25 -0000
+@@ -272,8 +272,10 @@
+ /****************************************************************************/
+
+ STATIC VOID ASM
+-detach_cleanup(REG(d0, LONG UNUSED unused_return_code),REG(d1, BPTR segment_list))
++detach_cleanup()
+ {
++ register BPTR segment_list __asm("d1");
++
+ #if NOT defined(__amigaos4__)
+ {
+ /* The following trick is necessary only under dos.library V40 and below. */
+Index: usergroup_headers.h
+===================================================================
+RCS file: /cvsroot/clib2/library/usergroup_headers.h,v
+retrieving revision 1.8
+diff -u -r1.8 usergroup_headers.h
+--- usergroup_headers.h 8 Jan 2006 12:04:27 -0000 1.8
++++ usergroup_headers.h 24 Dec 2010 00:45:25 -0000
+@@ -147,7 +147,7 @@
+ __asm volatile ("jsr a6@(-30:W)" \
+ : "=r"(__ug_SetupContextTagList__re) \
+ : "r"(__ug_SetupContextTagList__bn), "r"(__ug_SetupContextTagList_name), "r"(__ug_SetupContextTagList_tags) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "fp0", "fp1", "cc", "memory"); \
+ __ug_SetupContextTagList__re; \
+ }); \
+ _ug_SetupContextTagList__re; \
+@@ -177,7 +177,7 @@
+ __asm volatile ("jsr a6@(-42:W)" \
+ : "=r"(__ug_StrError__re) \
+ : "r"(__ug_StrError__bn), "r"(__ug_StrError_err) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __ug_StrError__re; \
+ }); \
+ _ug_StrError__re; \
+@@ -223,7 +223,7 @@
+ __asm volatile ("jsr a6@(-60:W)" \
+ : "=r"(__setreuid__re) \
+ : "r"(__setreuid__bn), "r"(__setreuid_real), "r"(__setreuid_effective) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __setreuid__re; \
+ }); \
+ _setreuid__re; \
+@@ -285,7 +285,7 @@
+ __asm volatile ("jsr a6@(-84:W)" \
+ : "=r"(__setregid__re) \
+ : "r"(__setregid__bn), "r"(__setregid_real), "r"(__setregid_effective) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "a0", "a1", "fp0", "fp1", "cc", "memory"); \
+ __setregid__re; \
+ }); \
+ _setregid__re; \
+@@ -319,7 +319,7 @@
+ __asm volatile ("jsr a6@(-96:W)" \
+ : "=r"(__getgroups__re) \
+ : "r"(__getgroups__bn), "r"(__getgroups_gidsetlen), "r"(__getgroups_gidset) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a0", "fp0", "fp1", "cc", "memory"); \
+ __getgroups__re; \
+ }); \
+ _getgroups__re; \
+@@ -337,7 +337,7 @@
+ __asm volatile ("jsr a6@(-102:W)" \
+ : "=r"(__setgroups__re) \
+ : "r"(__setgroups__bn), "r"(__setgroups_gidsetlen), "r"(__setgroups_gidset) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a0", "fp0", "fp1", "cc", "memory"); \
+ __setgroups__re; \
+ }); \
+ _setgroups__re; \
+@@ -355,7 +355,7 @@
+ __asm volatile ("jsr a6@(-108:W)" \
+ : "=r"(__initgroups__re) \
+ : "r"(__initgroups__bn), "r"(__initgroups_name), "r"(__initgroups_basegid) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a0", "fp0", "fp1", "cc", "memory"); \
+ __initgroups__re; \
+ }); \
+ _initgroups__re; \
+@@ -371,7 +371,7 @@
+ __asm volatile ("jsr a6@(-114:W)" \
+ : "=r"(__getpwnam__re) \
+ : "r"(__getpwnam__bn), "r"(__getpwnam_login) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a0", "fp0", "fp1", "cc", "memory"); \
+ __getpwnam__re; \
+ }); \
+ _getpwnam__re; \
+@@ -433,7 +433,7 @@
+ __asm volatile ("jsr a6@(-144:W)" \
+ : "=r"(__getgrnam__re) \
+ : "r"(__getgrnam__bn), "r"(__getgrnam_name) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a0", "fp0", "fp1", "cc", "memory"); \
+ __getgrnam__re; \
+ }); \
+ _getgrnam__re; \
+@@ -497,7 +497,7 @@
+ __asm volatile ("jsr a6@(-174:W)" \
+ : "=r"(__crypt__re) \
+ : "r"(__crypt__bn), "r"(__crypt_key), "r"(__crypt_set) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "fp0", "fp1", "cc", "memory"); \
+ __crypt__re; \
+ }); \
+ _crypt__re; \
+@@ -517,7 +517,7 @@
+ __asm volatile ("jsr a6@(-180:W)" \
+ : "=r"(__ug_GetSalt__re) \
+ : "r"(__ug_GetSalt__bn), "r"(__ug_GetSalt_user), "r"(__ug_GetSalt_buf), "r"(__ug_GetSalt_size) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "fp0", "fp1", "cc", "memory"); \
+ __ug_GetSalt__re; \
+ }); \
+ _ug_GetSalt__re; \
+@@ -533,7 +533,7 @@
+ __asm volatile ("jsr a6@(-186:W)" \
+ : "=r"(__getpass__re) \
+ : "r"(__getpass__bn), "r"(__getpass_prompt) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a0", "fp0", "fp1", "cc", "memory"); \
+ __getpass__re; \
+ }); \
+ _getpass__re; \
+@@ -621,7 +621,7 @@
+ __asm volatile ("jsr a6@(-222:W)" \
+ : "=r"(__setlogin__re) \
+ : "r"(__setlogin__bn), "r"(__setlogin_name) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a0", "fp0", "fp1", "cc", "memory"); \
+ __setlogin__re; \
+ }); \
+ _setlogin__re; \
+@@ -687,7 +687,7 @@
+ __asm volatile ("jsr a6@(-252:W)" \
+ : "=r"(__setlastlog__re) \
+ : "r"(__setlastlog__bn), "r"(__setlastlog_uid), "r"(__setlastlog_name), "r"(__setlastlog_host) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "fp0", "fp1", "cc", "memory"); \
+ __setlastlog__re; \
+ }); \
+ _setlastlog__re; \
+@@ -703,7 +703,7 @@
+ __asm volatile ("jsr a6@(-258:W)" \
+ : "=r"(__getcredentials__re) \
+ : "r"(__getcredentials__bn), "r"(__getcredentials_task) \
+- : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
++ : "d1", "a1", "fp0", "fp1", "cc", "memory"); \
+ __getcredentials__re; \
+ }); \
+ _getcredentials__re; \
diff --git a/m68k-unknown-amigaos/recipes/patches/gcc/config.gcc.p b/m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.gcc.p
index 0f0438c..0f0438c 100644
--- a/m68k-unknown-amigaos/recipes/patches/gcc/config.gcc.p
+++ b/m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.gcc.p
diff --git a/m68k-unknown-amigaos/recipes/patches/gcc/config.host.p b/m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.host.p
index f13685e..f13685e 100644
--- a/m68k-unknown-amigaos/recipes/patches/gcc/config.host.p
+++ b/m68k-unknown-amigaos/recipes/patches/gcc/gcc.config.host.p
diff --git a/m68k-unknown-amigaos/recipes/patches/gcc/libgcc.config.host.p b/m68k-unknown-amigaos/recipes/patches/gcc/libgcc.config.host.p
new file mode 100644
index 0000000..b02e61f
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/gcc/libgcc.config.host.p
@@ -0,0 +1,11 @@
+--- libgcc/config.host 2010-12-22 16:21:16.000000000 +0000
++++ libgcc/config.host 2010-12-22 16:21:42.000000000 +0000
+@@ -391,6 +391,8 @@
+ ;;
+ m68k-*-rtems*)
+ ;;
++m68k-*-amigaos*)
++ ;;
+ mcore-*-elf)
+ ;;
+ mcore-*-pe*)
diff --git a/m68k-unknown-amigaos/recipes/patches/ndk/ndk.inline.intuition.h.p b/m68k-unknown-amigaos/recipes/patches/ndk/ndk.inline.intuition.h.p
new file mode 100644
index 0000000..9ecfa19
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/ndk/ndk.inline.intuition.h.p
@@ -0,0 +1,18 @@
+--- sys-include/inline/intuition.h 2010-12-23 22:23:29.000000000 +0000
++++ sys-include/inline/intuition.h 2010-12-23 22:18:23.000000000 +0000
+@@ -449,11 +449,14 @@
+ , INTUITION_BASE_NAME)
+
+ #ifndef NO_INLINE_STDARG
+-__inline APTR NewObject(struct IClass * classPtr, CONST_STRPTR classID, ULONG tagList, ...)
++__inline APTR NewObjectI(void *INTUITION_BASE_NAME, struct IClass * classPtr, CONST_STRPTR classID, ULONG tagList, ...)
+ {
+ return NewObjectA(classPtr, classID, (const struct TagItem *) &tagList);
+ }
+
++#define NewObject(classPtr, classID, tagList, ...) \
++ NewObjectI(INTUITION_BASE_NAME, classPtr, classID, tagList, __VA_ARGS__)
++
+ #endif
+
+ #define DisposeObject(object) \