minix/external/gpl3/gcc/patches/0001-minix.patch

132 lines
3.9 KiB
Diff
Raw Normal View History

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 <sys/_types.h>
#endif
+#if defined (__minix)
+#include <sys/types.h>
+#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*)