diff --git a/toolchains/arm/README.md b/toolchains/arm/README.md
new file mode 100644
index 00000000..e69de29b
diff --git a/toolchains/arm/bin/arm-none-eabi-addr2line b/toolchains/arm/bin/arm-none-eabi-addr2line
new file mode 100644
index 00000000..431c4de9
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-addr2line differ
diff --git a/toolchains/arm/bin/arm-none-eabi-ar b/toolchains/arm/bin/arm-none-eabi-ar
new file mode 100644
index 00000000..5d03c07c
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-ar differ
diff --git a/toolchains/arm/bin/arm-none-eabi-as b/toolchains/arm/bin/arm-none-eabi-as
new file mode 100644
index 00000000..6456aab8
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-as differ
diff --git a/toolchains/arm/bin/arm-none-eabi-c++ b/toolchains/arm/bin/arm-none-eabi-c++
new file mode 100644
index 00000000..5b752645
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-c++ differ
diff --git a/toolchains/arm/bin/arm-none-eabi-c++filt b/toolchains/arm/bin/arm-none-eabi-c++filt
new file mode 100644
index 00000000..fa57c798
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-c++filt differ
diff --git a/toolchains/arm/bin/arm-none-eabi-cpp b/toolchains/arm/bin/arm-none-eabi-cpp
new file mode 100644
index 00000000..ab8eae6c
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-cpp differ
diff --git a/toolchains/arm/bin/arm-none-eabi-elfedit b/toolchains/arm/bin/arm-none-eabi-elfedit
new file mode 100644
index 00000000..ecf653f7
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-elfedit differ
diff --git a/toolchains/arm/bin/arm-none-eabi-g++ b/toolchains/arm/bin/arm-none-eabi-g++
new file mode 100644
index 00000000..5b752645
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-g++ differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gcc b/toolchains/arm/bin/arm-none-eabi-gcc
new file mode 100644
index 00000000..5aba5b6d
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gcc differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gcc-9.3.1 b/toolchains/arm/bin/arm-none-eabi-gcc-9.3.1
new file mode 100644
index 00000000..5aba5b6d
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gcc-9.3.1 differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gcc-ar b/toolchains/arm/bin/arm-none-eabi-gcc-ar
new file mode 100644
index 00000000..32ee07cc
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gcc-ar differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gcc-nm b/toolchains/arm/bin/arm-none-eabi-gcc-nm
new file mode 100644
index 00000000..c7535cbe
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gcc-nm differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gcc-ranlib b/toolchains/arm/bin/arm-none-eabi-gcc-ranlib
new file mode 100644
index 00000000..1e0d6bd9
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gcc-ranlib differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gcov b/toolchains/arm/bin/arm-none-eabi-gcov
new file mode 100644
index 00000000..b60df641
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gcov differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gcov-dump b/toolchains/arm/bin/arm-none-eabi-gcov-dump
new file mode 100644
index 00000000..f709d1c2
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gcov-dump differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gcov-tool b/toolchains/arm/bin/arm-none-eabi-gcov-tool
new file mode 100644
index 00000000..96bbb7f7
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gcov-tool differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gdb b/toolchains/arm/bin/arm-none-eabi-gdb
new file mode 100644
index 00000000..05ef31d0
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gdb differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gdb-add-index b/toolchains/arm/bin/arm-none-eabi-gdb-add-index
new file mode 100644
index 00000000..b8324f1b
--- /dev/null
+++ b/toolchains/arm/bin/arm-none-eabi-gdb-add-index
@@ -0,0 +1,160 @@
+#! /bin/sh
+
+# Add a .gdb_index section to a file.
+
+# Copyright (C) 2010-2020 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# This program assumes gdb and objcopy are in $PATH.
+# If not, or you want others, pass the following in the environment
+GDB=${GDB:=gdb}
+OBJCOPY=${OBJCOPY:=objcopy}
+READELF=${READELF:=readelf}
+
+myname="${0##*/}"
+
+dwarf5=""
+if [ "$1" = "-dwarf-5" ]; then
+ dwarf5="$1"
+ shift
+fi
+
+if test $# != 1; then
+ echo "usage: $myname [-dwarf-5] FILE" 1>&2
+ exit 1
+fi
+
+file="$1"
+
+if test ! -r "$file"; then
+ echo "$myname: unable to access: $file" 1>&2
+ exit 1
+fi
+
+dir="${file%/*}"
+test "$dir" = "$file" && dir="."
+
+dwz_file=""
+if $READELF -S "$file" | grep -q " \.gnu_debugaltlink "; then
+ dwz_file=$($READELF --string-dump=.gnu_debugaltlink "$file" \
+ | grep -A1 "'\.gnu_debugaltlink':" \
+ | tail -n +2 \
+ | sed 's/.*]//')
+ dwz_file=$(echo $dwz_file)
+ if $READELF -S "$dwz_file" | grep -E -q " \.(gdb_index|debug_names) "; then
+ # Already has an index, skip it.
+ dwz_file=""
+ fi
+fi
+
+set_files ()
+{
+ local file="$1"
+
+ index4="${file}.gdb-index"
+ index5="${file}.debug_names"
+ debugstr="${file}.debug_str"
+ debugstrmerge="${file}.debug_str.merge"
+ debugstrerr="${file}.debug_str.err"
+}
+
+tmp_files=
+for f in "$file" "$dwz_file"; do
+ if [ "$f" = "" ]; then
+ continue
+ fi
+ set_files "$f"
+ tmp_files="$tmp_files $index4 $index5 $debugstr $debugstrmerge $debugstrerr"
+done
+
+rm -f $tmp_files
+
+# Ensure intermediate index file is removed when we exit.
+trap "rm -f $tmp_files" 0
+
+$GDB --batch -nx -iex 'set auto-load no' \
+ -ex "file $file" -ex "save gdb-index $dwarf5 $dir" || {
+ # Just in case.
+ status=$?
+ echo "$myname: gdb error generating index for $file" 1>&2
+ exit $status
+}
+
+# In some situations gdb can exit without creating an index. This is
+# not an error.
+# E.g., if $file is stripped. This behaviour is akin to stripping an
+# already stripped binary, it's a no-op.
+status=0
+
+handle_file ()
+{
+ local file
+ file="$1"
+
+ set_files "$file"
+
+ if test -f "$index4" -a -f "$index5"; then
+ echo "$myname: Both index types were created for $file" 1>&2
+ status=1
+ elif test -f "$index4" -o -f "$index5"; then
+ if test -f "$index4"; then
+ index="$index4"
+ section=".gdb_index"
+ else
+ index="$index5"
+ section=".debug_names"
+ fi
+ debugstradd=false
+ debugstrupdate=false
+ if test -s "$debugstr"; then
+ if ! $OBJCOPY --dump-section .debug_str="$debugstrmerge" "$file" \
+ /dev/null 2>$debugstrerr; then
+ cat >&2 $debugstrerr
+ exit 1
+ fi
+ if grep -q "can't dump section '.debug_str' - it does not exist" \
+ $debugstrerr; then
+ debugstradd=true
+ else
+ debugstrupdate=true
+ cat >&2 $debugstrerr
+ fi
+ cat "$debugstr" >>"$debugstrmerge"
+ fi
+
+ $OBJCOPY --add-section $section="$index" \
+ --set-section-flags $section=readonly \
+ $(if $debugstradd; then \
+ echo --add-section .debug_str="$debugstrmerge"; \
+ echo --set-section-flags .debug_str=readonly; \
+ fi; \
+ if $debugstrupdate; then \
+ echo --update-section .debug_str="$debugstrmerge"; \
+ fi) \
+ "$file" "$file"
+
+ status=$?
+ else
+ echo "$myname: No index was created for $file" 1>&2
+ echo "$myname: [Was there no debuginfo? Was there already an index?]" \
+ 1>&2
+ fi
+}
+
+handle_file "$file"
+if [ "$dwz_file" != "" ]; then
+ handle_file "$dwz_file"
+fi
+
+exit $status
diff --git a/toolchains/arm/bin/arm-none-eabi-gdb-add-index-py b/toolchains/arm/bin/arm-none-eabi-gdb-add-index-py
new file mode 100644
index 00000000..efaad1dc
--- /dev/null
+++ b/toolchains/arm/bin/arm-none-eabi-gdb-add-index-py
@@ -0,0 +1,116 @@
+#! /bin/sh
+
+# Add a .gdb_index section to a file.
+
+# Copyright (C) 2010-2019 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# This program assumes gdb and objcopy are in $PATH.
+# If not, or you want others, pass the following in the environment
+GDB=${GDB:=gdb}
+OBJCOPY=${OBJCOPY:=objcopy}
+
+myname="${0##*/}"
+
+dwarf5=""
+if [ "$1" = "-dwarf-5" ]; then
+ dwarf5="$1"
+ shift
+fi
+
+if test $# != 1; then
+ echo "usage: $myname [-dwarf-5] FILE" 1>&2
+ exit 1
+fi
+
+file="$1"
+
+if test ! -r "$file"; then
+ echo "$myname: unable to access: $file" 1>&2
+ exit 1
+fi
+
+dir="${file%/*}"
+test "$dir" = "$file" && dir="."
+index4="${file}.gdb-index"
+index5="${file}.debug_names"
+debugstr="${file}.debug_str"
+debugstrmerge="${file}.debug_str.merge"
+debugstrerr="${file}.debug_str.err"
+
+rm -f $index4 $index5 $debugstr $debugstrmerge $debugstrerr
+# Ensure intermediate index file is removed when we exit.
+trap "rm -f $index4 $index5 $debugstr $debugstrmerge $debugstrerr" 0
+
+$GDB --batch -nx -iex 'set auto-load no' \
+ -ex "file $file" -ex "save gdb-index $dwarf5 $dir" || {
+ # Just in case.
+ status=$?
+ echo "$myname: gdb error generating index for $file" 1>&2
+ exit $status
+}
+
+# In some situations gdb can exit without creating an index. This is
+# not an error.
+# E.g., if $file is stripped. This behaviour is akin to stripping an
+# already stripped binary, it's a no-op.
+status=0
+
+if test -f "$index4" -a -f "$index5"; then
+ echo "$myname: Both index types were created for $file" 1>&2
+ status=1
+elif test -f "$index4" -o -f "$index5"; then
+ if test -f "$index4"; then
+ index="$index4"
+ section=".gdb_index"
+ else
+ index="$index5"
+ section=".debug_names"
+ fi
+ debugstradd=false
+ debugstrupdate=false
+ if test -s "$debugstr"; then
+ if ! $OBJCOPY --dump-section .debug_str="$debugstrmerge" "$file" /dev/null \
+ 2>$debugstrerr; then
+ cat >&2 $debugstrerr
+ exit 1
+ fi
+ if grep -q "can't dump section '.debug_str' - it does not exist" \
+ $debugstrerr; then
+ debugstradd=true
+ else
+ debugstrupdate=true
+ cat >&2 $debugstrerr
+ fi
+ cat "$debugstr" >>"$debugstrmerge"
+ fi
+
+ $OBJCOPY --add-section $section="$index" \
+ --set-section-flags $section=readonly \
+ $(if $debugstradd; then \
+ echo --add-section .debug_str="$debugstrmerge"; \
+ echo --set-section-flags .debug_str=readonly; \
+ fi; \
+ if $debugstrupdate; then \
+ echo --update-section .debug_str="$debugstrmerge"; \
+ fi) \
+ "$file" "$file"
+
+ status=$?
+else
+ echo "$myname: No index was created for $file" 1>&2
+ echo "$myname: [Was there no debuginfo? Was there already an index?]" 1>&2
+fi
+
+exit $status
diff --git a/toolchains/arm/bin/arm-none-eabi-gdb-py b/toolchains/arm/bin/arm-none-eabi-gdb-py
new file mode 100644
index 00000000..a26c3502
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gdb-py differ
diff --git a/toolchains/arm/bin/arm-none-eabi-gprof b/toolchains/arm/bin/arm-none-eabi-gprof
new file mode 100644
index 00000000..3af1e5d9
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-gprof differ
diff --git a/toolchains/arm/bin/arm-none-eabi-ld b/toolchains/arm/bin/arm-none-eabi-ld
new file mode 100644
index 00000000..1b5f06a2
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-ld differ
diff --git a/toolchains/arm/bin/arm-none-eabi-ld.bfd b/toolchains/arm/bin/arm-none-eabi-ld.bfd
new file mode 100644
index 00000000..1b5f06a2
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-ld.bfd differ
diff --git a/toolchains/arm/bin/arm-none-eabi-nm b/toolchains/arm/bin/arm-none-eabi-nm
new file mode 100644
index 00000000..c84ddca7
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-nm differ
diff --git a/toolchains/arm/bin/arm-none-eabi-objcopy b/toolchains/arm/bin/arm-none-eabi-objcopy
new file mode 100644
index 00000000..709c4ce5
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-objcopy differ
diff --git a/toolchains/arm/bin/arm-none-eabi-objdump b/toolchains/arm/bin/arm-none-eabi-objdump
new file mode 100644
index 00000000..8653f2bc
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-objdump differ
diff --git a/toolchains/arm/bin/arm-none-eabi-ranlib b/toolchains/arm/bin/arm-none-eabi-ranlib
new file mode 100644
index 00000000..4c061ae1
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-ranlib differ
diff --git a/toolchains/arm/bin/arm-none-eabi-readelf b/toolchains/arm/bin/arm-none-eabi-readelf
new file mode 100644
index 00000000..68929134
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-readelf differ
diff --git a/toolchains/arm/bin/arm-none-eabi-run b/toolchains/arm/bin/arm-none-eabi-run
new file mode 100644
index 00000000..7f1fdf10
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-run differ
diff --git a/toolchains/arm/bin/arm-none-eabi-size b/toolchains/arm/bin/arm-none-eabi-size
new file mode 100644
index 00000000..f096eb49
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-size differ
diff --git a/toolchains/arm/bin/arm-none-eabi-strings b/toolchains/arm/bin/arm-none-eabi-strings
new file mode 100644
index 00000000..b396aca0
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-strings differ
diff --git a/toolchains/arm/bin/arm-none-eabi-strip b/toolchains/arm/bin/arm-none-eabi-strip
new file mode 100644
index 00000000..2bb77c68
Binary files /dev/null and b/toolchains/arm/bin/arm-none-eabi-strip differ
diff --git a/toolchains/avr/README.md b/toolchains/avr/README.md
new file mode 100644
index 00000000..e69de29b
diff --git a/toolchains/avr/bin/avr-addr2line b/toolchains/avr/bin/avr-addr2line
new file mode 100644
index 00000000..82fc567a
Binary files /dev/null and b/toolchains/avr/bin/avr-addr2line differ
diff --git a/toolchains/avr/bin/avr-ar b/toolchains/avr/bin/avr-ar
new file mode 100644
index 00000000..8ef0ac71
Binary files /dev/null and b/toolchains/avr/bin/avr-ar differ
diff --git a/toolchains/avr/bin/avr-as b/toolchains/avr/bin/avr-as
new file mode 100644
index 00000000..e1f1fca1
Binary files /dev/null and b/toolchains/avr/bin/avr-as differ
diff --git a/toolchains/avr/bin/avr-c++ b/toolchains/avr/bin/avr-c++
new file mode 100644
index 00000000..281d4c1d
Binary files /dev/null and b/toolchains/avr/bin/avr-c++ differ
diff --git a/toolchains/avr/bin/avr-c++filt b/toolchains/avr/bin/avr-c++filt
new file mode 100644
index 00000000..6d25524c
Binary files /dev/null and b/toolchains/avr/bin/avr-c++filt differ
diff --git a/toolchains/avr/bin/avr-cpp b/toolchains/avr/bin/avr-cpp
new file mode 100644
index 00000000..d9374e06
Binary files /dev/null and b/toolchains/avr/bin/avr-cpp differ
diff --git a/toolchains/avr/bin/avr-elfedit b/toolchains/avr/bin/avr-elfedit
new file mode 100644
index 00000000..236c1e81
Binary files /dev/null and b/toolchains/avr/bin/avr-elfedit differ
diff --git a/toolchains/avr/bin/avr-g++ b/toolchains/avr/bin/avr-g++
new file mode 100644
index 00000000..281d4c1d
Binary files /dev/null and b/toolchains/avr/bin/avr-g++ differ
diff --git a/toolchains/avr/bin/avr-gcc b/toolchains/avr/bin/avr-gcc
new file mode 100644
index 00000000..4c1c3940
Binary files /dev/null and b/toolchains/avr/bin/avr-gcc differ
diff --git a/toolchains/avr/bin/avr-gcc-5.4.0 b/toolchains/avr/bin/avr-gcc-5.4.0
new file mode 100644
index 00000000..4c1c3940
Binary files /dev/null and b/toolchains/avr/bin/avr-gcc-5.4.0 differ
diff --git a/toolchains/avr/bin/avr-gcc-ar b/toolchains/avr/bin/avr-gcc-ar
new file mode 100644
index 00000000..2593975a
Binary files /dev/null and b/toolchains/avr/bin/avr-gcc-ar differ
diff --git a/toolchains/avr/bin/avr-gcc-nm b/toolchains/avr/bin/avr-gcc-nm
new file mode 100644
index 00000000..e984904c
Binary files /dev/null and b/toolchains/avr/bin/avr-gcc-nm differ
diff --git a/toolchains/avr/bin/avr-gcc-ranlib b/toolchains/avr/bin/avr-gcc-ranlib
new file mode 100644
index 00000000..23499fa8
Binary files /dev/null and b/toolchains/avr/bin/avr-gcc-ranlib differ
diff --git a/toolchains/avr/bin/avr-gcov b/toolchains/avr/bin/avr-gcov
new file mode 100644
index 00000000..d17edcd1
Binary files /dev/null and b/toolchains/avr/bin/avr-gcov differ
diff --git a/toolchains/avr/bin/avr-gcov-tool b/toolchains/avr/bin/avr-gcov-tool
new file mode 100644
index 00000000..5cdb5310
Binary files /dev/null and b/toolchains/avr/bin/avr-gcov-tool differ
diff --git a/toolchains/avr/bin/avr-gdb b/toolchains/avr/bin/avr-gdb
new file mode 100644
index 00000000..06962fd0
Binary files /dev/null and b/toolchains/avr/bin/avr-gdb differ
diff --git a/toolchains/avr/bin/avr-gdb-py b/toolchains/avr/bin/avr-gdb-py
new file mode 100644
index 00000000..f75196b9
Binary files /dev/null and b/toolchains/avr/bin/avr-gdb-py differ
diff --git a/toolchains/avr/bin/avr-gprof b/toolchains/avr/bin/avr-gprof
new file mode 100644
index 00000000..0ab730d8
Binary files /dev/null and b/toolchains/avr/bin/avr-gprof differ
diff --git a/toolchains/avr/bin/avr-ld b/toolchains/avr/bin/avr-ld
new file mode 100644
index 00000000..791bf8ac
Binary files /dev/null and b/toolchains/avr/bin/avr-ld differ
diff --git a/toolchains/avr/bin/avr-ld.bfd b/toolchains/avr/bin/avr-ld.bfd
new file mode 100644
index 00000000..791bf8ac
Binary files /dev/null and b/toolchains/avr/bin/avr-ld.bfd differ
diff --git a/toolchains/avr/bin/avr-man b/toolchains/avr/bin/avr-man
new file mode 100644
index 00000000..fb34dba9
--- /dev/null
+++ b/toolchains/avr/bin/avr-man
@@ -0,0 +1,37 @@
+#! /bin/sh
+
+# Copyright (c) 2004, Joerg Wunsch
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of the copyright holders nor the names of
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+## man(1) replacement to access the avr-libc manual pages
+
+: ${DESTDIR:-}
+prefix=/home/toolsbuild/workspace/avr8-gnu-toolchain/avr8-gnu-toolchain-linux_x86_64
+datadir=/home/toolsbuild/workspace/avr8-gnu-toolchain/avr8-gnu-toolchain-linux_x86_64
+
+exec man -M /home/toolsbuild/workspace/avr8-gnu-toolchain/avr8-gnu-toolchain-linux_x86_64/doc/avr-libc/man "$@"
diff --git a/toolchains/avr/bin/avr-nm b/toolchains/avr/bin/avr-nm
new file mode 100644
index 00000000..5cbb844b
Binary files /dev/null and b/toolchains/avr/bin/avr-nm differ
diff --git a/toolchains/avr/bin/avr-objcopy b/toolchains/avr/bin/avr-objcopy
new file mode 100644
index 00000000..7f31dcc4
Binary files /dev/null and b/toolchains/avr/bin/avr-objcopy differ
diff --git a/toolchains/avr/bin/avr-objdump b/toolchains/avr/bin/avr-objdump
new file mode 100644
index 00000000..3883b08b
Binary files /dev/null and b/toolchains/avr/bin/avr-objdump differ
diff --git a/toolchains/avr/bin/avr-ranlib b/toolchains/avr/bin/avr-ranlib
new file mode 100644
index 00000000..34cc0b7d
Binary files /dev/null and b/toolchains/avr/bin/avr-ranlib differ
diff --git a/toolchains/avr/bin/avr-readelf b/toolchains/avr/bin/avr-readelf
new file mode 100644
index 00000000..98df2487
Binary files /dev/null and b/toolchains/avr/bin/avr-readelf differ
diff --git a/toolchains/avr/bin/avr-size b/toolchains/avr/bin/avr-size
new file mode 100644
index 00000000..c5bfce68
Binary files /dev/null and b/toolchains/avr/bin/avr-size differ
diff --git a/toolchains/avr/bin/avr-strings b/toolchains/avr/bin/avr-strings
new file mode 100644
index 00000000..92bcfe3c
Binary files /dev/null and b/toolchains/avr/bin/avr-strings differ
diff --git a/toolchains/avr/bin/avr-strip b/toolchains/avr/bin/avr-strip
new file mode 100644
index 00000000..648d5287
Binary files /dev/null and b/toolchains/avr/bin/avr-strip differ
diff --git a/toolchains/gcc b/toolchains/gcc
deleted file mode 160000
index e21a33c2..00000000
--- a/toolchains/gcc
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e21a33c232038574c67cb2a9222c4d5fbe33f7d3