diff options
Diffstat (limited to 'toolchain')
-rw-r--r-- | toolchain/eglibc/Makefile | 7 | ||||
-rw-r--r-- | toolchain/gcc/Makefile | 4 | ||||
-rw-r--r-- | toolchain/gcc/Makefile.inc | 7 | ||||
-rw-r--r-- | toolchain/gcc/patches/4.7.3/musl-sh.patch | 2 | ||||
-rw-r--r-- | toolchain/gcc/patches/4.7.3/musl-sparc.patch | 6 | ||||
-rw-r--r-- | toolchain/gcc/patches/4.8.2/cflags.patch | 231 | ||||
-rw-r--r-- | toolchain/gcc/patches/4.8.2/musl-stubs.patch | 49 | ||||
-rw-r--r-- | toolchain/glibc/Makefile | 6 | ||||
-rw-r--r-- | toolchain/kernel-headers/Makefile | 2 | ||||
-rw-r--r-- | toolchain/musl/Makefile | 7 | ||||
-rw-r--r-- | toolchain/musl/patches/mips64.patch | 12 | ||||
-rw-r--r-- | toolchain/musl/patches/musl-git-20140301.patch | 8177 | ||||
-rw-r--r-- | toolchain/uClibc/Makefile | 4 |
13 files changed, 8489 insertions, 25 deletions
diff --git a/toolchain/eglibc/Makefile b/toolchain/eglibc/Makefile index 5ac8e493d..66c326a93 100644 --- a/toolchain/eglibc/Makefile +++ b/toolchain/eglibc/Makefile @@ -84,11 +84,16 @@ $(WRKBUILD)/.installed: $(EGLIBC_BUILD_DIR_FINAL)/libc.so $(MAKE) -C $(EGLIBC_BUILD_DIR_FINAL) install_root=$(STAGING_TARGET_DIR) install ${INSTALL_DIR} ${STAGING_TARGET_DIR}/etc ${INSTALL_DATA} ${WRKBUILD}/libc/posix/gai.conf ${STAGING_TARGET_DIR}/etc/ - ${INSTALL_DATA} ${WRKBUILD}/libc/nscd/nscd.conf ${STAGING_TARGET_DIR}/etc/ ${INSTALL_DATA} ${WRKBUILD}/libc/nss/nsswitch.conf ${STAGING_TARGET_DIR}/etc/ touch $@ $(WRKBUILD)/.fixup: + -find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete + -find $(STAGING_TARGET_DIR) -type -f -name \*_pic\* -delete + rm -rf $(STAGING_TARGET_DIR)/usr/share/locale $(STAGING_TARGET_DIR)/usr/share/i18n + rm -rf $(STAGING_TARGET_DIR)/usr/lib/gconv + PATH="$(TARGET_PATH)" prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR) + prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR) touch $@ include ${TOPDIR}/mk/toolchain.mk diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index 57053e067..4b0212f77 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -18,6 +18,8 @@ GCC_CONFOPTS= --prefix=$(STAGING_HOST_DIR) \ --with-libelf=$(STAGING_HOST_DIR) \ --disable-__cxa_atexit \ --with-gnu-ld \ + --disable-libsanitizer \ + --disable-libitm \ --disable-libmudflap \ --disable-libgomp \ --disable-decimal-float \ @@ -71,7 +73,7 @@ else GCC_CONFOPTS+= --enable-tls endif -ifeq ($(ARCH),powerpc) +ifeq ($(ADK_LINUX_PPC),y) ifeq ($(ADK_TARGET_LIBC),uclibc) GCC_CONFOPTS+= --disable-target-optspace --with-long-double-128 --enable-secureplt else diff --git a/toolchain/gcc/Makefile.inc b/toolchain/gcc/Makefile.inc index 689de3b63..86a0a5992 100644 --- a/toolchain/gcc/Makefile.inc +++ b/toolchain/gcc/Makefile.inc @@ -2,15 +2,8 @@ # material, please see the LICENCE file in the top-level directory. PKG_NAME:= gcc - -ifeq ($(ADK_LINUX_MICROBLAZE),y) PKG_VERSION:= 4.8.2 PKG_MD5SUM:= a3d7d63b9cb6b6ea049469a0c4a43c9d -else -PKG_VERSION:= 4.7.3 -PKG_MD5SUM:= 86f428a30379bdee0224e353ee2f999e -endif - PKG_RELEASE:= 1 PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/} DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2 diff --git a/toolchain/gcc/patches/4.7.3/musl-sh.patch b/toolchain/gcc/patches/4.7.3/musl-sh.patch index 7738f266e..fbf06082a 100644 --- a/toolchain/gcc/patches/4.7.3/musl-sh.patch +++ b/toolchain/gcc/patches/4.7.3/musl-sh.patch @@ -5,7 +5,7 @@ diff -Nur gcc-4.7.3.orig/gcc/config/sh/linux.h gcc-4.7.3/gcc/config/sh/linux.h #define TARGET_ASM_FILE_END file_end_indicate_exec_stack #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sh.1" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sh.so.1" #undef SUBTARGET_LINK_EMUL_SUFFIX #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" diff --git a/toolchain/gcc/patches/4.7.3/musl-sparc.patch b/toolchain/gcc/patches/4.7.3/musl-sparc.patch index 228b8522d..7c9214f07 100644 --- a/toolchain/gcc/patches/4.7.3/musl-sparc.patch +++ b/toolchain/gcc/patches/4.7.3/musl-sparc.patch @@ -5,8 +5,8 @@ diff -Nur gcc-4.7.3.orig/gcc/config/sparc/linux64.h gcc-4.7.3/gcc/config/sparc/l #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" -+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-sparc.1" -+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-sparc.1" ++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-sparc.so.1" ++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-sparc.so.1" + #ifdef SPARC_BI_ARCH @@ -18,7 +18,7 @@ diff -Nur gcc-4.7.3.orig/gcc/config/sparc/linux.h gcc-4.7.3/gcc/config/sparc/lin done. */ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sparc.1" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sparc.so.1" #undef LINK_SPEC #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ diff --git a/toolchain/gcc/patches/4.8.2/cflags.patch b/toolchain/gcc/patches/4.8.2/cflags.patch new file mode 100644 index 000000000..4f9de8069 --- /dev/null +++ b/toolchain/gcc/patches/4.8.2/cflags.patch @@ -0,0 +1,231 @@ +diff -Nur gcc-4.8.2.orig/gcc/c-family/c.opt gcc-4.8.2/gcc/c-family/c.opt +--- gcc-4.8.2.orig/gcc/c-family/c.opt 2013-01-19 06:25:25.000000000 +0100 ++++ gcc-4.8.2/gcc/c-family/c.opt 2014-02-23 20:22:48.000000000 +0100 +@@ -379,6 +379,10 @@ + C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration) + This switch is deprecated; use -Werror=implicit-function-declaration instead + ++Werror-maybe-reset ++C ObjC C++ ObjC++ ++; Documented in common.opt ++ + Wfloat-equal + C ObjC C++ ObjC++ Var(warn_float_equal) Warning + Warn if testing floating point numbers for equality +@@ -949,6 +953,9 @@ + fhonor-std + C++ ObjC++ Ignore Warn(switch %qs is no longer supported) + ++fhonour-copts ++C ObjC C++ ObjC++ RejectNegative ++ + fhosted + C ObjC + Assume normal C execution environment +diff -Nur gcc-4.8.2.orig/gcc/c-family/c-opts.c gcc-4.8.2/gcc/c-family/c-opts.c +--- gcc-4.8.2.orig/gcc/c-family/c-opts.c 2013-02-18 20:42:56.000000000 +0100 ++++ gcc-4.8.2/gcc/c-family/c-opts.c 2014-02-23 20:22:48.000000000 +0100 +@@ -104,6 +104,9 @@ + /* Whether any standard preincluded header has been preincluded. */ + static bool done_preinclude; + ++/* Check if a port honours COPTS. */ ++static int honour_copts = 0; ++ + static void handle_OPT_d (const char *); + static void set_std_cxx98 (int); + static void set_std_cxx11 (int); +@@ -491,6 +494,12 @@ + flag_no_builtin = !value; + break; + ++ case OPT_fhonour_copts: ++ if (c_language == clk_c) { ++ honour_copts++; ++ } ++ break; ++ + case OPT_fconstant_string_class_: + constant_string_class_name = arg; + break; +@@ -1027,6 +1036,47 @@ + return false; + } + ++ if (c_language == clk_c) { ++ char *ev = getenv ("GCC_HONOUR_COPTS"); ++ int evv; ++ if (ev == NULL) ++ evv = -1; ++ else if ((*ev == '0') || (*ev == '\0')) ++ evv = 0; ++ else if (*ev == '1') ++ evv = 1; ++ else if (*ev == '2') ++ evv = 2; ++ else if (*ev == 's') ++ evv = -1; ++ else { ++ warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1"); ++ evv = 1; /* maybe depend this on something like MIRBSD_NATIVE? */ ++ } ++ if (evv == 1) { ++ if (honour_copts == 0) { ++ error ("someone does not honour COPTS at all in lenient mode"); ++ return false; ++ } else if (honour_copts != 1) { ++ warning (0, "someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ } ++ } else if (evv == 2) { ++ if (honour_copts == 0) { ++ error ("someone does not honour COPTS at all in strict mode"); ++ return false; ++ } else if (honour_copts != 1) { ++ error ("someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ return false; ++ } ++ } else if (evv == 0) { ++ if (honour_copts != 1) ++ inform (0, "someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ } ++ } ++ + return true; + } + +diff -Nur gcc-4.8.2.orig/gcc/common.opt gcc-4.8.2/gcc/common.opt +--- gcc-4.8.2.orig/gcc/common.opt 2013-03-14 10:13:36.000000000 +0100 ++++ gcc-4.8.2/gcc/common.opt 2014-02-23 20:22:48.000000000 +0100 +@@ -541,6 +541,10 @@ + Common Joined + Treat specified warning as error + ++Werror-maybe-reset ++Common ++If environment variable GCC_NO_WERROR is set, act as -Wno-error ++ + Wextra + Common Var(extra_warnings) Warning + Print extra (possibly unwanted) warnings +@@ -1242,6 +1246,9 @@ + Common Report Var(flag_guess_branch_prob) Optimization + Enable guessing of branch probabilities + ++fhonour-copts ++Common RejectNegative ++ + ; Nonzero means ignore `#ident' directives. 0 means handle them. + ; Generate position-independent code for executables if possible + ; On SVR4 targets, it also controls whether or not to emit a +diff -Nur gcc-4.8.2.orig/gcc/doc/cppopts.texi gcc-4.8.2/gcc/doc/cppopts.texi +--- gcc-4.8.2.orig/gcc/doc/cppopts.texi 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.2/gcc/doc/cppopts.texi 2014-02-23 20:22:48.000000000 +0100 +@@ -163,6 +163,11 @@ + Make all warnings into hard errors. Source code which triggers warnings + will be rejected. + ++ at item -Werror-maybe-reset ++ at opindex Werror-maybe-reset ++Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment ++variable is set to anything other than 0 or empty. ++ + @item -Wsystem-headers + @opindex Wsystem-headers + Issue warnings for code in system headers. These are normally unhelpful +diff -Nur gcc-4.8.2.orig/gcc/doc/invoke.texi gcc-4.8.2/gcc/doc/invoke.texi +--- gcc-4.8.2.orig/gcc/doc/invoke.texi 2013-06-19 21:55:50.000000000 +0200 ++++ gcc-4.8.2/gcc/doc/invoke.texi 2014-02-23 20:22:48.000000000 +0100 +@@ -240,7 +240,7 @@ + -Wconversion -Wcoverage-mismatch -Wno-cpp -Wno-deprecated @gol + -Wno-deprecated-declarations -Wdisabled-optimization @gol + -Wno-div-by-zero -Wdouble-promotion -Wempty-body -Wenum-compare @gol +--Wno-endif-labels -Werror -Werror=* @gol ++-Wno-endif-labels -Werror -Werror=* -Werror-maybe-reset @gol + -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol + -Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol + -Wformat-security -Wformat-y2k @gol +@@ -4807,6 +4807,22 @@ + @option{-Wall} and by @option{-Wpedantic}, which can be disabled with + @option{-Wno-pointer-sign}. + ++ at item -Werror-maybe-reset ++ at opindex Werror-maybe-reset ++Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment ++variable is set to anything other than 0 or empty. ++ ++ at item -fhonour-copts ++ at opindex fhonour-copts ++If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not ++given at least once, and warn if it is given more than once. ++If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not ++given exactly once. ++If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option ++is not given exactly once. ++The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}. ++This flag and environment variable only affect the C language. ++ + @item -Wstack-protector + @opindex Wstack-protector + @opindex Wno-stack-protector +@@ -6918,7 +6934,7 @@ + second branch or a point immediately following it, depending on whether + the condition is known to be true or false. + +-Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}. ++Enabled at levels @option{-O3}. + + @item -fsplit-wide-types + @opindex fsplit-wide-types +diff -Nur gcc-4.8.2.orig/gcc/java/jvspec.c gcc-4.8.2/gcc/java/jvspec.c +--- gcc-4.8.2.orig/gcc/java/jvspec.c 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.2/gcc/java/jvspec.c 2014-02-23 20:22:48.000000000 +0100 +@@ -626,6 +626,7 @@ + class name. Append dummy `.c' that can be stripped by set_input so %b + is correct. */ + set_input (concat (main_class_name, "main.c", NULL)); ++ putenv ("GCC_HONOUR_COPTS=s"); /* XXX hack! */ + err = do_spec (jvgenmain_spec); + if (err == 0) + { +diff -Nur gcc-4.8.2.orig/gcc/opts.c gcc-4.8.2/gcc/opts.c +--- gcc-4.8.2.orig/gcc/opts.c 2013-03-05 07:01:13.000000000 +0100 ++++ gcc-4.8.2/gcc/opts.c 2014-02-23 20:22:48.000000000 +0100 +@@ -468,8 +468,6 @@ + { OPT_LEVELS_2_PLUS, OPT_fschedule_insns2, NULL, 1 }, + #endif + { OPT_LEVELS_2_PLUS, OPT_fregmove, NULL, 1 }, +- { OPT_LEVELS_2_PLUS, OPT_fstrict_aliasing, NULL, 1 }, +- { OPT_LEVELS_2_PLUS, OPT_fstrict_overflow, NULL, 1 }, + { OPT_LEVELS_2_PLUS, OPT_freorder_blocks, NULL, 1 }, + { OPT_LEVELS_2_PLUS, OPT_freorder_functions, NULL, 1 }, + { OPT_LEVELS_2_PLUS, OPT_ftree_vrp, NULL, 1 }, +@@ -488,6 +486,8 @@ + { OPT_LEVELS_2_PLUS, OPT_fhoist_adjacent_loads, NULL, 1 }, + + /* -O3 optimizations. */ ++ { OPT_LEVELS_3_PLUS, OPT_fstrict_aliasing, NULL, 1 }, ++ { OPT_LEVELS_3_PLUS, OPT_fstrict_overflow, NULL, 1 }, + { OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 }, + { OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 }, + /* Inlining of functions reducing size is a good idea with -Os +@@ -1423,6 +1423,17 @@ + opts, opts_set, loc, dc); + break; + ++ case OPT_Werror_maybe_reset: ++ { ++ char *ev = getenv ("GCC_NO_WERROR"); ++ if ((ev != NULL) && (*ev != '0')) ++ warnings_are_errors = 0; ++ } ++ break; ++ ++ case OPT_fhonour_copts: ++ break; ++ + case OPT_Wlarger_than_: + opts->x_larger_than_size = value; + opts->x_warn_larger_than = value != -1; diff --git a/toolchain/gcc/patches/4.8.2/musl-stubs.patch b/toolchain/gcc/patches/4.8.2/musl-stubs.patch new file mode 100644 index 000000000..35050fd9c --- /dev/null +++ b/toolchain/gcc/patches/4.8.2/musl-stubs.patch @@ -0,0 +1,49 @@ +diff -Nur gcc-4.8.2.orig/gcc/config/m68k/linux.h gcc-4.8.2/gcc/config/m68k/linux.h +--- gcc-4.8.2.orig/gcc/config/m68k/linux.h 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.2/gcc/config/m68k/linux.h 2014-02-24 10:19:00.214399704 +0100 +@@ -72,6 +72,7 @@ + done. */ + + #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-m68k.so.1" + + #undef LINK_SPEC + #define LINK_SPEC "-m m68kelf %{shared} \ +diff -Nur gcc-4.8.2.orig/gcc/config/mips/linux64.h gcc-4.8.2/gcc/config/mips/linux64.h +--- gcc-4.8.2.orig/gcc/config/mips/linux64.h 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.2/gcc/config/mips/linux64.h 2014-02-24 10:19:47.238583895 +0100 +@@ -27,6 +27,9 @@ + #define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1" + #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0" + #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32" ++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips.so.1" ++#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mips.so.1" ++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips.so.1" + #define GNU_USER_DYNAMIC_LINKERN32 \ + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \ +- BIONIC_DYNAMIC_LINKERN32) ++ BIONIC_DYNAMIC_LINKERN32, MUSL_DYNAMIC_LINKERN32) +diff -Nur gcc-4.8.2.orig/gcc/config/sparc/linux64.h gcc-4.8.2/gcc/config/sparc/linux64.h +--- gcc-4.8.2.orig/gcc/config/sparc/linux64.h 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.2/gcc/config/sparc/linux64.h 2014-02-24 10:20:49.414827006 +0100 +@@ -94,6 +94,9 @@ + + #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" + #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" ++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-sparc.so.1" ++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-sparc.so.1" ++ + + #ifdef SPARC_BI_ARCH + +diff -Nur gcc-4.8.2.orig/gcc/config/sparc/linux.h gcc-4.8.2/gcc/config/sparc/linux.h +--- gcc-4.8.2.orig/gcc/config/sparc/linux.h 2013-01-10 21:38:27.000000000 +0100 ++++ gcc-4.8.2/gcc/config/sparc/linux.h 2014-02-24 10:21:14.342924339 +0100 +@@ -84,6 +84,7 @@ + done. */ + + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sparc.so.1" + + #undef LINK_SPEC + #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ diff --git a/toolchain/glibc/Makefile b/toolchain/glibc/Makefile index 2fc0015d7..7f304330c 100644 --- a/toolchain/glibc/Makefile +++ b/toolchain/glibc/Makefile @@ -69,6 +69,12 @@ $(WRKBUILD)/.installed: touch $@ $(WRKBUILD)/.fixup: + -find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete + -find $(STAGING_TARGET_DIR) -type f -name \*_pic\* -delete + rm -rf $(STAGING_TARGET_DIR)/usr/share/locale $(STAGING_TARGET_DIR)/usr/share/i18n + rm -rf $(STAGING_TARGET_DIR)/usr/lib/gconv + PATH="$(TARGET_PATH)" prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR) + prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR) touch $@ include ${TOPDIR}/mk/toolchain.mk diff --git a/toolchain/kernel-headers/Makefile b/toolchain/kernel-headers/Makefile index faa75336f..203c68018 100644 --- a/toolchain/kernel-headers/Makefile +++ b/toolchain/kernel-headers/Makefile @@ -12,6 +12,8 @@ $(WRKBUILD)/.headers: $(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=$(ARCH) V=1 \ INSTALL_HDR_PATH=$(STAGING_DIR)/usr \ headers_install + @-find $(STAGING_DIR)/usr/include -name .install -delete + @-find $(STAGING_DIR)/usr/include -name ..install.cmd -delete touch $@ include ${TOPDIR}/mk/toolchain.mk diff --git a/toolchain/musl/Makefile b/toolchain/musl/Makefile index 44ee75775..726a036c3 100644 --- a/toolchain/musl/Makefile +++ b/toolchain/musl/Makefile @@ -18,6 +18,9 @@ endif ifeq ($(CPU_ARCH),microblazeel) REAL_GNU_TARGET_NAME:= $(subst microblazeel,microblaze,$(REAL_GNU_TARGET_NAME)) endif +ifeq ($(CPU_ARCH),sh4) +REAL_GNU_TARGET_NAME:= $(subst sh4,sh,$(REAL_GNU_TARGET_NAME)) +endif $(WRKBUILD)/.headers: (cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \ @@ -54,6 +57,10 @@ $(WRKBUILD)/.fixup: ) $(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) all $(MAKE) -C $(WRKBUILD) DESTDIR=$(STAGING_TARGET_DIR) install + # cleanup toolchain + -find $(STAGING_TARGET_DIR) $(STAGING_HOST_DIR) -name \*.la -delete + PATH="$(TARGET_PATH)" prefix='${TARGET_CROSS}' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_TARGET_DIR) + prefix=' ' ${BASH} ${SCRIPT_DIR}/rstrip.sh $(STAGING_HOST_DIR) touch $@ include ${TOPDIR}/mk/toolchain.mk diff --git a/toolchain/musl/patches/mips64.patch b/toolchain/musl/patches/mips64.patch deleted file mode 100644 index fdeb5017b..000000000 --- a/toolchain/musl/patches/mips64.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nur musl-0.9.14.orig/configure musl-0.9.14/configure ---- musl-0.9.14.orig/configure 2013-09-23 23:01:11.000000000 +0200 -+++ musl-0.9.14/configure 2013-11-09 20:16:14.000000000 +0100 -@@ -225,7 +225,7 @@ - arm*) ARCH=arm ;; - i?86*) ARCH=i386 ;; - x86_64*) ARCH=x86_64 ;; --mips-*|mipsel-*) ARCH=mips ;; -+mips-*|mipsel-*|mips64-*|mips64el-*) ARCH=mips ;; - microblaze-*) ARCH=microblaze ;; - powerpc-*) ARCH=powerpc ;; - unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;; diff --git a/toolchain/musl/patches/musl-git-20140301.patch b/toolchain/musl/patches/musl-git-20140301.patch new file mode 100644 index 000000000..1362c9ba9 --- /dev/null +++ b/toolchain/musl/patches/musl-git-20140301.patch @@ -0,0 +1,8177 @@ +diff -Nur musl-0.9.15/arch/arm/bits/shm.h musl-git/arch/arm/bits/shm.h +--- musl-0.9.15/arch/arm/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/arm/bits/shm.h 2014-03-01 08:58:13.000000000 +0100 +@@ -16,3 +16,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/arm/bits/termios.h musl-git/arch/arm/bits/termios.h +--- musl-0.9.15/arch/arm/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/arm/bits/termios.h 2014-03-01 08:58:13.000000000 +0100 +@@ -42,6 +42,7 @@ + #define IXANY 0004000 + #define IXOFF 0010000 + #define IMAXBEL 0020000 ++#define IUTF8 0040000 + + #define OPOST 0000001 + #define OLCUC 0000002 +@@ -75,9 +76,6 @@ + #define VT0 0000000 + #define VT1 0040000 + +-/* ?? */ +-#define XTABS 0014000 +- + #define B0 0000000 + #define B50 0000001 + #define B75 0000002 +@@ -125,8 +123,6 @@ + #define HUPCL 0002000 + #define CLOCAL 0004000 + +-#define CRTSCTS 020000000000 +- + #define ISIG 0000001 + #define ICANON 0000002 + #define ECHO 0000010 +@@ -137,14 +133,11 @@ + #define TOSTOP 0000400 + #define IEXTEN 0100000 + +-/* Extensions? */ +-#define CBAUDEX 0010000 + #define ECHOCTL 0001000 + #define ECHOPRT 0002000 + #define ECHOKE 0004000 + #define FLUSHO 0010000 + #define PENDIN 0040000 +-#define EXTPROC 0200000 + + #define TCOOFF 0 + #define TCOON 1 +@@ -158,3 +151,10 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#endif +diff -Nur musl-0.9.15/arch/arm/syscall_arch.h musl-git/arch/arm/syscall_arch.h +--- musl-0.9.15/arch/arm/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/arm/syscall_arch.h 2014-03-01 08:58:14.000000000 +0100 +@@ -3,6 +3,8 @@ + ((union { long long ll; long l[2]; }){ .ll = x }).l[1] + #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) + ++long (__syscall)(long, ...); ++ + #ifndef __clang__ + + #define __asm_syscall(...) do { \ +diff -Nur musl-0.9.15/arch/i386/bits/shm.h musl-git/arch/i386/bits/shm.h +--- musl-0.9.15/arch/i386/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/i386/bits/shm.h 2014-03-01 08:58:14.000000000 +0100 +@@ -16,3 +16,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/i386/bits/termios.h musl-git/arch/i386/bits/termios.h +--- musl-0.9.15/arch/i386/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/i386/bits/termios.h 2014-03-01 08:58:14.000000000 +0100 +@@ -42,6 +42,7 @@ + #define IXANY 0004000 + #define IXOFF 0010000 + #define IMAXBEL 0020000 ++#define IUTF8 0040000 + + #define OPOST 0000001 + #define OLCUC 0000002 +@@ -75,9 +76,6 @@ + #define VT0 0000000 + #define VT1 0040000 + +-/* ?? */ +-#define XTABS 0014000 +- + #define B0 0000000 + #define B50 0000001 + #define B75 0000002 +@@ -125,8 +123,6 @@ + #define HUPCL 0002000 + #define CLOCAL 0004000 + +-#define CRTSCTS 020000000000 +- + #define ISIG 0000001 + #define ICANON 0000002 + #define ECHO 0000010 +@@ -137,14 +133,11 @@ + #define TOSTOP 0000400 + #define IEXTEN 0100000 + +-/* Extensions? */ +-#define CBAUDEX 0010000 + #define ECHOCTL 0001000 + #define ECHOPRT 0002000 + #define ECHOKE 0004000 + #define FLUSHO 0010000 + #define PENDIN 0040000 +-#define EXTPROC 0200000 + + #define TCOOFF 0 + #define TCOON 1 +@@ -158,3 +151,10 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#endif +diff -Nur musl-0.9.15/arch/microblaze/bits/shm.h musl-git/arch/microblaze/bits/shm.h +--- musl-0.9.15/arch/microblaze/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/microblaze/bits/shm.h 2014-03-01 08:58:14.000000000 +0100 +@@ -16,3 +16,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/microblaze/bits/termios.h musl-git/arch/microblaze/bits/termios.h +--- musl-0.9.15/arch/microblaze/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/microblaze/bits/termios.h 2014-03-01 08:58:14.000000000 +0100 +@@ -42,6 +42,7 @@ + #define IXANY 0004000 + #define IXOFF 0010000 + #define IMAXBEL 0020000 ++#define IUTF8 0040000 + + #define OPOST 0000001 + #define OLCUC 0000002 +@@ -75,9 +76,6 @@ + #define VT0 0000000 + #define VT1 0040000 + +-/* ?? */ +-#define XTABS 0014000 +- + #define B0 0000000 + #define B50 0000001 + #define B75 0000002 +@@ -125,8 +123,6 @@ + #define HUPCL 0002000 + #define CLOCAL 0004000 + +-#define CRTSCTS 020000000000 +- + #define ISIG 0000001 + #define ICANON 0000002 + #define ECHO 0000010 +@@ -137,14 +133,11 @@ + #define TOSTOP 0000400 + #define IEXTEN 0100000 + +-/* Extensions? */ +-#define CBAUDEX 0010000 + #define ECHOCTL 0001000 + #define ECHOPRT 0002000 + #define ECHOKE 0004000 + #define FLUSHO 0010000 + #define PENDIN 0040000 +-#define EXTPROC 0200000 + + #define TCOOFF 0 + #define TCOON 1 +@@ -158,3 +151,10 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#endif +diff -Nur musl-0.9.15/arch/microblaze/syscall_arch.h musl-git/arch/microblaze/syscall_arch.h +--- musl-0.9.15/arch/microblaze/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/microblaze/syscall_arch.h 2014-03-01 08:58:14.000000000 +0100 +@@ -3,6 +3,8 @@ + ((union { long long ll; long l[2]; }){ .ll = x }).l[1] + #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) + ++long (__syscall)(long, ...); ++ + #ifndef __clang__ + + static __inline long __syscall0(long n) +diff -Nur musl-0.9.15/arch/mips/bits/fenv.h musl-git/arch/mips/bits/fenv.h +--- musl-0.9.15/arch/mips/bits/fenv.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/bits/fenv.h 2014-03-01 08:58:14.000000000 +0100 +@@ -1,3 +1,7 @@ ++#ifdef __mips_soft_float ++#define FE_ALL_EXCEPT 0 ++#define FE_TONEAREST 0 ++#else + #define FE_INEXACT 4 + #define FE_UNDERFLOW 8 + #define FE_OVERFLOW 16 +@@ -10,6 +14,7 @@ + #define FE_TOWARDZERO 1 + #define FE_UPWARD 2 + #define FE_DOWNWARD 3 ++#endif + + typedef unsigned short fexcept_t; + +diff -Nur musl-0.9.15/arch/mips/bits/shm.h musl-git/arch/mips/bits/shm.h +--- musl-0.9.15/arch/mips/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/bits/shm.h 2014-03-01 08:58:14.000000000 +0100 +@@ -13,3 +13,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/mips/bits/termios.h musl-git/arch/mips/bits/termios.h +--- musl-0.9.15/arch/mips/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/bits/termios.h 2014-03-01 08:58:14.000000000 +0100 +@@ -77,9 +77,6 @@ + #define VT0 0000000 + #define VT1 0040000 + +-/* ?? */ +-#define XTABS 0014000 +- + #define B0 0000000 + #define B50 0000001 + #define B75 0000002 +@@ -129,12 +126,6 @@ + #define PARODD 0001000 + #define HUPCL 0002000 + #define CLOCAL 0004000 +-#define CBAUDEX 0010000 +- +-#define CIBAUD 002003600000 +-#define CMSPAR 010000000000 +-#define CRTSCTS 020000000000 +-#define IBSHIFT 16 + + #define ISIG 0000001 + #define ICANON 0000002 +@@ -152,9 +143,6 @@ + #define PENDIN 0040000 + #define TOSTOP 0100000 + #define ITOSTOP 0100000 +-#define EXTPROC 0200000 +- +-#define TIOCSER_TEMT 1 + + #define TCOOFF 0 + #define TCOON 1 +@@ -168,3 +156,14 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CIBAUD 002003600000 ++#define IBSHIFT 16 ++#define CMSPAR 010000000000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#define TIOCSER_TEMT 1 ++#endif +diff -Nur musl-0.9.15/arch/mips/reloc.h musl-git/arch/mips/reloc.h +--- musl-0.9.15/arch/mips/reloc.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/reloc.h 2014-03-01 08:58:14.000000000 +0100 +@@ -8,7 +8,13 @@ + #define ENDIAN_SUFFIX "" + #endif + +-#define LDSO_ARCH "mips" ENDIAN_SUFFIX ++#ifdef __mips_soft_float ++#define FP_SUFFIX "-sf" ++#else ++#define FP_SUFFIX "" ++#endif ++ ++#define LDSO_ARCH "mips" ENDIAN_SUFFIX FP_SUFFIX + + #define IS_COPY(x) ((x)==R_MIPS_COPY) + #define IS_PLT(x) 1 +diff -Nur musl-0.9.15/arch/mips/syscall_arch.h musl-git/arch/mips/syscall_arch.h +--- musl-0.9.15/arch/mips/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/syscall_arch.h 2014-03-01 08:58:14.000000000 +0100 +@@ -3,6 +3,8 @@ + ((union { long long ll; long l[2]; }){ .ll = x }).l[1] + #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) + ++long (__syscall)(long, ...); ++ + #ifndef __clang__ + + #define __asm_syscall(...) do { \ +diff -Nur musl-0.9.15/arch/powerpc/bits/shm.h musl-git/arch/powerpc/bits/shm.h +--- musl-0.9.15/arch/powerpc/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/powerpc/bits/shm.h 2014-03-01 08:58:14.000000000 +0100 +@@ -16,3 +16,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/powerpc/bits/termios.h musl-git/arch/powerpc/bits/termios.h +--- musl-0.9.15/arch/powerpc/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/powerpc/bits/termios.h 2014-03-01 08:58:14.000000000 +0100 +@@ -66,7 +66,6 @@ + #define TAB1 00002000 + #define TAB2 00004000 + #define TAB3 00006000 +-#define XTABS 00006000 + #define CRDLY 00030000 + #define CR0 00000000 + #define CR1 00010000 +@@ -101,7 +100,6 @@ + #define B38400 0000017 + #define EXTA B19200 + #define EXTB B38400 +-#define CBAUDEX 0000000 + #define B57600 00020 + #define B115200 00021 + #define B230400 00022 +@@ -120,9 +118,6 @@ + #define B4000000 00036 + #define BOTHER 00037 + +-#define CIBAUD 077600000 +-#define IBSHIFT 16 +- + #define CSIZE 00001400 + #define CS5 00000000 + #define CS6 00000400 +@@ -136,8 +131,6 @@ + #define HUPCL 00040000 + + #define CLOCAL 00100000 +-#define CMSPAR 010000000000 +-#define CRTSCTS 020000000000 + + #define ISIG 0x00000080 + #define ICANON 0x00000100 +@@ -154,7 +147,6 @@ + #define FLUSHO 0x00800000 + #define PENDIN 0x20000000 + #define IEXTEN 0x00000400 +-#define EXTPROC 0x10000000 + + #define TCOOFF 0 + #define TCOON 1 +@@ -168,3 +160,13 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0000000 ++#define CIBAUD 077600000 ++#define IBSHIFT 16 ++#define CMSPAR 010000000000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0x10000000 ++#define XTABS 00006000 ++#endif +diff -Nur musl-0.9.15/arch/sh/atomic.h musl-git/arch/sh/atomic.h +--- musl-0.9.15/arch/sh/atomic.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/atomic.h 2014-03-01 08:58:14.000000000 +0100 +@@ -0,0 +1,87 @@ ++#ifndef _INTERNAL_ATOMIC_H ++#define _INTERNAL_ATOMIC_H ++ ++#include <stdint.h> ++ ++static inline int a_ctz_l(unsigned long x) ++{ ++ static const char debruijn32[32] = { ++ 0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13, ++ 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14 ++ }; ++ return debruijn32[(x&-x)*0x076be629 >> 27]; ++} ++ ++static inline int a_ctz_64(uint64_t x) ++{ ++ uint32_t y = x; ++ if (!y) { ++ y = x>>32; ++ return 32 + a_ctz_l(y); ++ } ++ return a_ctz_l(y); ++} ++ ++int __sh_cas(volatile int *, int, int); ++int __sh_swap(volatile int *, int); ++int __sh_fetch_add(volatile int *, int); ++void __sh_store(volatile int *, int); ++void __sh_and(volatile int *, int); ++void __sh_or(volatile int *, int); ++ ++#define a_cas(p,t,s) __sh_cas(p,t,s) ++#define a_swap(x,v) __sh_swap(x,v) ++#define a_fetch_add(x,v) __sh_fetch_add(x, v) ++#define a_store(x,v) __sh_store(x, v) ++#define a_and(x,v) __sh_and(x, v) ++#define a_or(x,v) __sh_or(x, v) ++ ++static inline void *a_cas_p(volatile void *p, void *t, void *s) ++{ ++ return (void *)a_cas(p, (int)t, (int)s); ++} ++ ++static inline long a_cas_l(volatile void *p, long t, long s) ++{ ++ return a_cas(p, t, s); ++} ++ ++static inline void a_inc(volatile int *x) ++{ ++ a_fetch_add(x, 1); ++} ++ ++static inline void a_dec(volatile int *x) ++{ ++ a_fetch_add(x, -1); ++} ++ ++static inline void a_spin() ++{ |