This series itroduces updates to both toolchain used for ARC and Linux kernel. This update is kept in that atoimc manner because we had to switch ABI again in GCC 6.x, see [1] for more details; and Linux kernel supports this ABI since v4.8 so existing v4.4 is a no go.
Note that's the first draft that is not suposed to be really used because for GCC we add way too many patches here and for Binutils way too many patches are missing. Ideally we'd better jump right to GCC 7.0 and Binutils 2.28 which will have most of the stuff included and only very few patches is any will be applied on top. Anyways all comments are more than welcome! P.S. Even though that's an RFC system built with that series boots :) [1] https://github.com/foss-for-synopsys-dwc-arc-processors/linux/wiki/ARC-Linux-Syscall-ABI-Compatibility#33-abi-v4 Alexey Brodkin (5): toolchain: Switch ARC to upstream binutils and gcc toolchain: gcc: Keep testsuite folder to simplify generation of patches toolchain: gcc: Add all patches from arc-2017.03 branch target/archs38: switch to 4.9 kernel target/arc770: switch to 4.9 kernel target/linux/arc770/Makefile | 2 +- target/linux/arc770/{config-4.4 => config-4.9} | 44 +- ...-bug-in-unaligned-access-delay-slot-fixup.patch | 0 ...stmmac-Disable-frame-filtering-completely.patch | 0 target/linux/archs38/Makefile | 2 +- target/linux/archs38/{config-4.4 => config-4.9} | 55 +- ...stmmac-Disable-frame-filtering-completely.patch | 0 toolchain/binutils/Config.in | 9 +- toolchain/binutils/Config.version | 7 +- toolchain/binutils/Makefile | 9 - ...0001-Select-OSABI-version-at-compile-time.patch | 45 + .../arc-2016.03/200-arc-fix-target-mask.patch | 13 - toolchain/gcc/Config.in | 10 +- toolchain/gcc/Config.version | 11 +- toolchain/gcc/common.mk | 12 +- .../0001-ARC-Add-SIMD-extensions-for-ARC-HS.patch | 905 ++++++++ .../6.3.0/0002-ARC-LIBGCC-Add-TLS-support.patch | 144 ++ .../patches/6.3.0/0003-ARC-Add-TLS-support.patch | 1147 ++++++++++ ...se-drsub-instructions-when-selecting-fpud.patch | 121 ++ ...-FPUDA-code-gen-when-compiling-for-big-en.patch | 140 ++ .../6.3.0/0006-ARC-Pass-mfpuda-to-assembler.patch | 46 + ...Andrew-Burgess-andrew.burgess-embecosm.co.patch | 128 ++ ...Andrew-Burgess-andrew.burgess-embecosm.co.patch | 78 + ...Joern-Rennecke-joern.rennecke-embecosm.co.patch | 701 +++++++ ...Joern-Rennecke-joern.rennecke-embecosm.co.patch | 1059 ++++++++++ ...Joern-Rennecke-joern.rennecke-embecosm.co.patch | 116 ++ ...Andrew-Burgess-andrew.burgess-embecosm.co.patch | 59 + ...anted-match-for-sign-extend-16-bit-consta.patch | 170 ++ .../6.3.0/0014-ARC-Fix-obsolete-constraint.patch | 72 + ...FPX-NaN-within-optimized-floating-point-l.patch | 133 ++ ...Andrew-Burgess-andrew.burgess-embecosm.co.patch | 123 ++ .../0017-ARC-Add-new-ARCv2-instructions.patch | 785 +++++++ .../0018-Fix-warnings-update-source-code.patch | 80 + ...019-ARC-Various-instruction-pattern-fixes.patch | 83 + .../6.3.0/0020-ARC-New-CPU-C-define-handler.patch | 303 +++ ...OFFPC-relocation-for-pc-relative-accesses.patch | 197 ++ ...ption-handling-refurbish-multilib-support.patch | 2188 ++++++++++++++++++++ ...023-ARC-Various-small-miscellaneous-fixes.patch | 243 +++ ...Disable-compact-casesi-patterns-for-arcv2.patch | 50 + ...025-ARC-Add-support-for-QuarkSE-processor.patch | 429 ++++ ...-libgcc-Add-support-for-QuarkSE-processor.patch | 441 ++++ .../6.3.0/0027-ARC-libgcc-Fix-defines.patch | 198 ++ ...28-ARC-tests-Update-target-specific-tests.patch | 1103 ++++++++++ .../gcc/patches/6.3.0/0029-ARC-Various-fixes.patch | 84 + .../0030-ARC-Add-simple-shift-rotate-ops.patch | 68 + .../gcc/patches/6.3.0/0031-Fix-option-text.patch | 44 + .../0032-ARC-Disable-tests-for-bare-metal.patch | 133 ++ .../0033-ARC-Update-INSN_LENGTH_ALIGNMENT.patch | 34 + ...RC-Reimplement-exception-handling-support.patch | 523 +++++ .../6.3.0/0035-ARC-Fix-mul32x16-patterns.patch | 56 + .../6.3.0/0036-ARC-Cleanup-implementation.patch | 201 ++ .../6.3.0/0037-ARC-Refurbish-mul64-support.patch | 126 ++ toolchain/gcc/patches/6.3.0/0038-ARC-Fix-PIE.patch | 100 + .../0039-ARC-Generating-code-for-profiling.patch | 2136 +++++++++++++++++++ .../6.3.0/0040-ARC-Clean-up-arc-header-file.patch | 501 +++++ ...re-script-to-allow-non-uclibc-based-tripl.patch | 49 + ...0042-ARC-Fix-conditional-move-contstraint.patch | 32 + .../6.3.0/0043-Fix-tst_bitfield_tst-pattern.patch | 66 + .../0044-ARC-Prohibit-negative-PIC-constants.patch | 105 + ...0045-ARC-Handle-complex-PIC-move-patterns.patch | 120 ++ .../0046-ARC-Add-code-density-instructions.patch | 300 +++ .../6.3.0/0047-ARC-Code-size-modifications.patch | 107 + .../0048-ARC-Save-restore-blink-when-in-ISR.patch | 90 + ...ection-of-long-immediate-for-load-store-o.patch | 51 + ...-TP-register-when-building-for-bare-metal.patch | 58 + .../0051-ARC-Fix-divdf3-emulation-for-arcem.patch | 53 + ...ic-context-save-restore-for-regular-inter.patch | 721 +++++++ .../6.3.0/0053-ARC-Fast-interrupts-support.patch | 575 +++++ .../0054-ARC-Add-support-for-QuarkSE2-EM-cpu.patch | 269 +++ ...ARC-Fix-move_double_src_operand-predicate.patch | 37 + .../6.3.0/0056-ARC-Remove-old-prof-patterns.patch | 107 + ...-ARC-Update-mode_dependent_address_p-hook.patch | 40 + ...058-Changed-tests-to-verify-shared-option.patch | 56 + .../6.3.0/0059-ARC-DWARF-emitting-cleanup.patch | 75 + .../0060-ARC-Use-long-jumps-for-CRT-calls.patch | 36 + .../6.3.0/0061-ARC-Fix-typo-in-arc.opt.patch | 35 + ...fine-SIZE_TYPE-and-PTRDIFF_TYPE-correctly.patch | 38 + ...CK-Hard-check-for-the-LP-size-constraints.patch | 38 + .../patches/6.3.0/0064-ARC-Fix-sub_n-pattern.patch | 29 + ...C-Make-mulsi-for-A700-pattern-commutative.patch | 29 + .../0066-ARC-Fix-LE-tests-for-nps400-variant.patch | 125 ++ ...0067-ARC-Make-lp_count-reg-fix-for-ARC600.patch | 53 + ...support-for-advanced-mpy-mac-instructions.patch | 376 ++++ .../6.3.0/0069-ARC-Fix-typo-dmpyh-pattern.patch | 29 + ...ntiate-between-ARCv1-and-ARCv2-h-reg-clas.patch | 120 ++ ...ntiate-between-ARCv1-and-ARCv2-h-reg-clas.patch | 89 + ...xtension-core-registers-to-be-used-for-ad.patch | 60 + ...-Make-D0-D1-double-regs-fix-when-not-used.patch | 33 + ...L-ACCH-registers-whenever-they-are-availa.patch | 36 + ...id-use-of-hard-registers-before-reg-alloc.patch | 236 +++ ...ARC-Allow-r30-to-be-used-by-the-reg-alloc.patch | 52 + ...ARC-Cxx-Fix-calling-multiple-inheritances.patch | 55 + ...resses-can-use-long-immediate-for-offsets.patch | 94 + .../0079-ARC-Add-support-for-naked-functions.patch | 512 +++++ ...rect-and-update-ARC-builtin-documentation.patch | 204 ++ ...predicate-movv2hi-to-avoid-scaled-address.patch | 30 + ...non-commutative_binary_comparison-pattern.patch | 63 + ...-moving-stores-to-the-frame-before-the-st.patch | 86 + .../0084-ARC-LRA-Fix-tests-asm-constraints.patch | 46 + ...ainst-frame_pointer_needed-in-arc_can_eli.patch | 35 + ...0086-ARC-Define-ADDITIONAL_REGISTER_NAMES.patch | 36 + ...RA-Avoid-emitting-COND_EXEC-during-expand.patch | 101 + .../0088-ARC-Clean-up-building-warnings.patch | 154 ++ ...ribute-naked-do-not-emit-return-instructi.patch | 64 + .../001-revert_register_mode_search.patch | 65 - .../patches/arc-2016.03/002-weak_data_fix.patch | 42 - .../arc-2016.03/003-universal_initializer.patch | 94 - .../patches/arc-2016.03/004-case_insensitive.patch | 14 - .../patches/arc-2016.03/010-documentation.patch | 23 - .../patches/arc-2016.03/020-no-plt-backport.patch | 28 - .../210-disable_libsanitizer_off_t_check.patch | 11 - .../arc-2016.03/800-arc-disablelibgmon.patch | 18 - .../gcc/patches/arc-2016.03/820-libgcc_pic.patch | 36 - .../arc-2016.03/850-use_shared_libgcc.patch | 47 - .../patches/arc-2016.03/851-libgcc_no_compat.patch | 12 - .../gcc/patches/arc-2016.03/860-use_eh_frame.patch | 42 - .../patches/arc-2016.03/870-ppc_no_crtsavres.patch | 11 - .../patches/arc-2016.03/880-no_java_section.patch | 11 - .../gcc/patches/arc-2016.03/910-mbsd_multi.patch | 253 --- .../arc-2016.03/920-specs_nonfatal_getenv.patch | 14 - .../arc-2016.03/940-no-clobber-stamp-bits.patch | 11 - .../arc-2016.03/950-fix-building-with-gcc6.patch | 153 -- 122 files changed, 21175 insertions(+), 982 deletions(-) rename target/linux/arc770/{config-4.4 => config-4.9} (82%) rename target/linux/arc770/{patches-4.4 => patches-4.9}/001-ARC-arcompact-brown-paper-bag-bug-in-unaligned-access-delay-slot-fixup.patch (100%) rename target/linux/arc770/{patches-4.4 => patches-4.9}/700-stmmac-Disable-frame-filtering-completely.patch (100%) rename target/linux/archs38/{config-4.4 => config-4.9} (80%) rename target/linux/archs38/{patches-4.4 => patches-4.9}/700-stmmac-Disable-frame-filtering-completely.patch (100%) create mode 100644 toolchain/binutils/patches/2.27/0001-Select-OSABI-version-at-compile-time.patch delete mode 100644 toolchain/binutils/patches/arc-2016.03/200-arc-fix-target-mask.patch create mode 100644 toolchain/gcc/patches/6.3.0/0001-ARC-Add-SIMD-extensions-for-ARC-HS.patch create mode 100644 toolchain/gcc/patches/6.3.0/0002-ARC-LIBGCC-Add-TLS-support.patch create mode 100644 toolchain/gcc/patches/6.3.0/0003-ARC-Add-TLS-support.patch create mode 100644 toolchain/gcc/patches/6.3.0/0004-ARC-Don-t-use-drsub-instructions-when-selecting-fpud.patch create mode 100644 toolchain/gcc/patches/6.3.0/0005-ARC-Fix-FPX-FPUDA-code-gen-when-compiling-for-big-en.patch create mode 100644 toolchain/gcc/patches/6.3.0/0006-ARC-Pass-mfpuda-to-assembler.patch create mode 100644 toolchain/gcc/patches/6.3.0/0007-2016-04-28-Andrew-Burgess-andrew.burgess-embecosm.co.patch create mode 100644 toolchain/gcc/patches/6.3.0/0008-2016-04-28-Andrew-Burgess-andrew.burgess-embecosm.co.patch create mode 100644 toolchain/gcc/patches/6.3.0/0009-2016-04-28-Joern-Rennecke-joern.rennecke-embecosm.co.patch create mode 100644 toolchain/gcc/patches/6.3.0/0010-2016-04-28-Joern-Rennecke-joern.rennecke-embecosm.co.patch create mode 100644 toolchain/gcc/patches/6.3.0/0011-2016-04-28-Joern-Rennecke-joern.rennecke-embecosm.co.patch create mode 100644 toolchain/gcc/patches/6.3.0/0012-2016-04-28-Andrew-Burgess-andrew.burgess-embecosm.co.patch create mode 100644 toolchain/gcc/patches/6.3.0/0013-ARC-Fix-unwanted-match-for-sign-extend-16-bit-consta.patch create mode 100644 toolchain/gcc/patches/6.3.0/0014-ARC-Fix-obsolete-constraint.patch create mode 100644 toolchain/gcc/patches/6.3.0/0015-ARC-Handle-FPX-NaN-within-optimized-floating-point-l.patch create mode 100644 toolchain/gcc/patches/6.3.0/0016-2016-04-29-Andrew-Burgess-andrew.burgess-embecosm.co.patch create mode 100644 toolchain/gcc/patches/6.3.0/0017-ARC-Add-new-ARCv2-instructions.patch create mode 100644 toolchain/gcc/patches/6.3.0/0018-Fix-warnings-update-source-code.patch create mode 100644 toolchain/gcc/patches/6.3.0/0019-ARC-Various-instruction-pattern-fixes.patch create mode 100644 toolchain/gcc/patches/6.3.0/0020-ARC-New-CPU-C-define-handler.patch create mode 100644 toolchain/gcc/patches/6.3.0/0021-Use-GOTOFFPC-relocation-for-pc-relative-accesses.patch create mode 100644 toolchain/gcc/patches/6.3.0/0022-ARC-New-option-handling-refurbish-multilib-support.patch create mode 100644 toolchain/gcc/patches/6.3.0/0023-ARC-Various-small-miscellaneous-fixes.patch create mode 100644 toolchain/gcc/patches/6.3.0/0024-ARC-Disable-compact-casesi-patterns-for-arcv2.patch create mode 100644 toolchain/gcc/patches/6.3.0/0025-ARC-Add-support-for-QuarkSE-processor.patch create mode 100644 toolchain/gcc/patches/6.3.0/0026-ARC-libgcc-Add-support-for-QuarkSE-processor.patch create mode 100644 toolchain/gcc/patches/6.3.0/0027-ARC-libgcc-Fix-defines.patch create mode 100644 toolchain/gcc/patches/6.3.0/0028-ARC-tests-Update-target-specific-tests.patch create mode 100644 toolchain/gcc/patches/6.3.0/0029-ARC-Various-fixes.patch create mode 100644 toolchain/gcc/patches/6.3.0/0030-ARC-Add-simple-shift-rotate-ops.patch create mode 100644 toolchain/gcc/patches/6.3.0/0031-Fix-option-text.patch create mode 100644 toolchain/gcc/patches/6.3.0/0032-ARC-Disable-tests-for-bare-metal.patch create mode 100644 toolchain/gcc/patches/6.3.0/0033-ARC-Update-INSN_LENGTH_ALIGNMENT.patch create mode 100644 toolchain/gcc/patches/6.3.0/0034-ARC-Reimplement-exception-handling-support.patch create mode 100644 toolchain/gcc/patches/6.3.0/0035-ARC-Fix-mul32x16-patterns.patch create mode 100644 toolchain/gcc/patches/6.3.0/0036-ARC-Cleanup-implementation.patch create mode 100644 toolchain/gcc/patches/6.3.0/0037-ARC-Refurbish-mul64-support.patch create mode 100644 toolchain/gcc/patches/6.3.0/0038-ARC-Fix-PIE.patch create mode 100644 toolchain/gcc/patches/6.3.0/0039-ARC-Generating-code-for-profiling.patch create mode 100644 toolchain/gcc/patches/6.3.0/0040-ARC-Clean-up-arc-header-file.patch create mode 100644 toolchain/gcc/patches/6.3.0/0041-ARC-Configure-script-to-allow-non-uclibc-based-tripl.patch create mode 100644 toolchain/gcc/patches/6.3.0/0042-ARC-Fix-conditional-move-contstraint.patch create mode 100644 toolchain/gcc/patches/6.3.0/0043-Fix-tst_bitfield_tst-pattern.patch create mode 100644 toolchain/gcc/patches/6.3.0/0044-ARC-Prohibit-negative-PIC-constants.patch create mode 100644 toolchain/gcc/patches/6.3.0/0045-ARC-Handle-complex-PIC-move-patterns.patch create mode 100644 toolchain/gcc/patches/6.3.0/0046-ARC-Add-code-density-instructions.patch create mode 100644 toolchain/gcc/patches/6.3.0/0047-ARC-Code-size-modifications.patch create mode 100644 toolchain/gcc/patches/6.3.0/0048-ARC-Save-restore-blink-when-in-ISR.patch create mode 100644 toolchain/gcc/patches/6.3.0/0049-ARC-Fix-detection-of-long-immediate-for-load-store-o.patch create mode 100644 toolchain/gcc/patches/6.3.0/0050-ARC-Disable-TP-register-when-building-for-bare-metal.patch create mode 100644 toolchain/gcc/patches/6.3.0/0051-ARC-Fix-divdf3-emulation-for-arcem.patch create mode 100644 toolchain/gcc/patches/6.3.0/0052-ARC-Automatic-context-save-restore-for-regular-inter.patch create mode 100644 toolchain/gcc/patches/6.3.0/0053-ARC-Fast-interrupts-support.patch create mode 100644 toolchain/gcc/patches/6.3.0/0054-ARC-Add-support-for-QuarkSE2-EM-cpu.patch create mode 100644 toolchain/gcc/patches/6.3.0/0055-ARC-Fix-move_double_src_operand-predicate.patch create mode 100644 toolchain/gcc/patches/6.3.0/0056-ARC-Remove-old-prof-patterns.patch create mode 100644 toolchain/gcc/patches/6.3.0/0057-ARC-Update-mode_dependent_address_p-hook.patch create mode 100644 toolchain/gcc/patches/6.3.0/0058-Changed-tests-to-verify-shared-option.patch create mode 100644 toolchain/gcc/patches/6.3.0/0059-ARC-DWARF-emitting-cleanup.patch create mode 100644 toolchain/gcc/patches/6.3.0/0060-ARC-Use-long-jumps-for-CRT-calls.patch create mode 100644 toolchain/gcc/patches/6.3.0/0061-ARC-Fix-typo-in-arc.opt.patch create mode 100644 toolchain/gcc/patches/6.3.0/0062-ARC-define-SIZE_TYPE-and-PTRDIFF_TYPE-correctly.patch create mode 100644 toolchain/gcc/patches/6.3.0/0063-ARC-HACK-Hard-check-for-the-LP-size-constraints.patch create mode 100644 toolchain/gcc/patches/6.3.0/0064-ARC-Fix-sub_n-pattern.patch create mode 100644 toolchain/gcc/patches/6.3.0/0065-ARC-Make-mulsi-for-A700-pattern-commutative.patch create mode 100644 toolchain/gcc/patches/6.3.0/0066-ARC-Fix-LE-tests-for-nps400-variant.patch create mode 100644 toolchain/gcc/patches/6.3.0/0067-ARC-Make-lp_count-reg-fix-for-ARC600.patch create mode 100644 toolchain/gcc/patches/6.3.0/0068-ARC-Add-support-for-advanced-mpy-mac-instructions.patch create mode 100644 toolchain/gcc/patches/6.3.0/0069-ARC-Fix-typo-dmpyh-pattern.patch create mode 100644 toolchain/gcc/patches/6.3.0/0070-ARC-Differentiate-between-ARCv1-and-ARCv2-h-reg-clas.patch create mode 100644 toolchain/gcc/patches/6.3.0/0071-ARC-Differentiate-between-ARCv1-and-ARCv2-h-reg-clas.patch create mode 100644 toolchain/gcc/patches/6.3.0/0072-ARC-Allow-extension-core-registers-to-be-used-for-ad.patch create mode 100644 toolchain/gcc/patches/6.3.0/0073-ARC-Make-D0-D1-double-regs-fix-when-not-used.patch create mode 100644 toolchain/gcc/patches/6.3.0/0074-ARC-Use-ACCL-ACCH-registers-whenever-they-are-availa.patch create mode 100644 toolchain/gcc/patches/6.3.0/0075-ARC-Avoid-use-of-hard-registers-before-reg-alloc.patch create mode 100644 toolchain/gcc/patches/6.3.0/0076-ARC-Allow-r30-to-be-used-by-the-reg-alloc.patch create mode 100644 toolchain/gcc/patches/6.3.0/0077-ARC-Cxx-Fix-calling-multiple-inheritances.patch create mode 100644 toolchain/gcc/patches/6.3.0/0078-ARC-Addresses-can-use-long-immediate-for-offsets.patch create mode 100644 toolchain/gcc/patches/6.3.0/0079-ARC-Add-support-for-naked-functions.patch create mode 100644 toolchain/gcc/patches/6.3.0/0080-ARC-Correct-and-update-ARC-builtin-documentation.patch create mode 100644 toolchain/gcc/patches/6.3.0/0081-ARC-Change-predicate-movv2hi-to-avoid-scaled-address.patch create mode 100644 toolchain/gcc/patches/6.3.0/0082-ARC-Update-non-commutative_binary_comparison-pattern.patch create mode 100644 toolchain/gcc/patches/6.3.0/0083-ARC-Prevent-moving-stores-to-the-frame-before-the-st.patch create mode 100644 toolchain/gcc/patches/6.3.0/0084-ARC-LRA-Fix-tests-asm-constraints.patch create mode 100644 toolchain/gcc/patches/6.3.0/0085-ARC-Test-against-frame_pointer_needed-in-arc_can_eli.patch create mode 100644 toolchain/gcc/patches/6.3.0/0086-ARC-Define-ADDITIONAL_REGISTER_NAMES.patch create mode 100644 toolchain/gcc/patches/6.3.0/0087-ARC-LRA-Avoid-emitting-COND_EXEC-during-expand.patch create mode 100644 toolchain/gcc/patches/6.3.0/0088-ARC-Clean-up-building-warnings.patch create mode 100644 toolchain/gcc/patches/6.3.0/0089-ARC-FIX-Attribute-naked-do-not-emit-return-instructi.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/001-revert_register_mode_search.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/002-weak_data_fix.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/003-universal_initializer.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/004-case_insensitive.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/010-documentation.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/020-no-plt-backport.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/210-disable_libsanitizer_off_t_check.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/800-arc-disablelibgmon.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/820-libgcc_pic.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/850-use_shared_libgcc.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/851-libgcc_no_compat.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/860-use_eh_frame.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/870-ppc_no_crtsavres.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/880-no_java_section.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/910-mbsd_multi.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/920-specs_nonfatal_getenv.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/940-no-clobber-stamp-bits.patch delete mode 100644 toolchain/gcc/patches/arc-2016.03/950-fix-building-with-gcc6.patch -- 2.10.2 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev