diff -r -x CVS -N -U 3 dist.orig/gcc/config.gcc dist/gcc/config.gcc --- dist.orig/gcc/config.gcc 2013-07-10 19:52:43.574614401 +0200 +++ dist/gcc/config.gcc 2013-07-10 19:53:27.218820689 +0200 @@ -799,7 +799,7 @@ tmake_file="arm/t-arm arm/t-arm-elf" tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; -arm*-*-eabi* | arm*-*-symbianelf* ) +arm*-*-eabi* | arm*-*-symbianelf* | 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. @@ -814,6 +814,12 @@ extra_options="${extra_options} arm/eabi.opt" use_gcc_stdint=wrap ;; + arm*-*-minix*) + 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 + ;; arm*-*-symbianelf*) tm_file="${tm_file} arm/symbian.h" # We do not include t-bpabi for Symbian OS because the system @@ -1148,6 +1154,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-07-10 19:52:45.114645204 +0200 +++ dist/gcc/gcov.c 2013-07-10 19:53:27.218820689 +0200 @@ -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-07-10 19:52:43.677949802 +0200 +++ dist/gcc/ginclude/stddef.h 2013-07-10 19:53:27.218820689 +0200 @@ -60,6 +60,9 @@ #if defined (__FreeBSD__) && (__FreeBSD__ >= 5) #include #endif +#if defined (__minix) +#include +#endif /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are defined if the corresponding type is *not* defined. diff -r -x CVS -N -U 3 dist.orig/gcc/libgcov.c dist/gcc/libgcov.c --- dist.orig/gcc/libgcov.c 2013-07-10 19:52:43.681283201 +0200 +++ dist/gcc/libgcov.c 2013-07-10 19:53:27.218820689 +0200 @@ -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-07-10 19:52:46.844679808 +0200 +++ dist/libcpp/configure 2013-07-10 19:55:08.447512095 +0200 @@ -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-07-10 19:52:52.828132820 +0200 +++ dist/libgcc/config.host 2013-07-10 19:53:27.218820689 +0200 @@ -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*)