[TOOLCHAIN] Hosted toolchain with musl libc
This commit is contained in:
parent
4f76557b73
commit
ba2ecd725f
2
.gitignore
vendored
2
.gitignore
vendored
@ -4,4 +4,6 @@ sysroot/
|
|||||||
*.img
|
*.img
|
||||||
*.log
|
*.log
|
||||||
kernel/obj/
|
kernel/obj/
|
||||||
|
*.o
|
||||||
|
*.a
|
||||||
tags
|
tags
|
||||||
|
14
Makefile
14
Makefile
@ -4,14 +4,14 @@ ifeq ($(MITTOS64),)
|
|||||||
$(error Build environment is not activated. Please source activate)
|
$(error Build environment is not activated. Please source activate)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: all clean kernel
|
.PHONY: all clean kernel libc
|
||||||
SHELL := bash
|
SHELL := bash
|
||||||
|
|
||||||
CC=$(TARGET)-gcc
|
CC=$(TARGET)-gcc
|
||||||
FLAGS_TO_PASS:= \
|
FLAGS_TO_PASS:= \
|
||||||
CC=$(CC)
|
CC=$(CC)
|
||||||
|
|
||||||
all: kernel
|
all: kernel libc
|
||||||
|
|
||||||
# A trick to only build phony target if necessary
|
# A trick to only build phony target if necessary
|
||||||
kernel:
|
kernel:
|
||||||
@ -20,9 +20,19 @@ ifeq ($(shell make -sqC kernel || echo 1), 1)
|
|||||||
$(MAKE) -C kernel install $(FLAGS_TO_PASS)
|
$(MAKE) -C kernel install $(FLAGS_TO_PASS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
libc:
|
||||||
|
ifeq ($(shell make -sqC libc || echo 1), 1)
|
||||||
|
@(. util/helpers.sh; print_info "Building c library")
|
||||||
|
$(MAKE) -C libc install $(FLAGS_TO_PASS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
tags:
|
||||||
|
ctags -R kernel
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@(. util/helpers.sh; print_info "Cleaning up")
|
@(. util/helpers.sh; print_info "Cleaning up")
|
||||||
$(MAKE) -C kernel clean
|
$(MAKE) -C kernel clean
|
||||||
rm -f mittos64.iso
|
rm -f mittos64.iso
|
||||||
|
$(MAKE) -C libc clean
|
||||||
rm -f qemu-error.log
|
rm -f qemu-error.log
|
||||||
rm -f serial.log
|
rm -f serial.log
|
||||||
|
2
activate
2
activate
@ -10,7 +10,7 @@ export BUILDROOT=`pwd`
|
|||||||
export SYSROOT=${BUILDROOT}/sysroot
|
export SYSROOT=${BUILDROOT}/sysroot
|
||||||
export TOOLCHAIN=${BUILDROOT}/toolchain
|
export TOOLCHAIN=${BUILDROOT}/toolchain
|
||||||
export PATH=${TOOLCHAIN}/bin:${PATH}
|
export PATH=${TOOLCHAIN}/bin:${PATH}
|
||||||
export TARGET=x86_64-elf
|
export TARGET=x86_64-mittos64
|
||||||
|
|
||||||
# shortcuts for some useful tools
|
# shortcuts for some useful tools
|
||||||
alias dbg="x86_64-elf-linux-gdb"
|
alias dbg="x86_64-elf-linux-gdb"
|
||||||
|
30
libc/Makefile
Normal file
30
libc/Makefile
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
ifeq ($(MITTOS64),)
|
||||||
|
$(error Build environment is not activated. Please source activate)
|
||||||
|
endif
|
||||||
|
|
||||||
|
LIBDIR := $(SYSROOT)/usr/lib
|
||||||
|
|
||||||
|
CRT := crt0
|
||||||
|
CRT_OBJ := $(addprefix obj/, $(patsubst %,%.o,$(CRT)))
|
||||||
|
|
||||||
|
ASFLAGS := -ggdb
|
||||||
|
|
||||||
|
all: $(CRT_OBJ)
|
||||||
|
|
||||||
|
OBJ_DIRS := $(sort $(dir $(CRT_OBJ)))
|
||||||
|
$(CRT_OBJ): | $(OBJ_DIRS)
|
||||||
|
$(OBJ_DIRS):
|
||||||
|
mkdir -p $@
|
||||||
|
|
||||||
|
obj/%.o:%.S
|
||||||
|
$(COMPILE.S) $^ -o $@
|
||||||
|
|
||||||
|
$(LIBDIR)/%: obj/%
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
install: $(patsubst %,$(LIBDIR)/%.o,$(CRT))
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf obj/
|
||||||
|
|
||||||
|
.PHONY: all clean install
|
25
libc/crt0.S
Normal file
25
libc/crt0.S
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
.intel_syntax noprefix
|
||||||
|
.section .text
|
||||||
|
.global _start
|
||||||
|
|
||||||
|
_start:
|
||||||
|
movq rbp, 0
|
||||||
|
push rbp
|
||||||
|
push rbp
|
||||||
|
mov rbp, rsp
|
||||||
|
|
||||||
|
push rsi
|
||||||
|
push rdi
|
||||||
|
|
||||||
|
call _init
|
||||||
|
|
||||||
|
pop rdi
|
||||||
|
pop rsi
|
||||||
|
|
||||||
|
call main
|
||||||
|
|
||||||
|
call _fini
|
||||||
|
|
||||||
|
jmp $
|
||||||
|
|
||||||
|
.size _start, . - _start
|
113
util/binutils.patch
Normal file
113
util/binutils.patch
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
--- config.sub 2016-12-01 11:48:25.000000000 +0100
|
||||||
|
+++ config.sub 2016-12-01 11:48:36.000000000 +0100
|
||||||
|
@@ -1377,6 +1377,7 @@
|
||||||
|
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||||
|
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||||
|
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
|
||||||
|
+ | -mittos64* \
|
||||||
|
| -sym* | -kopensolaris* | -plan9* \
|
||||||
|
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
||||||
|
| -aos* | -aros* | -cloudabi* \
|
||||||
|
|
||||||
|
--- bfd/config.bfd 2016-12-01 11:52:56.000000000 +0100
|
||||||
|
+++ bfd/config.bfd 2016-12-01 11:57:59.000000000 +0100
|
||||||
|
@@ -168,6 +168,18 @@
|
||||||
|
;;
|
||||||
|
|
||||||
|
# START OF targmatch.h
|
||||||
|
+ i[3-7]86-*-mittos64*)
|
||||||
|
+ targ_defvec=i386_elf32_vec
|
||||||
|
+ targ_selvecs=
|
||||||
|
+ targ64_selvecs=x86_64_elf64_vec
|
||||||
|
+ ;;
|
||||||
|
+#ifdef BFD64
|
||||||
|
+ x86_64-*-mittos64*)
|
||||||
|
+ targ_defvec=x86_64_elf64_vec
|
||||||
|
+ targ_selvecs=i386_elf32_vec
|
||||||
|
+ want64=true
|
||||||
|
+ ;;
|
||||||
|
+#endif
|
||||||
|
#ifdef BFD64
|
||||||
|
aarch64-*-elf)
|
||||||
|
targ_defvec=aarch64_elf64_le_vec
|
||||||
|
|
||||||
|
--- gas/configure.tgt 2016-12-01 12:00:43.000000000 +0100
|
||||||
|
+++ gas/configure.tgt 2016-12-01 12:02:07.000000000 +0100
|
||||||
|
@@ -120,6 +120,7 @@
|
||||||
|
generic_target=${cpu_type}-$vendor-$os
|
||||||
|
# Note: This table is alpha-sorted, please try to keep it that way.
|
||||||
|
case ${generic_target} in
|
||||||
|
+ i386-*-mittos64*) fmt=elf em=gnu;;
|
||||||
|
aarch64*-*-elf) fmt=elf;;
|
||||||
|
aarch64*-*-linux*) fmt=elf em=linux ;;
|
||||||
|
|
||||||
|
|
||||||
|
--- ld/configure.tgt 2016-12-01 12:03:56.000000000 +0100
|
||||||
|
+++ ld/configure.tgt 2016-12-01 12:09:12.000000000 +0100
|
||||||
|
@@ -45,6 +45,15 @@
|
||||||
|
# architecture variants should be kept together even if their names
|
||||||
|
# break the alpha sorting.
|
||||||
|
case "${targ}" in
|
||||||
|
+i[3-7]86-*-mittos64*)
|
||||||
|
+ targ_emul=elf_i386_mittos64
|
||||||
|
+ targ_extra_emuls=elf_i386
|
||||||
|
+ targ64_extra_emuls="elf_x86_64_mittos64 elf_x86_64"
|
||||||
|
+ ;;
|
||||||
|
+x86_64-*-mittos64*)
|
||||||
|
+ targ_emul=elf_x86_64_mittos64
|
||||||
|
+ targ_extra_emuls="elf_i386_mittos64 elf_x86_64 elf_i386"
|
||||||
|
+ ;;
|
||||||
|
aarch64_be-*-elf) targ_emul=aarch64elfb
|
||||||
|
targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
|
||||||
|
aarch64-*-elf) targ_emul=aarch64elf
|
||||||
|
|
||||||
|
--- /dev/null 2016-12-01 12:13:02.000000000 +0100
|
||||||
|
+++ ld/emulparams/elf_i386_mittos64.sh 2016-12-01 12:14:00.000000000 +0100
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+. ${srcdir}/emulparams/elf_i386.sh
|
||||||
|
|
||||||
|
--- /dev/null 2016-12-01 12:15:22.000000000 +0100
|
||||||
|
+++ ld/emulparams/elf_x86_64_mittos64.sh 2016-12-01 12:15:52.000000000 +0100
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+. ${srcdir}/emulparams/elf_x86_64.sh
|
||||||
|
|
||||||
|
--- ld/Makefile.am 2016-12-01 12:22:53.000000000 +0100
|
||||||
|
+++ ld/Makefile.am 2016-12-01 13:26:20.000000000 +0100
|
||||||
|
@@ -280,6 +280,7 @@
|
||||||
|
eelf32xstormy16.c \
|
||||||
|
eelf32xtensa.c \
|
||||||
|
eelf_i386.c \
|
||||||
|
+ eelf_i386_mittos64.c \
|
||||||
|
eelf_i386_be.c \
|
||||||
|
eelf_i386_chaos.c \
|
||||||
|
eelf_i386_fbsd.c \
|
||||||
|
@@ -496,6 +497,7 @@
|
||||||
|
eelf_k1om.c \
|
||||||
|
eelf_k1om_fbsd.c \
|
||||||
|
eelf_x86_64.c \
|
||||||
|
+ eelf_x86_64_mittos64.c \
|
||||||
|
eelf_x86_64_cloudabi.c \
|
||||||
|
eelf_x86_64_fbsd.c \
|
||||||
|
eelf_x86_64_nacl.c \
|
||||||
|
@@ -1295,6 +1297,10 @@
|
||||||
|
eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \
|
||||||
|
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||||
|
|
||||||
|
+eelf_i386_mittos64.c: $(srcdir)/emulparams/elf_i386_mittos64.sh \
|
||||||
|
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||||
|
+ ${GENSCRIPTS} elf_i386_mittos64 "$(tdir_elf_i386_mittos64)"
|
||||||
|
+
|
||||||
|
eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \
|
||||||
|
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||||
|
|
||||||
|
@@ -1987,6 +1993,10 @@
|
||||||
|
eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
|
||||||
|
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||||
|
|
||||||
|
+eelf_x86_64_mittos64.c: $(srcdir)/emulparams/elf_x86_64_mittos64.sh \
|
||||||
|
+ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
||||||
|
+ ${GENSCRIPTS} elf_x86_64_mittos64 "$(tdir_elf_x86_64_mittos64)"
|
||||||
|
+
|
||||||
|
eelf_x86_64_cloudabi.c: $(srcdir)/emulparams/elf_x86_64_cloudabi.sh \
|
||||||
|
$(srcdir)/emulparams/elf_x86_64.sh \
|
||||||
|
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
|
@ -4,33 +4,60 @@
|
|||||||
|
|
||||||
bindir=${TOOLCHAIN}/bin
|
bindir=${TOOLCHAIN}/bin
|
||||||
|
|
||||||
packages=(binutils gcc gdb)
|
packages=(automake autoconf musl_headers binutils gcc musl gdb)
|
||||||
if [[ `uname` == 'Darwin' ]]; then
|
if [[ `uname` == 'Darwin' ]]; then
|
||||||
packages=("${packages[@]}" objconv)
|
packages=("${packages[@]}" objconv)
|
||||||
fi
|
fi
|
||||||
packages=("${packages[@]}" grub)
|
packages=("${packages[@]}" grub)
|
||||||
|
|
||||||
|
musl_checkfile=${SYSROOT}/usr/lib/libc.a
|
||||||
|
musl_filename=musl
|
||||||
|
musl_url=git://git.musl-libc.org/musl
|
||||||
|
musl_config="--target=${TARGET} \
|
||||||
|
--prefix=${SYSROOT}/usr \
|
||||||
|
--disable-shared \
|
||||||
|
--enable-debug \
|
||||||
|
CFLAGS=-O0"
|
||||||
|
|
||||||
|
musl_headers_checkfile=${SYSROOT}/usr/include/complex.h
|
||||||
|
musl_headers_filename=${musl_filename}
|
||||||
|
musl_headers_url=${musl_url}
|
||||||
|
function musl_headers_install() {
|
||||||
|
local package=musl
|
||||||
|
|
||||||
|
pushd ${STASH}/${package} >/dev/null
|
||||||
|
|
||||||
|
echo "Configuring"
|
||||||
|
echo "ARCH=x86_64">config.mak
|
||||||
|
echo "prefix=${SYSROOT}/usr">>config.mak
|
||||||
|
echo "includedir=\$(prefix)/include">> config.mak
|
||||||
|
echo "Compiling"
|
||||||
|
make install-headers \
|
||||||
|
>/dev/null 2>>"${STASH}/error-${package}.log" || fail
|
||||||
|
popd >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
# Binutils 2.26
|
# Binutils 2.26
|
||||||
# Build with --with-sysroot for use in the future
|
|
||||||
binutils_checkfile=${bindir}/${TARGET}-ld
|
binutils_checkfile=${bindir}/${TARGET}-ld
|
||||||
binutils_filename=binutils-2.26
|
binutils_filename=binutils-2.26
|
||||||
binutils_url=ftp://ftp.gnu.org/gnu/binutils/${binutils_filename}.tar.gz
|
binutils_url=ftp://ftp.gnu.org/gnu/binutils/${binutils_filename}.tar.gz
|
||||||
binutils_config="--target=${TARGET} \
|
binutils_config="--target=${TARGET} \
|
||||||
--with-sysroot \
|
--with-sysroot=${SYSROOT} \
|
||||||
--disable-nls \
|
--disable-nls \
|
||||||
--disable-werror"
|
--disable-werror"
|
||||||
|
binutils_patchcmd="patch -p0 -N < ${BUILDROOT}/util/binutils.patch; cd ld; automake"
|
||||||
|
|
||||||
# GCC 6.1.0
|
# GCC 6.1.0
|
||||||
# Build with --without-headers for now - this will be replaced later
|
|
||||||
gcc_checkfile=${bindir}/${TARGET}-gcc
|
gcc_checkfile=${bindir}/${TARGET}-gcc
|
||||||
gcc_filename=gcc-6.1.0
|
gcc_filename=gcc-6.1.0
|
||||||
gcc_url=ftp://ftp.gnu.org/gnu/gcc/${gcc_filename}/${gcc_filename}.tar.gz
|
gcc_url=ftp://ftp.gnu.org/gnu/gcc/${gcc_filename}/${gcc_filename}.tar.gz
|
||||||
gcc_config="--target=${TARGET} \
|
gcc_config="--target=${TARGET} \
|
||||||
--disable-nls \
|
--disable-nls \
|
||||||
--enable-languages=c,c++ \
|
--enable-languages=c,c++ \
|
||||||
--without-headers"
|
--with-sysroot=${SYSROOT}"
|
||||||
gcc_make="all-gcc all-target-libgcc"
|
gcc_make="all-gcc all-target-libgcc"
|
||||||
gcc_install="install-gcc install-target-libgcc"
|
gcc_install="install-gcc install-target-libgcc"
|
||||||
|
gcc_patchcmd="patch -p0 -N < ${BUILDROOT}/util/gcc.patch; cd libstdc++-v3; autoconf"
|
||||||
|
|
||||||
# GDB 7.12
|
# GDB 7.12
|
||||||
gdb_checkfile=${bindir}/x86_64-elf-linux-gdb
|
gdb_checkfile=${bindir}/x86_64-elf-linux-gdb
|
||||||
@ -73,6 +100,18 @@ grub_config="--target=x86_64-elf \
|
|||||||
TARGET_RANLIB=${TARGET}-ranlib"
|
TARGET_RANLIB=${TARGET}-ranlib"
|
||||||
grub_patchcmd="autogen.sh"
|
grub_patchcmd="autogen.sh"
|
||||||
|
|
||||||
|
# automake 1.11.1
|
||||||
|
# GCC requires exactly this version
|
||||||
|
automake_checkfile=${TOOLCHAIN}/bin/automake
|
||||||
|
automake_filename=automake-1.11.1
|
||||||
|
automake_url=ftp://ftp.gnu.org/gnu/automake/${automake_filename}.tar.gz
|
||||||
|
|
||||||
|
# autoconf 2.64
|
||||||
|
# GCC requires exactly this version
|
||||||
|
autoconf_checkfile=${TOOLCHAIN}/bin/autoconf
|
||||||
|
autoconf_filename=autoconf-2.64
|
||||||
|
autoconf_url=ftp://ftp.gnu.org/gnu/autoconf/${autoconf_filename}.tar.gz
|
||||||
|
|
||||||
function checkall() {
|
function checkall() {
|
||||||
for package in "${packages[@]}"
|
for package in "${packages[@]}"
|
||||||
do
|
do
|
||||||
@ -96,6 +135,7 @@ function main() {
|
|||||||
print_info "Preparing toolchain"
|
print_info "Preparing toolchain"
|
||||||
|
|
||||||
mkdir -p "${STASH}"
|
mkdir -p "${STASH}"
|
||||||
|
mkdir -p "${SYSROOT}/usr/include"
|
||||||
|
|
||||||
PATH=${TOOLCHAIN}/bin:${PATH}
|
PATH=${TOOLCHAIN}/bin:${PATH}
|
||||||
for package in "${packages[@]}"
|
for package in "${packages[@]}"
|
||||||
|
108
util/gcc.patch
Normal file
108
util/gcc.patch
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
--- config.sub 2016-12-01 14:15:39.000000000 +0100
|
||||||
|
+++ config.sub 2016-12-01 14:16:53.000000000 +0100
|
||||||
|
@@ -1376,6 +1376,7 @@
|
||||||
|
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||||
|
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||||
|
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
|
||||||
|
+ | -mittos64* \
|
||||||
|
| -sym* | -kopensolaris* | -plan9* \
|
||||||
|
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
||||||
|
| -aos* | -aros* | -cloudabi* | -sortix* \
|
||||||
|
|
||||||
|
--- gcc/config.gcc 2016-12-01 16:08:28.000000000 +0100
|
||||||
|
+++ gcc/config.gcc 2016-12-01 16:08:12.000000000 +0100
|
||||||
|
@@ -612,6 +612,12 @@
|
||||||
|
|
||||||
|
# Common parts for widely ported systems.
|
||||||
|
case ${target} in
|
||||||
|
+*-*-mittos64)
|
||||||
|
+ gas=yes
|
||||||
|
+ gnu_ld=yes
|
||||||
|
+ default_use_cxa_atexit=yes
|
||||||
|
+ use_gcc_stdint=wrap
|
||||||
|
+ ;;
|
||||||
|
*-*-darwin*)
|
||||||
|
tmake_file="t-darwin ${cpu_type}/t-darwin"
|
||||||
|
tm_file="${tm_file} darwin.h"
|
||||||
|
@@ -907,6 +912,12 @@
|
||||||
|
esac
|
||||||
|
|
||||||
|
case ${target} in
|
||||||
|
+i[34567]86-*-mittos64*)
|
||||||
|
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h mittos64.h"
|
||||||
|
+ ;;
|
||||||
|
+x86_64-*-mittos64*)
|
||||||
|
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h mittos64.h"
|
||||||
|
+ ;;
|
||||||
|
aarch64*-*-elf | aarch64*-*-rtems*)
|
||||||
|
tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
|
||||||
|
tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
|
||||||
|
|
||||||
|
--- /dev/null 2016-12-01 16:23:01.000000000 +0100
|
||||||
|
+++ gcc/config/mittos64.h 2016-12-01 16:15:32.000000000 +0100
|
||||||
|
@@ -0,0 +1,20 @@
|
||||||
|
+#undef TARGET_MITTOS64
|
||||||
|
+#define TARGET_MITTOS64 1
|
||||||
|
+
|
||||||
|
+#define LIB_SPEC "-lc"
|
||||||
|
+
|
||||||
|
+#define STARTFILE_SPEC "crt0.o%s crti.o%s crtbegin.o%s"
|
||||||
|
+#define ENDFILE_SPEC "crtend.o%s crtn.o%s"
|
||||||
|
+
|
||||||
|
+#undef NO_IMPLICIT_EXTERN_C
|
||||||
|
+#define NO_IMPLICIT_EXTERN_C 1
|
||||||
|
+
|
||||||
|
+#undef TARGET_OS_CPP_BUILTINS
|
||||||
|
+#define TARGET_OS_CPP_BUILTINS() \
|
||||||
|
+ do { \
|
||||||
|
+ builtin_define ("__mittos64__"); \
|
||||||
|
+ builtin_define ("__unix__"); \
|
||||||
|
+ builtin_assert ("system=mittos64"); \
|
||||||
|
+ builtin_assert ("system=unix"); \
|
||||||
|
+ builtin_assert ("system=posix"); \
|
||||||
|
+ } while(0);
|
||||||
|
|
||||||
|
--- libstdc++-v3/crossconfig.m4 2016-12-01 16:16:26.000000000 +0100
|
||||||
|
+++ libstdc++-v3/crossconfig.m4 2016-12-01 16:17:22.000000000 +0100
|
||||||
|
@@ -5,6 +5,12 @@
|
||||||
|
AC_DEFUN([GLIBCXX_CROSSCONFIG],[
|
||||||
|
# Base decisions on target environment.
|
||||||
|
case "${host}" in
|
||||||
|
+ *-mittos64*)
|
||||||
|
+ GLIBCXX_CHECK_COMPILER_FEATURES
|
||||||
|
+ GLIBCXX_CHECK_LINKER_FEATURES
|
||||||
|
+ GLIBCXX_CHECK_MATH_SUPPORT
|
||||||
|
+ GLIBCXX_CHECK_STDLIB_SUPPORT
|
||||||
|
+ ;;
|
||||||
|
arm*-*-symbianelf*)
|
||||||
|
# This is a freestanding configuration; there is nothing to do here.
|
||||||
|
;;
|
||||||
|
|
||||||
|
--- libgcc/config.host 2016-12-01 16:17:44.000000000 +0100
|
||||||
|
+++ libgcc/config.host 2016-12-01 16:20:42.000000000 +0100
|
||||||
|
@@ -327,6 +327,14 @@
|
||||||
|
esac
|
||||||
|
|
||||||
|
case ${host} in
|
||||||
|
+i[34567]86-*-mittos64*)
|
||||||
|
+ extra_parts="$extra_parts crtbegin.o crtend.o"
|
||||||
|
+ tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
|
||||||
|
+ ;;
|
||||||
|
+x86_64-*-mittos64*)
|
||||||
|
+ extra_parts="$extra_parts crtbegin.o crtend.o"
|
||||||
|
+ tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
|
||||||
|
+ ;;
|
||||||
|
aarch64*-*-elf | aarch64*-*-rtems*)
|
||||||
|
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
|
||||||
|
extra_parts="$extra_parts crtfastmath.o"
|
||||||
|
|
||||||
|
--- fixincludes/mkfixinc.sh 2016-12-01 16:22:08.000000000 +0100
|
||||||
|
+++ fixincludes/mkfixinc.sh 2016-12-01 16:22:41.000000000 +0100
|
||||||
|
@@ -11,6 +11,7 @@
|
||||||
|
|
||||||
|
# Check for special fix rules for particular targets
|
||||||
|
case $machine in
|
||||||
|
+ *-mittos64* | \
|
||||||
|
i?86-*-cygwin* | \
|
||||||
|
i?86-*-mingw32* | \
|
||||||
|
x86_64-*-mingw32* | \
|
Loading…
x
Reference in New Issue
Block a user