diff -r -x CVS -N -U 3 dist.orig/gcc/config/t-minix dist/gcc/config/t-minix --- dist.orig/gcc/config/t-minix 1970-01-01 01:00:00.000000000 +0100 +++ dist/gcc/config/t-minix 2013-12-11 15:12:25.998875226 +0100 @@ -0,0 +1,5 @@ +# Compile crtbeginS.o and crtendS.o with pic. +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC + +# Compile libgcc.a with pic. +TARGET_LIBGCC2_CFLAGS += -fPIC diff -r -x CVS -N -U 3 dist.orig/gcc/config.gcc dist/gcc/config.gcc --- dist.orig/gcc/config.gcc 2013-12-11 14:53:00.134506110 +0100 +++ dist/gcc/config.gcc 2013-12-11 23:21:36.316937279 +0100 @@ -839,6 +839,22 @@ tm_file="${tm_file} arm/aout.h arm/arm.h" tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; +arm*-*-minix*) + # The BPABI long long divmod functions return a 128-bit value in + # registers r0-r3. Correctly modeling that requires the use of + # TImode. + need_64bit_hwint=yes + default_use_cxa_atexit=yes + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/bpabi.h" + tmake_file="arm/t-arm arm/t-arm-elf" + + tm_file="$tm_file arm/eabi.h newlib-stdint.h minix-spec.h arm/minix.h minix.h" + tmake_file="${tmake_file} arm/t-bpabi t-minix" + #extra_options="${extra_options} arm/eabi.opt" + #use_gcc_stdint=wrap + + tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" + ;; arm*-*-rtems*) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h" tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" @@ -1163,6 +1179,13 @@ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h" tmake_file="${tmake_file} i386/t-crtstuff" ;; +i[34567]86-*-minix) + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h minix-spec.h i386/minix.h minix.h" + tmake_file="${tmake_file} t-minix" + gas=yes + gnu_ld=yes + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" + ;; i[34567]86-*-netbsdelf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h" tmake_file="${tmake_file} i386/t-crtstuff" diff -r -x CVS -N -U 3 dist.orig/gcc/gcov.c dist/gcc/gcov.c --- dist.orig/gcc/gcov.c 2013-12-11 14:53:22.194840755 +0100 +++ dist/gcc/gcov.c 2013-12-11 15:12:25.988875073 +0100 @@ -58,6 +58,10 @@ #define STRING_SIZE 200 +#if defined(__minix) +#define block_t gcc_block_t +#endif + struct function_info; struct block_info; struct source_info; diff -r -x CVS -N -U 3 dist.orig/gcc/ginclude/stddef.h dist/gcc/ginclude/stddef.h --- dist.orig/gcc/ginclude/stddef.h 2013-12-11 14:53:05.001246600 +0100 +++ dist/gcc/ginclude/stddef.h 2013-12-11 19:48:19.010387258 +0100 @@ -51,7 +51,7 @@ /* On 4.3bsd-net2, make sure ansi.h is included, so we have one less case to deal with in the following. */ -#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__) +#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__) || defined(__minix) #ifndef inhibit_libc #include #endif diff -r -x CVS -N -U 3 dist.orig/gcc/libgcov.c dist/gcc/libgcov.c --- dist.orig/gcc/libgcov.c 2013-12-11 14:53:05.064580896 +0100 +++ dist/gcc/libgcov.c 2013-12-11 15:12:25.988875073 +0100 @@ -40,6 +40,11 @@ #define GCOV_LINKAGE /* nothing */ #endif #endif + +#ifndef L_gcov_merge_add +#include "gcov-minix-fs-wrapper.h" +#endif + #include "gcov-io.h" #if defined(inhibit_libc) @@ -152,7 +157,7 @@ in two separate programs, and we must keep the two program summaries separate. */ -static void +void gcov_exit (void) { struct gcov_info *gi_ptr; @@ -564,7 +569,7 @@ gcov_crc32 = crc32; if (!gcov_list) - atexit (gcov_exit); + atexit (gcov_exit_wrapper); info->next = gcov_list; gcov_list = info; diff -r -x CVS -N -U 3 dist.orig/libcpp/configure dist/libcpp/configure --- dist.orig/libcpp/configure 2013-12-11 14:53:25.704893999 +0100 +++ dist/libcpp/configure 2013-12-11 15:12:25.988875073 +0100 @@ -6870,6 +6870,7 @@ case $target in alpha*-*-* | \ arm*-*-*eabi* | \ + arm*-*-minix* | \ arm*-*-symbianelf* | \ x86_64-*-* | \ ia64-*-* | \ diff -r -x CVS -N -U 3 dist.orig/libgcc/config.host dist/libgcc/config.host --- dist.orig/libgcc/config.host 2013-12-11 14:54:49.009491158 +0100 +++ dist/libgcc/config.host 2013-12-11 15:12:25.988875073 +0100 @@ -203,6 +203,8 @@ ;; arm*-*-freebsd*) ;; +arm*-*-minix*) + ;; arm*-*-netbsdelf*) ;; arm*-*-netbsd*) @@ -280,6 +282,8 @@ ;; x86_64-*-elf*) ;; +i[34567]86-*-minix*) + ;; i[34567]86-*-freebsd*) ;; x86_64-*-freebsd*)