├── nerves_toolchain_ctng ├── VERSION ├── .gitattributes ├── .gitignore ├── defaults │ ├── darwin_arm64_defconfig │ ├── darwin_x86_64_defconfig │ ├── linux_aarch64_defconfig │ ├── linux_x86_64_defconfig │ └── linux_arm_defconfig ├── mix.exs ├── mix.lock ├── scripts │ ├── archive.sh │ ├── unmerge_defconfig.exs │ └── apply-patches.sh ├── lib │ └── nerves_toolchain_ctng.ex ├── patches │ └── crosstool-ng │ │ ├── 0004-Fix-build-on-MacOS-12-Xcode-13.patch │ │ └── 0001-Fix-Linux-headers-build-on-OSX-for-x86.patch ├── README.md └── CHANGELOG.md ├── .gitignore ├── nerves_toolchain_i586_nerves_linux_gnu ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock ├── mix.exs └── LICENSE ├── nerves_toolchain_aarch64_nerves_linux_gnu ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock ├── mix.exs └── LICENSE ├── nerves_toolchain_aarch64_nerves_linux_musl ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock ├── mix.exs └── LICENSE ├── nerves_toolchain_armv5_nerves_linux_musleabi ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock └── mix.exs ├── nerves_toolchain_mipsel_nerves_linux_musl ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock ├── mix.exs └── LICENSE ├── nerves_toolchain_riscv64_nerves_linux_gnu ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock ├── mix.exs └── LICENSE ├── nerves_toolchain_riscv64_nerves_linux_musl ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock ├── mix.exs └── LICENSE ├── nerves_toolchain_x86_64_nerves_linux_gnu ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock ├── mix.exs └── LICENSE ├── nerves_toolchain_x86_64_nerves_linux_musl ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock ├── mix.exs └── LICENSE ├── nerves_toolchain_armv6_nerves_linux_gnueabihf ├── VERSION ├── .gitignore ├── defconfig ├── README.md ├── mix.lock └── mix.exs ├── nerves_toolchain_armv7_nerves_linux_gnueabihf ├── VERSION ├── mingw32_x86_64_defconfig ├── .gitignore ├── defconfig ├── README.md ├── mix.lock └── mix.exs ├── nerves_toolchain_armv7_nerves_linux_musleabihf ├── VERSION ├── mingw32_x86_64_defconfig ├── .gitignore ├── defconfig ├── README.md ├── mix.lock └── mix.exs ├── deprecated ├── nerves_toolchain_arm_unknown_linux_gnueabi │ ├── VERSION │ ├── mingw32_x86_64_defconfig │ ├── .gitignore │ ├── lib │ │ └── nerves_toolchain_arm_unknown_linux_gnueabi.ex │ ├── defconfig │ ├── nerves.exs │ ├── README.md │ └── mix.exs └── nerves_toolchain_x86_64_unknown_linux_musl │ ├── VERSION │ ├── lib │ └── nerves_toolchain_x86_64_unknown_linux_musl.ex │ ├── defconfig │ ├── .gitignore │ ├── nerves.exs │ ├── README.md │ └── mix.exs ├── .formatter.exs ├── support ├── smoketest │ └── main.cpp ├── scripts │ ├── clean-all.sh │ ├── push-to-hex.sh │ ├── update-deps.sh │ ├── set-version.sh │ ├── use-ctng-path-dep.sh │ ├── use-ctng-hex-dep.sh │ └── all-configs.sh └── docker │ └── toolchains │ └── Dockerfile ├── RELEASE.md ├── README.md └── CHANGELOG.md /nerves_toolchain_ctng/VERSION: -------------------------------------------------------------------------------- 1 | 1.11.0 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /dl 2 | /work-* 3 | *.xz 4 | *.dmg 5 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/.gitattributes: -------------------------------------------------------------------------------- 1 | *.sh eol=lf 2 | -------------------------------------------------------------------------------- /nerves_toolchain_i586_nerves_linux_gnu/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_gnu/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_musl/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_armv5_nerves_linux_musleabi/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_mipsel_nerves_linux_musl/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_gnu/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_musl/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_gnu/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_musl/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_armv6_nerves_linux_gnueabihf/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_gnueabihf/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_musleabihf/VERSION: -------------------------------------------------------------------------------- 1 | 14.2.0 2 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_arm_unknown_linux_gnueabi/VERSION: -------------------------------------------------------------------------------- 1 | 0.9.0 2 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_x86_64_unknown_linux_musl/VERSION: -------------------------------------------------------------------------------- 1 | 0.9.0 2 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_gnueabihf/mingw32_x86_64_defconfig: -------------------------------------------------------------------------------- 1 | CT_CANADIAN=y 2 | CT_HOST="arm-linux-gnueabihf" 3 | -------------------------------------------------------------------------------- /nerves_toolchain_i586_nerves_linux_gnu/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_gnu/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_musl/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_musleabihf/mingw32_x86_64_defconfig: -------------------------------------------------------------------------------- 1 | CT_CANADIAN=y 2 | CT_HOST="arm-linux-musleabihf" 3 | -------------------------------------------------------------------------------- /nerves_toolchain_mipsel_nerves_linux_musl/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_gnu/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_musl/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_gnu/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_musl/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_arm_unknown_linux_gnueabi/mingw32_x86_64_defconfig: -------------------------------------------------------------------------------- 1 | CT_CANADIAN=y 2 | CT_HOST="x86_64-w64-mingw32" 3 | -------------------------------------------------------------------------------- /nerves_toolchain_armv5_nerves_linux_musleabi/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_armv6_nerves_linux_gnueabihf/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_gnueabihf/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_musleabihf/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_arm_unknown_linux_gnueabi/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | /.nerves 7 | -------------------------------------------------------------------------------- /.formatter.exs: -------------------------------------------------------------------------------- 1 | # Used by "mix format" 2 | [ 3 | inputs: ["nerves_toolchain*/mix.exs", "nerves_toolchain*/{config,lib,test}/**/*.{ex,exs}"] 4 | ] 5 | -------------------------------------------------------------------------------- /support/smoketest/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | int main() 5 | { 6 | cout << "Hello, World!"; 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_x86_64_unknown_linux_musl/lib/nerves_toolchain_x86_64_unknown_linux_musl.ex: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainX8664NervesLinuxMusl do 2 | end 3 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_arm_unknown_linux_gnueabi/lib/nerves_toolchain_arm_unknown_linux_gnueabi.ex: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainArmNervesLinuxGnueabi do 2 | 3 | end 4 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_gnu/defconfig: -------------------------------------------------------------------------------- 1 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 2 | CT_ARCH_X86=y 3 | CT_ARCH_64=y 4 | CT_KERNEL_LINUX=y 5 | CT_LINUX_V_5_4=y 6 | CT_DEBUG_GDB=y 7 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_gnu/defconfig: -------------------------------------------------------------------------------- 1 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 2 | CT_ARCH_ARM=y 3 | CT_ARCH_64=y 4 | CT_KERNEL_LINUX=y 5 | CT_LINUX_V_5_4=y 6 | CT_LIBC_GLIBC=y 7 | CT_DEBUG_GDB=y -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_musl/defconfig: -------------------------------------------------------------------------------- 1 | CT_EXPERIMENTAL=y 2 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 3 | CT_ARCH_ARM=y 4 | CT_ARCH_64=y 5 | CT_KERNEL_LINUX=y 6 | CT_LINUX_V_5_4=y 7 | CT_LIBC_MUSL=y 8 | -------------------------------------------------------------------------------- /nerves_toolchain_i586_nerves_linux_gnu/defconfig: -------------------------------------------------------------------------------- 1 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 2 | CT_ARCH_X86=y 3 | CT_ARCH_ARCH="i586" 4 | CT_KERNEL_LINUX=y 5 | CT_LINUX_V_5_4=y 6 | CT_LIBC_GLIBC=y 7 | CT_DEBUG_GDB=y 8 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_musl/defconfig: -------------------------------------------------------------------------------- 1 | CT_EXPERIMENTAL=y 2 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 3 | CT_ARCH_X86=y 4 | CT_ARCH_64=y 5 | CT_KERNEL_LINUX=y 6 | CT_LINUX_V_5_4=y 7 | CT_LIBC_MUSL=y 8 | CT_DEBUG_GDB=y 9 | -------------------------------------------------------------------------------- /support/scripts/clean-all.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | . ./support/scripts/all-configs.sh 6 | 7 | for CONFIG in $CONFIGS; do 8 | echo "Cleaning $CONFIG..." 9 | cd $CONFIG 10 | rm -rf _build deps .nerves 11 | cd ../ 12 | done 13 | -------------------------------------------------------------------------------- /nerves_toolchain_mipsel_nerves_linux_musl/defconfig: -------------------------------------------------------------------------------- 1 | CT_EXPERIMENTAL=y 2 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 3 | CT_ARCH_MIPS=y 4 | CT_ARCH_LE=y 5 | CT_ARCH_ARCH="24kec" 6 | CT_ARCH_FLOAT_SW=y 7 | CT_KERNEL_LINUX=y 8 | CT_LINUX_V_5_4=y 9 | CT_LIBC_MUSL=y 10 | CT_DEBUG_GDB=y 11 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_gnueabihf/defconfig: -------------------------------------------------------------------------------- 1 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 2 | CT_ARCH_ARM=y 3 | CT_ARCH_CPU="generic-armv7-a" 4 | CT_ARCH_SUFFIX="v7" 5 | CT_ARCH_FPU="vfpv3-d16" 6 | CT_ARCH_FLOAT_HW=y 7 | CT_KERNEL_LINUX=y 8 | CT_LINUX_V_5_4=y 9 | CT_DEBUG_GDB=y 10 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/.gitignore: -------------------------------------------------------------------------------- 1 | /work* 2 | *.tgz 3 | *.xz 4 | *.gz 5 | *.bz2 6 | *.dmg 7 | *.zip 8 | 9 | # App artifacts 10 | /_build 11 | /db 12 | /deps 13 | /*.ez 14 | 15 | # Nerves artifacts 16 | /_images 17 | /.nerves 18 | 19 | # Generate on crash by the VM 20 | erl_crash.dump 21 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_musl/defconfig: -------------------------------------------------------------------------------- 1 | CT_EXPERIMENTAL=y 2 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 3 | CT_ARCH_RISCV=y 4 | CT_ARCH_USE_MMU=y 5 | CT_ARCH_64=y 6 | CT_ARCH_ARCH="rv64gc" 7 | CT_KERNEL_LINUX=y 8 | CT_LINUX_V_5_15=y 9 | CT_LIBC_MUSL=y 10 | CT_DEBUG_GDB=y 11 | -------------------------------------------------------------------------------- /support/scripts/push-to-hex.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | . ./support/scripts/all-configs.sh 6 | 7 | for CONFIG in $CONFIGS; do 8 | echo "Pushing $CONFIG to hex" 9 | cd $CONFIG 10 | mix deps.get 11 | mix hex.publish package --yes 12 | cd ../ 13 | done 14 | -------------------------------------------------------------------------------- /support/scripts/update-deps.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | . ./support/scripts/all-configs.sh 6 | 7 | for CONFIG in $CONFIGS; do 8 | echo "Updating deps for $CONFIG..." 9 | cd $CONFIG 10 | rm -f mix.lock 11 | mix deps.update --all 12 | cd ../ 13 | done 14 | -------------------------------------------------------------------------------- /nerves_toolchain_armv5_nerves_linux_musleabi/defconfig: -------------------------------------------------------------------------------- 1 | CT_EXPERIMENTAL=y 2 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 3 | CT_ARCH_ARM=y 4 | CT_ARCH_TUNE="arm926ej-s" 5 | CT_ARCH_SUFFIX="v5" 6 | CT_ARCH_ARCH="armv5te" 7 | CT_KERNEL_LINUX=y 8 | CT_LINUX_V_5_4=y 9 | CT_LIBC_MUSL=y 10 | CT_DEBUG_GDB=y 11 | -------------------------------------------------------------------------------- /nerves_toolchain_armv6_nerves_linux_gnueabihf/defconfig: -------------------------------------------------------------------------------- 1 | CT_EXPERIMENTAL=y 2 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 3 | CT_ARCH_ARM=y 4 | CT_ARCH_CPU="arm1176jzf-s" 5 | CT_ARCH_SUFFIX="v6" 6 | CT_ARCH_FPU="vfp" 7 | CT_ARCH_FLOAT_HW=y 8 | CT_KERNEL_LINUX=y 9 | CT_LINUX_V_5_4=y 10 | CT_LIBC_GLIBC=y 11 | CT_DEBUG_GDB=y 12 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_gnu/defconfig: -------------------------------------------------------------------------------- 1 | CT_EXPERIMENTAL=y 2 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 3 | CT_ARCH_RISCV=y 4 | CT_MULTILIB=y 5 | CT_ARCH_USE_MMU=y 6 | CT_ARCH_64=y 7 | CT_ARCH_ARCH="rv64gc" 8 | CT_KERNEL_LINUX=y 9 | CT_LINUX_V_5_15=y 10 | # CT_CREATE_LDSO_CONF is not set 11 | CT_DEBUG_GDB=y 12 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_musleabihf/defconfig: -------------------------------------------------------------------------------- 1 | CT_EXPERIMENTAL=y 2 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 3 | CT_ARCH_ARM=y 4 | CT_ARCH_CPU="generic-armv7-a" 5 | CT_ARCH_SUFFIX="v7" 6 | CT_ARCH_FPU="vfpv3-d16" 7 | CT_ARCH_FLOAT_HW=y 8 | CT_KERNEL_LINUX=y 9 | CT_LINUX_V_5_4=y 10 | CT_LIBC_MUSL=y 11 | CT_DEBUG_GDB=y 12 | -------------------------------------------------------------------------------- /support/scripts/set-version.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | NEW_VERSION=$1 6 | 7 | if [[ -z "$NEW_VERSION" ]]; then 8 | echo "Specify the new version" 9 | exit 1 10 | fi 11 | 12 | . ./support/scripts/all-configs.sh 13 | 14 | for CONFIG in $CONFIGS; do 15 | echo "Updating version for $CONFIG..." 16 | echo $NEW_VERSION > $CONFIG/VERSION 17 | done 18 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_arm_unknown_linux_gnueabi/defconfig: -------------------------------------------------------------------------------- 1 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 2 | CT_SAVE_TARBALLS=y 3 | CT_PREFIX_DIR="${CT_TOP_DIR}/../x-tools/${CT_TARGET}" 4 | CT_LOG_EXTRA=y 5 | CT_ARCH_arm=y 6 | CT_KERNEL_linux=y 7 | CT_KERNEL_V_3_4=y 8 | CT_BINUTILS_LINKER_LD_GOLD=y 9 | CT_BINUTILS_GOLD_THREADS=y 10 | CT_BINUTILS_LD_WRAPPER=y 11 | CT_BINUTILS_PLUGINS=y 12 | CT_LIBC_GLIBC_V_2_21=y -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_x86_64_unknown_linux_musl/defconfig: -------------------------------------------------------------------------------- 1 | CT_EXPERIMENTAL=y 2 | CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/../dl" 3 | CT_SAVE_TARBALLS=y 4 | CT_PREFIX_DIR="${CT_TOP_DIR}/../x-tools/${CT_TARGET}" 5 | CT_LOG_EXTRA=y 6 | CT_ARCH_64=y 7 | CT_ARCH_x86=y 8 | CT_KERNEL_linux=y 9 | CT_KERNEL_V_3_4=y 10 | CT_BINUTILS_LINKER_LD_GOLD=y 11 | CT_BINUTILS_GOLD_THREADS=y 12 | CT_BINUTILS_LD_WRAPPER=y 13 | CT_BINUTILS_PLUGINS=y 14 | CT_LIBC_musl=y -------------------------------------------------------------------------------- /nerves_toolchain_ctng/defaults/darwin_arm64_defconfig: -------------------------------------------------------------------------------- 1 | CT_CONFIG_VERSION="4" 2 | CT_TARBALLS_BUILDROOT_LAYOUT=y 3 | CT_PREFIX_DIR="../x-tools/${CT_TARGET}" 4 | CT_STATIC_TOOLCHAIN=y 5 | CT_TARGET_VENDOR="nerves" 6 | CT_EXTRA_CFLAGS_FOR_BUILD="-I/opt/homebrew/include" 7 | CT_EXTRA_LDFLAGS_FOR_BUILD="-L/opt/homebrew/lib -lintl" 8 | # CT_CC_GCC_STATIC_LIBSTDCXX is not set 9 | # CT_CC_GCC_LTO_ZSTD is not set 10 | CT_CC_GCC_LIBGOMP=y 11 | CT_CC_GCC_BUILD_ID=y 12 | CT_CC_LANG_CXX=y 13 | CT_CC_LANG_FORTRAN=y 14 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/defaults/darwin_x86_64_defconfig: -------------------------------------------------------------------------------- 1 | CT_CONFIG_VERSION="4" 2 | CT_TARBALLS_BUILDROOT_LAYOUT=y 3 | CT_PREFIX_DIR="../x-tools/${CT_TARGET}" 4 | CT_STATIC_TOOLCHAIN=y 5 | CT_TARGET_VENDOR="nerves" 6 | CT_EXTRA_CFLAGS_FOR_BUILD="-I/usr/local/opt/gettext/include" 7 | CT_EXTRA_LDFLAGS_FOR_BUILD="-L/usr/local/opt/gettext/lib -lintl" 8 | # CT_CC_GCC_STATIC_LIBSTDCXX is not set 9 | # CT_CC_GCC_LTO_ZSTD is not set 10 | CT_CC_GCC_LIBGOMP=y 11 | CT_CC_GCC_BUILD_ID=y 12 | CT_CC_LANG_CXX=y 13 | CT_CC_LANG_FORTRAN=y 14 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/defaults/linux_aarch64_defconfig: -------------------------------------------------------------------------------- 1 | CT_CONFIG_VERSION="4" 2 | CT_TARBALLS_BUILDROOT_LAYOUT=y 3 | # Work around an issue with arguments taking up too much memory due to long 4 | # paths. See "build.sh" for the other part of this workaround. 5 | CT_WORK_DIR="/tmp/ctng-work" 6 | CT_PREFIX_DIR="../x-tools/${CT_TARGET}" 7 | CT_STATIC_TOOLCHAIN=y 8 | CT_TARGET_VENDOR="nerves" 9 | # CT_CC_GCC_LTO_ZSTD is not set 10 | CT_CC_GCC_LIBGOMP=y 11 | CT_CC_GCC_BUILD_ID=y 12 | CT_CC_LANG_CXX=y 13 | CT_CC_LANG_FORTRAN=y 14 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/defaults/linux_x86_64_defconfig: -------------------------------------------------------------------------------- 1 | CT_CONFIG_VERSION="4" 2 | CT_TARBALLS_BUILDROOT_LAYOUT=y 3 | # Work around an issue with arguments taking up too much memory due to long 4 | # paths. See "build.sh" for the other part of this workaround. 5 | CT_WORK_DIR="/tmp/ctng-work" 6 | CT_PREFIX_DIR="../x-tools/${CT_TARGET}" 7 | CT_STATIC_TOOLCHAIN=y 8 | CT_TARGET_VENDOR="nerves" 9 | # CT_CC_GCC_LTO_ZSTD is not set 10 | CT_CC_GCC_LIBGOMP=y 11 | CT_CC_GCC_BUILD_ID=y 12 | CT_CC_LANG_CXX=y 13 | CT_CC_LANG_FORTRAN=y 14 | -------------------------------------------------------------------------------- /support/scripts/use-ctng-path-dep.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | . ./support/scripts/all-configs.sh 6 | 7 | BUILD_OS=$(uname -s) 8 | if [[ $BUILD_OS = "Darwin" || $BUILD_OS = "darwin" ]]; then 9 | SED=gsed 10 | else 11 | SED=sed 12 | fi 13 | 14 | for CONFIG in $CONFIGS; do 15 | echo "Updating deps for $CONFIG..." 16 | cd $CONFIG 17 | $SED -ri 's/nerves_toolchain_ctng, ".*[0-9]+.[0-9]+.[0-9]+"/nerves_toolchain_ctng, path: "..\/nerves_toolchain_ctng"/' mix.exs 18 | cd ../ 19 | done 20 | -------------------------------------------------------------------------------- /support/scripts/use-ctng-hex-dep.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | . ./support/scripts/all-configs.sh 6 | 7 | BUILD_OS=$(uname -s) 8 | if [[ $BUILD_OS = "Darwin" || $BUILD_OS = "darwin" ]]; then 9 | SED=gsed 10 | else 11 | SED=sed 12 | fi 13 | 14 | for CONFIG in $CONFIGS; do 15 | echo "Updating deps for $CONFIG..." 16 | cd $CONFIG 17 | $SED -ri 's/nerves_toolchain_ctng, path: "..\/nerves_toolchain_ctng"/nerves_toolchain_ctng, "~> 1.11.0"/' mix.exs 18 | rm mix.lock 19 | mix deps.update --all 20 | cd ../ 21 | done 22 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_x86_64_unknown_linux_musl/.gitignore: -------------------------------------------------------------------------------- 1 | # The directory Mix will write compiled artifacts to. 2 | /_build 3 | 4 | # If you run "mix test --cover", coverage assets end up here. 5 | /cover 6 | 7 | # The directory Mix downloads your dependencies sources to. 8 | /deps 9 | 10 | # Where 3rd-party dependencies like ExDoc output generated docs. 11 | /doc 12 | 13 | # If the VM crashes, it generates a dump, let's ignore it too. 14 | erl_crash.dump 15 | 16 | # Also ignore archive artifacts (built via "mix archive.build"). 17 | *.ez 18 | 19 | /.nerves 20 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/defaults/linux_arm_defconfig: -------------------------------------------------------------------------------- 1 | CT_CONFIG_VERSION="4" 2 | CT_TARBALLS_BUILDROOT_LAYOUT=y 3 | # Work around an issue with arguments taking up too much memory due to long 4 | # paths. See "build.sh" for the other part of this workaround. 5 | CT_WORK_DIR="/tmp/ctng-work" 6 | CT_PREFIX_DIR="../x-tools/${CT_TARGET}" 7 | CT_STATIC_TOOLCHAIN=y 8 | CT_TARGET_VENDOR="nerves" 9 | # CT_CC_GCC_LTO_ZSTD is not set 10 | CT_CANADIAN=y 11 | CT_HOST="arm-linux-gnueabihf" 12 | CT_CC_GCC_LIBGOMP=y 13 | CT_CC_GCC_BUILD_ID=y 14 | CT_CC_LANG_CXX=y 15 | CT_CC_LANG_FORTRAN=y 16 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_arm_unknown_linux_gnueabi/nerves.exs: -------------------------------------------------------------------------------- 1 | use Mix.Config 2 | 3 | version = 4 | Path.join(__DIR__, "VERSION") 5 | |> File.read! 6 | |> String.strip 7 | 8 | app = :nerves_toolchain_arm_nerves_linux_gnueabi 9 | 10 | config app, :nerves_env, 11 | type: :toolchain, 12 | version: version, 13 | compiler: :nerves_package, 14 | platform: Nerves.Toolchain.CTNG, 15 | target_tuple: :arm_nerves_linux_gnueabi, 16 | artifact_url: [ 17 | "https://github.com/nerves-project/toolchains/releases/download/v#{version}/#{app}-#{version}.#{Nerves.Env.host_platform}-#{Nerves.Env.host_arch}.tar.xz" 18 | ], 19 | checksum: [ 20 | "defconfig", 21 | "VERSION" 22 | ] 23 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_x86_64_unknown_linux_musl/nerves.exs: -------------------------------------------------------------------------------- 1 | use Mix.Config 2 | 3 | version = 4 | Path.join(__DIR__, "VERSION") 5 | |> File.read! 6 | |> String.strip 7 | 8 | app = :nerves_toolchain_x86_64_nerves_linux_musl 9 | 10 | config app, :nerves_env, 11 | type: :toolchain, 12 | version: version, 13 | compiler: :nerves_package, 14 | platform: Nerves.Toolchain.CTNG, 15 | target_tuple: :x86_64_nerves_linux_musl, 16 | artifact_url: [ 17 | "https://github.com/nerves-project/toolchains/releases/download/v#{version}/#{app}-#{version}.#{Nerves.Env.host_platform}-#{Nerves.Env.host_arch}.tar.xz" 18 | ], 19 | checksum: [ 20 | "defconfig", 21 | "VERSION" 22 | ] 23 | -------------------------------------------------------------------------------- /support/scripts/all-configs.sh: -------------------------------------------------------------------------------- 1 | # This file lists out all of the currently supported configurations 2 | 3 | CONFIGS="\ 4 | nerves_toolchain_riscv64_nerves_linux_musl \ 5 | nerves_toolchain_riscv64_nerves_linux_gnu \ 6 | nerves_toolchain_armv7_nerves_linux_gnueabihf \ 7 | nerves_toolchain_armv7_nerves_linux_musleabihf \ 8 | nerves_toolchain_x86_64_nerves_linux_musl \ 9 | nerves_toolchain_armv6_nerves_linux_gnueabihf \ 10 | nerves_toolchain_x86_64_nerves_linux_gnu \ 11 | nerves_toolchain_armv5_nerves_linux_musleabi \ 12 | nerves_toolchain_mipsel_nerves_linux_musl \ 13 | nerves_toolchain_aarch64_nerves_linux_gnu \ 14 | nerves_toolchain_aarch64_nerves_linux_musl \ 15 | nerves_toolchain_i586_nerves_linux_gnu" 16 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_gnu/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: aarch64_nerves_linux_gnu 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_aarch64_nerves_linux_gnu.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_aarch64_nerves_linux_gnu) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_musl/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: aarch64_nerves_linux_musl 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_aarch64_nerves_linux_musl.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_aarch64_nerves_linux_musl) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | -------------------------------------------------------------------------------- /nerves_toolchain_mipsel_nerves_linux_musl/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: mipsel_nerves_linux_musl 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_mipsel_nerves_linux_musl.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_mipsel_nerves_linux_musl) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_gnu/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: riscv64_nerves_linux_gnu 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_riscv64_nerves_linux_gnu.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_riscv64_nerves_linux_gnu) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_musl/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: riscv64_nerves_linux_musl 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_riscv64_nerves_linux_musl.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_riscv64_nerves_linux_musl) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | -------------------------------------------------------------------------------- /nerves_toolchain_i586_nerves_linux_gnu/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: i586_nerves_linux_gnu 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_i586_nerves_linux_gnu.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_nerves_toolchain_i586_nerves_linux_gnu) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_gnu/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: x86_64_nerves_linux_gnu 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_x86_64_nerves_linux_gnu.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_x86_64_nerves_linux_gnu) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | This toolchain is used for 64-bit Intel platforms. 17 | 18 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_musl/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: x86_64_nerves_linux_musl 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_x86_64_nerves_linux_musl.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_x86_64_nerves_linux_musl) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new target), 8 | you don't need to use this directly. In fact, even if you're developing for a 9 | new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for the 14 | scripts used to generate the actual cross-compiler. 15 | 16 | This toolchain is used for 64-bit Intel platforms. 17 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_x86_64_unknown_linux_musl/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: x86_64-nerves-linux-musl 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_x86_64_nerves_linux_musl.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_x86_64_nerves_linux_musl) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | This toolchain is used for 64-bit Intel platforms. 17 | 18 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_arm_unknown_linux_gnueabi/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: arm_nerves_linux_gnueabi 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_arm_nerves_linux_gnueabi.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_arm_nerves_linux_gnueabi) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | This toolchain is used by the `ev3` target. It is useful for ARM7 processors 17 | that lack hardware floating point. 18 | 19 | -------------------------------------------------------------------------------- /nerves_toolchain_armv5_nerves_linux_musleabi/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: armv5-nerves-linux-musleabi 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_armv5_nerves_linux_musleabi.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_armv5_nerves_linux_musleabi) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | This toolchain is used by the `ev3` target. It is useful for ARM7 processors 17 | that lack hardware floating point. 18 | 19 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_gnueabihf/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: arm_nerves_linux_gnueabihf 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_armv7_nerves_linux_gnueabihf.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_armv7_nerves_linux_gnueabihf) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | Bootlin reference configuration - https://github.com/bootlin/toolchains-builder/blob/master/configs/arch/armv7-eabihf.config 17 | 18 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_musleabihf/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: arm_nerves_linux_musleabihf 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_armv7_nerves_linux_musleabihf.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_armv7_nerves_linux_musleabihf) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | Bootlin reference configuration - https://github.com/bootlin/toolchains-builder/blob/master/configs/arch/armv7-eabihf.config 17 | 18 | -------------------------------------------------------------------------------- /nerves_toolchain_armv6_nerves_linux_gnueabihf/README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchain: armv6_nerves_linux_gnueabi 2 | 3 | [![Hex version](https://img.shields.io/hexpm/v/nerves_toolchain_armv6_nerves_linux_gnueabihf.svg "Hex version")](https://hex.pm/packages/nerves_toolchain_armv6_nerves_linux_gnueabihf) 4 | 5 | This is a Nerves Toolchain repository. 6 | 7 | If you're just trying to use Nerves (i.e., not adding support for a new 8 | target), you don't need to use this directly. In fact, even if you're 9 | developing for a new target, we may already have a cross-compiler available. 10 | 11 | This project's purpose is to contain the information for hex.pm so that Nerves 12 | cross-compilers can be referenced in `mix`. See 13 | [nerves-toolchain](https://github.com/nerves-project/nerves-toolchain) for 14 | the scripts used to generate the actual cross-compiler. 15 | 16 | This Toolchain is only used by the `rpi` target to support slightly more hardware 17 | acceleration on the Raspberry Pi Zero, Model A+, and Model B+ than would otherwise 18 | be possible. 19 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule Nerves.Toolchain.Ctng.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_ctng 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.4", 14 | nerves_package: [type: :toolchain_platform], 15 | description: description(), 16 | package: package(), 17 | deps: deps() 18 | ] 19 | end 20 | 21 | defp deps do 22 | [{:nerves, "~> 1.0", runtime: false}] 23 | end 24 | 25 | defp description do 26 | """ 27 | Nerves Toolchain CTNG - Toolchain Platform 28 | """ 29 | end 30 | 31 | defp package do 32 | [ 33 | files: [ 34 | "lib", 35 | "patches", 36 | "scripts", 37 | "build.sh", 38 | "README.md", 39 | "LICENSE", 40 | "mix.exs", 41 | "VERSION", 42 | "defaults" 43 | ], 44 | licenses: ["Apache-2.0"], 45 | links: %{"Github" => "https://github.com/nerves-project/toolchains"} 46 | ] 47 | end 48 | end 49 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | } 7 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_x86_64_unknown_linux_musl/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainX8664NervesLinuxMusl.MixProject do 2 | use Mix.Project 3 | 4 | @version Path.join(__DIR__, "VERSION") 5 | |> File.read!() 6 | |> String.strip() 7 | 8 | def project do 9 | [ 10 | app: :nerves_toolchain_x86_64_nerves_linux_musl, 11 | version: @version, 12 | elixir: "~> 1.4", 13 | compilers: Mix.compilers() ++ [:nerves_package], 14 | description: description(), 15 | package: package(), 16 | deps: deps() 17 | ] 18 | end 19 | 20 | def application do 21 | [ 22 | env: [ 23 | target_tuple: :x86_64_nerves_linux_musl 24 | ] 25 | ] 26 | end 27 | 28 | defp deps do 29 | [{:nerves, "~> 0.4.0"}, {:nerves_toolchain_ctng, "~> 0.8.0"}] 30 | end 31 | 32 | defp description do 33 | """ 34 | Nerves Toolchain - x86_64-nerves-linux-musl 35 | """ 36 | end 37 | 38 | defp package do 39 | [ 40 | files: ["lib", "defconfig", "README.md", "LICENSE", "nerves.exs", "mix.exs", "VERSION"], 41 | licenses: ["Apache 2.0"], 42 | links: %{ 43 | "Github" => 44 | "https://github.com/nerves-project/toolchains/nerves_toolchain_x86_64_nerves_linux_musl" 45 | } 46 | ] 47 | end 48 | end 49 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/scripts/archive.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Example 4 | # 5 | # archive.sh /path/to/build_dir /path/to/artifact.tar.xz 6 | 7 | 8 | set -e 9 | 10 | WORK_DIR=$1 11 | TARBALL_PATH=$2 12 | 13 | GCC_INSTALL_DIR=$WORK_DIR/x-tools 14 | 15 | BUILD_OS=$(uname -s) 16 | 17 | if [[ $BUILD_OS = "Darwin" || $BUILD_OS = "darwin" ]]; then 18 | # Use GNU tar from Homebrew (brew install gnu-tar) 19 | TAR=gtar 20 | else 21 | TAR=tar 22 | fi 23 | 24 | gcc_tuple() 25 | { 26 | # Figure out the target's tuple. It's the name of the only directory. 27 | # Don't call this until after build_gcc() 28 | tuplepath=$(ls "$GCC_INSTALL_DIR") 29 | if [[ -e $tuplepath ]]; then 30 | echo "unknown" 31 | else 32 | basename "$tuplepath" 33 | fi 34 | } 35 | 36 | echo Building archive... 37 | 38 | # Assemble the tarball for the toolchain 39 | TARGET_TUPLE=$(gcc_tuple) 40 | TAR_PATH="${TARBALL_PATH%.xz}" 41 | TOOLCHAIN_NAME_WITH_HASH="$(basename "$TARBALL_PATH" .tar.xz)" 42 | TOOLCHAIN_NAME="${TOOLCHAIN_NAME_WITH_HASH%-[0-9A-F]*}" 43 | 44 | rm -f "$TARBALL_PATH" "$TAR_PATH" 45 | mv "$GCC_INSTALL_DIR/$TARGET_TUPLE" "$GCC_INSTALL_DIR/$TOOLCHAIN_NAME" 46 | $TAR c -C "$GCC_INSTALL_DIR" -f "$TAR_PATH" "$TOOLCHAIN_NAME" 47 | mv "$GCC_INSTALL_DIR/$TOOLCHAIN_NAME" "$GCC_INSTALL_DIR/$TARGET_TUPLE" 48 | 49 | echo Compressing archive... 50 | xz "$TAR_PATH" 51 | -------------------------------------------------------------------------------- /deprecated/nerves_toolchain_arm_unknown_linux_gnueabi/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainArmNervesLinuxGnueabi.MixProject do 2 | use Mix.Project 3 | 4 | @version Path.join(__DIR__, "VERSION") 5 | |> File.read!() 6 | |> String.strip() 7 | 8 | def project do 9 | [ 10 | app: :nerves_toolchain_arm_nerves_linux_gnueabi, 11 | version: @version, 12 | elixir: "~> 1.4", 13 | compilers: Mix.compilers() ++ [:nerves_package], 14 | description: description(), 15 | package: package(), 16 | deps: deps() 17 | ] 18 | end 19 | 20 | def application do 21 | [ 22 | env: [ 23 | target_tuple: :arm_nerves_linux_gnueabi 24 | ] 25 | ] 26 | end 27 | 28 | defp deps do 29 | [{:nerves, "~> 0.4.0"}, {:nerves_toolchain_ctng, "~> 0.8.0"}] 30 | end 31 | 32 | defp description do 33 | """ 34 | Nerves Toolchain - arm-nerves-linux-gnueabi 35 | """ 36 | end 37 | 38 | defp package do 39 | [ 40 | files: [ 41 | "lib", 42 | "defconfig", 43 | "mingw32_x86_64_defconfig", 44 | "README.md", 45 | "LICENSE", 46 | "nerves.exs", 47 | "mix.exs", 48 | "VERSION" 49 | ], 50 | licenses: ["Apache 2.0"], 51 | links: %{ 52 | "Github" => 53 | "https://github.com/nerves-project/toolchains/nerves_toolchain_arm_nerves_linux_gnueabi" 54 | } 55 | ] 56 | end 57 | end 58 | -------------------------------------------------------------------------------- /nerves_toolchain_i586_nerves_linux_gnu/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_gnu/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_musl/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_armv5_nerves_linux_musleabi/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_mipsel_nerves_linux_musl/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_gnu/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_musl/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_gnu/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_musl/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_armv6_nerves_linux_gnueabihf/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_gnueabihf/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_musleabihf/mix.lock: -------------------------------------------------------------------------------- 1 | %{ 2 | "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, 3 | "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, 4 | "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, 5 | "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, 6 | "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, 7 | } 8 | -------------------------------------------------------------------------------- /support/docker/toolchains/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM hexpm/elixir:1.14.2-erlang-25.2-ubuntu-bionic-20210930 2 | MAINTAINER Nerves Project 3 | LABEL maintainer="Nerves Project developers " \ 4 | vendor="NervesProject" \ 5 | description="Container with everything needed to build Nerves toolchains" 6 | 7 | # Setup environment 8 | ENV DEBIAN_FRONTEND noninteractive 9 | ENV LANG=C.UTF-8 10 | ENV TERM=xterm 11 | 12 | # Install packages 13 | RUN apt-get update && \ 14 | apt-get -y install \ 15 | git \ 16 | curl \ 17 | build-essential \ 18 | libtool \ 19 | gperf \ 20 | bison \ 21 | flex \ 22 | texinfo \ 23 | wget \ 24 | gawk \ 25 | libtool-bin \ 26 | libncurses5-dev \ 27 | help2man \ 28 | ca-certificates \ 29 | unzip \ 30 | lzip \ 31 | python3 \ 32 | rsync && \ 33 | apt-get clean && \ 34 | rm -rf /var/lib/apt/lists/* 35 | 36 | RUN mkdir -p /tmp/build 37 | 38 | # Install autoconf and automake since Crosstool-NG requires newer versions 39 | RUN cd /tmp/build && \ 40 | wget https://ftp.gnu.org/gnu/autoconf/autoconf-2.71.tar.gz && \ 41 | tar xvzf autoconf-2.71.tar.gz && \ 42 | cd autoconf-2.71 && \ 43 | ./configure --prefix=/usr && \ 44 | make && \ 45 | make install 46 | 47 | RUN cd /tmp/build && \ 48 | wget https://ftp.gnu.org/gnu/automake/automake-1.16.tar.gz && \ 49 | tar xvzf automake-1.16.tar.gz && \ 50 | cd automake-1.16 && \ 51 | ./configure --prefix=/usr && \ 52 | make && \ 53 | make install 54 | 55 | RUN rm -fr /tmp/build 56 | 57 | # Set up ssh 58 | RUN mkdir -p /root/.ssh && \ 59 | ssh-keyscan -t rsa github.com > /root/.ssh/known_hosts && \ 60 | chmod 700 /root/.ssh && \ 61 | chmod 600 /root/.ssh/known_hosts 62 | 63 | # Add the nerves user 64 | RUN useradd -ms /bin/bash nerves 65 | USER nerves 66 | -------------------------------------------------------------------------------- /RELEASE.md: -------------------------------------------------------------------------------- 1 | # Release Instructions 2 | 3 | Since all toolchains share the same repository, release versions many not contain artifacts for all toolchains. 4 | 5 | These steps must be repeated for each toolchain that is part of the overall release. 6 | 7 | `` is a placeholder for the name of the toolchain you are building. 8 | 9 | **Changing Version** 10 | - [ ] Check mix deps for version bumps and ensure that they are pushed and pointed to Hex 11 | (`nerves_toolchain_ctng`/`nerves_toolchain` | `nerves`) 12 | - [ ] Bump version in related files listed below 13 | - [ ] Commit changes 14 | - [ ] Tag repository 15 | 16 | **Building Artifacts** 17 | 18 | Artifacts need to be produced for all host / target combinations for the toolchains being released. 19 | 20 | - [ ] Linux (On Linux): `nerves_toolchain_ctng/build.sh ` 21 | - [ ] macOS (On macOS): `nerves_toolchain_ctng/build.sh ` 22 | 23 | Canadian Cross builds 24 | 25 | - [ ] arm 26 | 27 | Download the RaspberryPi cross-toolchain 28 | 29 | ``` 30 | $ git clone git://github.com/raspberrypi/tools.git 31 | ``` 32 | 33 | Build the toolchain 34 | 35 | ``` 36 | $ export HOST_OS=linux 37 | $ export HOST_ARCH=arm 38 | $ export PATH=/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin 39 | $ ./nerves_toolchain_ctng/build.sh 40 | ``` 41 | 42 | - [ ] Windows 43 | 44 | Install mingw 45 | 46 | ``` 47 | $ sudo apt-get install g++-mingw-w64-x86-64 48 | ``` 49 | 50 | Build the toolchain 51 | 52 | ``` 53 | $ export HOST_OS=mingw32 54 | $ ./nerves_toolchain_ctng/build.sh 55 | ``` 56 | 57 | **Publishing the Release** 58 | 59 | - [ ] Push changes 60 | - [ ] Start a new Github release with tag 61 | - [ ] Upload toolchains to Github release 62 | - [ ] Publish release 63 | - [ ] Test pulling the artifact `mix do deps.get, compile` 64 | - [ ] Push to hex `mix hex.publish package` 65 | - [ ] Start `-dev` version 66 | 67 | ## Files with Version 68 | 69 | * `CHANGELOG.md` 70 | * `/mix.exs` 71 | * `/VERSION` 72 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/scripts/unmerge_defconfig.exs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env elixir 2 | 3 | defmodule Unmerger do 4 | def load(filename) do 5 | File.stream!(filename) 6 | |> Enum.to_list 7 | |> Enum.map(&String.trim/1) 8 | end 9 | 10 | def remove_fragments(result, frag) do 11 | result 12 | |> Enum.filter(fn line -> line not in frag end) 13 | end 14 | 15 | # Check if the configs are similar enough. Some discrepancies 16 | # are allowed due to host platform differences or clarity of 17 | # the configs. 18 | def is_similar_enough(orig, got) do 19 | List.myers_difference(orig, got) 20 | |> Enum.flat_map(&expand_myers_difference/1) 21 | |> Enum.all?(&delta_ok/1) 22 | end 23 | 24 | defp expand_myers_difference({op, list}) do 25 | for item <- list do 26 | {op, item} 27 | end 28 | end 29 | 30 | defp delta_ok({:eq, _}), do: true 31 | defp delta_ok({:del, "CT_LIBC_GLIBC=y"}), do: true 32 | defp delta_ok({:del, "CT_CONFIG_VERSION=\"3\""}), do: true 33 | defp delta_ok(delta) do 34 | IO.puts("ERROR: defconfig delta not ok -> #{inspect delta}") 35 | false 36 | end 37 | 38 | def save(filename, contents) do 39 | lines = Enum.map(contents, fn line -> line <> "\n" end) 40 | File.write!(filename, lines) 41 | end 42 | 43 | def main([original_defconfig, fragment_defconfig, resulting_defconfig]) do 44 | IO.puts("Unmerging #{resulting_defconfig} into #{original_defconfig} using #{fragment_defconfig}\n") 45 | orig = load(original_defconfig) 46 | frag = load(fragment_defconfig) 47 | result = load(resulting_defconfig) 48 | 49 | desired = remove_fragments(result, frag) 50 | 51 | if !is_similar_enough(orig, desired) do 52 | IO.puts("\n\nDifferences detected between the original defconfig and the resulting one!!!") 53 | IO.puts("Please fix. I'm going to update the original for you to check.") 54 | 55 | save(original_defconfig, desired) 56 | 1 57 | else 58 | 0 59 | end 60 | end 61 | 62 | def main(_) do 63 | IO.puts("unmerge_defconfig.exs ") 64 | 1 65 | end 66 | end 67 | 68 | Unmerger.main(System.argv()) 69 | |> :init.stop() 70 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_gnu/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainRISCV64NervesLinuxGNU.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_riscv64_nerves_linux_gnu 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :riscv64_nerves_linux_gnu, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.4", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | "Nerves Toolchain - riscv64_nerves_linux_gnu" 57 | end 58 | 59 | defp package do 60 | [ 61 | files: package_files(), 62 | licenses: ["Apache-2.0"], 63 | links: %{ 64 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 65 | } 66 | ] 67 | end 68 | 69 | defp package_files do 70 | [ 71 | "defconfig", 72 | "README.md", 73 | "LICENSE", 74 | "mix.exs", 75 | "VERSION" 76 | ] 77 | end 78 | 79 | defp set_target() do 80 | if function_exported?(Mix, :target, 1) do 81 | apply(Mix, :target, [:target]) 82 | else 83 | System.put_env("MIX_TARGET", "target") 84 | end 85 | end 86 | end 87 | -------------------------------------------------------------------------------- /nerves_toolchain_armv6_nerves_linux_gnueabihf/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainArmv6RpiLinuxGnueabihf.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_armv6_nerves_linux_gnueabihf 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :armv6_nerves_linux_gnueabi, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.0", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - armv6-rpi-linux-gnueabi 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{"Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}"} 66 | ] 67 | end 68 | 69 | defp package_files do 70 | [ 71 | "defconfig", 72 | "README.md", 73 | "LICENSE", 74 | "mix.exs", 75 | "VERSION" 76 | ] 77 | end 78 | 79 | defp set_target() do 80 | if function_exported?(Mix, :target, 1) do 81 | apply(Mix, :target, [:target]) 82 | else 83 | System.put_env("MIX_TARGET", "target") 84 | end 85 | end 86 | end 87 | -------------------------------------------------------------------------------- /nerves_toolchain_i586_nerves_linux_gnu/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainI586NervesLinuxGnu.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_i586_nerves_linux_gnu 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :i586_nerves_linux_gnu, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.0", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - i586-nerves-linux-gnu 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{ 66 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 67 | } 68 | ] 69 | end 70 | 71 | defp package_files do 72 | [ 73 | "defconfig", 74 | "README.md", 75 | "LICENSE", 76 | "mix.exs", 77 | "VERSION" 78 | ] 79 | end 80 | 81 | defp set_target() do 82 | if function_exported?(Mix, :target, 1) do 83 | apply(Mix, :target, [:target]) 84 | else 85 | System.put_env("MIX_TARGET", "target") 86 | end 87 | end 88 | end 89 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_musl/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainRISCV64NervesLinuxMusl.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_riscv64_nerves_linux_musl 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :riscv64_nerves_linux_musl, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.4", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | "Nerves Toolchain - riscv64_nerves_linux_musl" 57 | end 58 | 59 | defp package do 60 | [ 61 | files: package_files(), 62 | licenses: ["Apache-2.0"], 63 | links: %{ 64 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 65 | } 66 | ] 67 | end 68 | 69 | defp package_files do 70 | [ 71 | "defconfig", 72 | "README.md", 73 | "LICENSE", 74 | "mix.exs", 75 | "VERSION" 76 | ] 77 | end 78 | 79 | defp set_target() do 80 | if function_exported?(Mix, :target, 1) do 81 | apply(Mix, :target, [:target]) 82 | else 83 | System.put_env("MIX_TARGET", "target") 84 | end 85 | end 86 | end 87 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_gnu/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainX8664NervesLinuxGnu.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_x86_64_nerves_linux_gnu 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :x86_64_nerves_linux_gnu, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.0", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - x86_64-nerves-linux-gnu 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{ 66 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 67 | } 68 | ] 69 | end 70 | 71 | defp package_files do 72 | [ 73 | "defconfig", 74 | "README.md", 75 | "LICENSE", 76 | "mix.exs", 77 | "VERSION" 78 | ] 79 | end 80 | 81 | defp set_target() do 82 | if function_exported?(Mix, :target, 1) do 83 | apply(Mix, :target, [:target]) 84 | else 85 | System.put_env("MIX_TARGET", "target") 86 | end 87 | end 88 | end 89 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_gnu/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainAarch64NervesLinuxGnu.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_aarch64_nerves_linux_gnu 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :aarch64_nerves_linux_gnu, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.4", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - aarch64_nerves_linux_gnu 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{ 66 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 67 | } 68 | ] 69 | end 70 | 71 | defp package_files do 72 | [ 73 | "defconfig", 74 | "README.md", 75 | "LICENSE", 76 | "mix.exs", 77 | "VERSION" 78 | ] 79 | end 80 | 81 | defp set_target() do 82 | if function_exported?(Mix, :target, 1) do 83 | apply(Mix, :target, [:target]) 84 | else 85 | System.put_env("MIX_TARGET", "target") 86 | end 87 | end 88 | end 89 | -------------------------------------------------------------------------------- /nerves_toolchain_mipsel_nerves_linux_musl/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainMipselNervesLinuxMusl.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_mipsel_nerves_linux_musl 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :mipsel_nerves_linux_musl, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.0", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - mipsel-nerves-linux-musl 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{ 66 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 67 | } 68 | ] 69 | end 70 | 71 | defp package_files do 72 | [ 73 | "defconfig", 74 | "README.md", 75 | "LICENSE", 76 | "mix.exs", 77 | "VERSION" 78 | ] 79 | end 80 | 81 | defp set_target() do 82 | if function_exported?(Mix, :target, 1) do 83 | apply(Mix, :target, [:target]) 84 | else 85 | System.put_env("MIX_TARGET", "target") 86 | end 87 | end 88 | end 89 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_musl/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainX8664NervesLinuxMusl.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_x86_64_nerves_linux_musl 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :x86_64_nerves_linux_musl, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.0", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - x86_64-nerves-linux-musl 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{ 66 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 67 | } 68 | ] 69 | end 70 | 71 | defp package_files do 72 | [ 73 | "defconfig", 74 | "README.md", 75 | "LICENSE", 76 | "mix.exs", 77 | "VERSION" 78 | ] 79 | end 80 | 81 | defp set_target() do 82 | if function_exported?(Mix, :target, 1) do 83 | apply(Mix, :target, [:target]) 84 | else 85 | System.put_env("MIX_TARGET", "target") 86 | end 87 | end 88 | end 89 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_musl/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainAarch64NervesLinuxMusl.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_aarch64_nerves_linux_musl 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :aarch64_nerves_linux_musl, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.4", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - aarch64_nerves_linux_musl 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{ 66 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 67 | } 68 | ] 69 | end 70 | 71 | defp package_files do 72 | [ 73 | "defconfig", 74 | "README.md", 75 | "LICENSE", 76 | "mix.exs", 77 | "VERSION" 78 | ] 79 | end 80 | 81 | defp set_target() do 82 | if function_exported?(Mix, :target, 1) do 83 | apply(Mix, :target, [:target]) 84 | else 85 | System.put_env("MIX_TARGET", "target") 86 | end 87 | end 88 | end 89 | -------------------------------------------------------------------------------- /nerves_toolchain_armv5_nerves_linux_musleabi/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainArmv5NervesLinuxMusleabi.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_armv5_nerves_linux_musleabi 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :armv5tejl_nerves_linux_musleabi, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.0", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - armv5-nerves-linux-musleabi 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{ 66 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 67 | } 68 | ] 69 | end 70 | 71 | defp package_files do 72 | [ 73 | "defconfig", 74 | "README.md", 75 | "LICENSE", 76 | "mix.exs", 77 | "VERSION" 78 | ] 79 | end 80 | 81 | defp set_target() do 82 | if function_exported?(Mix, :target, 1) do 83 | apply(Mix, :target, [:target]) 84 | else 85 | System.put_env("MIX_TARGET", "target") 86 | end 87 | end 88 | end 89 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_gnueabihf/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainArmV7NervesLinuxGnueabihf.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_armv7_nerves_linux_gnueabihf 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :armv7_nerves_linux_gnueabihf, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.0", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - armv7-nerves-linux-gnueabihf 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{ 66 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 67 | } 68 | ] 69 | end 70 | 71 | defp package_files do 72 | [ 73 | "mingw32_x86_64_defconfig", 74 | "defconfig", 75 | "README.md", 76 | "LICENSE", 77 | "mix.exs", 78 | "VERSION" 79 | ] 80 | end 81 | 82 | defp set_target() do 83 | if function_exported?(Mix, :target, 1) do 84 | apply(Mix, :target, [:target]) 85 | else 86 | System.put_env("MIX_TARGET", "target") 87 | end 88 | end 89 | end 90 | -------------------------------------------------------------------------------- /nerves_toolchain_armv7_nerves_linux_musleabihf/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule NervesToolchainArmV7NervesLinuxMusleabihf.MixProject do 2 | use Mix.Project 3 | 4 | @app :nerves_toolchain_armv7_nerves_linux_musleabihf 5 | @version Path.join(__DIR__, "VERSION") 6 | |> File.read!() 7 | |> String.trim() 8 | 9 | def project do 10 | [ 11 | app: @app, 12 | version: @version, 13 | elixir: "~> 1.6", 14 | compilers: [:nerves_package | Mix.compilers()], 15 | nerves_package: nerves_package(), 16 | description: description(), 17 | package: package(), 18 | deps: deps(), 19 | aliases: [loadconfig: [&bootstrap/1]] 20 | ] 21 | end 22 | 23 | def application do 24 | [] 25 | end 26 | 27 | defp bootstrap(args) do 28 | set_target() 29 | Application.start(:nerves_bootstrap) 30 | Mix.Task.run("loadconfig", args) 31 | end 32 | 33 | defp nerves_package do 34 | [ 35 | type: :toolchain, 36 | platform: Nerves.Toolchain.CTNG, 37 | platform_config: [ 38 | defconfig: "defconfig" 39 | ], 40 | target_tuple: :armv7_nerves_linux_musleabihf, 41 | artifact_sites: [ 42 | {:github_releases, "nerves-project/toolchains"} 43 | ], 44 | checksum: package_files() 45 | ] 46 | end 47 | 48 | defp deps do 49 | [ 50 | {:nerves, "~> 1.0", runtime: false}, 51 | {:nerves_toolchain_ctng, path: "../nerves_toolchain_ctng", runtime: false} 52 | ] 53 | end 54 | 55 | defp description do 56 | """ 57 | Nerves Toolchain - armv7-nerves-linux-musleabihf 58 | """ 59 | end 60 | 61 | defp package do 62 | [ 63 | files: package_files(), 64 | licenses: ["Apache-2.0"], 65 | links: %{ 66 | "Github" => "https://github.com/nerves-project/toolchains/tree/main/#{@app}" 67 | } 68 | ] 69 | end 70 | 71 | defp package_files do 72 | [ 73 | "mingw32_x86_64_defconfig", 74 | "defconfig", 75 | "README.md", 76 | "LICENSE", 77 | "mix.exs", 78 | "VERSION" 79 | ] 80 | end 81 | 82 | defp set_target() do 83 | if function_exported?(Mix, :target, 1) do 84 | apply(Mix, :target, [:target]) 85 | else 86 | System.put_env("MIX_TARGET", "target") 87 | end 88 | end 89 | end 90 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/lib/nerves_toolchain_ctng.ex: -------------------------------------------------------------------------------- 1 | defmodule Nerves.Toolchain.CTNG do 2 | use Nerves.Package.Platform 3 | 4 | alias Nerves.Artifact 5 | import Mix.Nerves.Utils 6 | 7 | @doc """ 8 | Called as the last step of bootstrapping the Nerves env. 9 | """ 10 | def bootstrap(_pkg) do 11 | :ok 12 | end 13 | 14 | @doc """ 15 | Build the artifact 16 | """ 17 | def build(pkg, _toolchain, _opts) do 18 | build_path = Artifact.build_path(pkg) 19 | File.rm_rf!(build_path) 20 | File.mkdir_p!(build_path) 21 | 22 | script = 23 | :nerves_toolchain_ctng 24 | |> Nerves.Env.package() 25 | |> Map.get(:path) 26 | |> Path.join("build.sh") 27 | 28 | defconfig = defconfig(pkg) 29 | 30 | case shell(script, [defconfig, build_path]) do 31 | {_, 0} -> 32 | x_tools = Path.join(build_path, "x-tools") 33 | 34 | tuple = 35 | x_tools 36 | |> File.ls!() 37 | |> List.first() 38 | 39 | toolchain_path = Path.join(x_tools, tuple) 40 | {:ok, toolchain_path} 41 | 42 | {_error, exit_code} -> 43 | {:error, "Build exited with #{exit_code}. See build.log."} 44 | end 45 | end 46 | 47 | @doc """ 48 | Return the location in the build path to where the global artifact is linked 49 | """ 50 | def build_path_link(pkg) do 51 | Artifact.build_path(pkg) 52 | |> Path.join("x-tools") 53 | end 54 | 55 | @doc """ 56 | Create an archive of the artifact 57 | """ 58 | def archive(pkg, _toolchain, _opts) do 59 | build_path = Artifact.build_path(pkg) 60 | 61 | script = 62 | :nerves_toolchain_ctng 63 | |> Nerves.Env.package() 64 | |> Map.get(:path) 65 | |> Path.join("scripts") 66 | |> Path.join("archive.sh") 67 | 68 | tar_path = Path.join([build_path, Artifact.download_name(pkg) <> Artifact.ext(pkg)]) 69 | 70 | case shell(script, [build_path, tar_path]) do 71 | {_, 0} -> {:ok, tar_path} 72 | {error, _} -> {:error, error} 73 | end 74 | end 75 | 76 | @doc """ 77 | Clean up all the build files 78 | """ 79 | def clean(pkg) do 80 | pkg 81 | |> Artifact.dir() 82 | |> File.rm_rf() 83 | end 84 | 85 | defp defconfig(pkg) do 86 | pkg.config 87 | |> Keyword.get(:platform_config) 88 | |> Keyword.get(:defconfig) 89 | |> Path.expand() 90 | end 91 | end 92 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/patches/crosstool-ng/0004-Fix-build-on-MacOS-12-Xcode-13.patch: -------------------------------------------------------------------------------- 1 | From 57d220d14342dc9dae0d522d4f4532581b6ab9a9 Mon Sep 17 00:00:00 2001 2 | From: Frank Hunleth 3 | Date: Sat, 11 Dec 2021 13:02:34 -0500 4 | Subject: [PATCH] Fix build on MacOS 12 (Xcode 13) 5 | 6 | See https://github.com/crosstool-ng/crosstool-ng/pull/1638 7 | --- 8 | .../10.3.0/0024-genconditions-macos-12.patch | 39 +++++++++++++++++++ 9 | 1 file changed, 39 insertions(+) 10 | create mode 100644 packages/gcc/10.3.0/0024-genconditions-macos-12.patch 11 | 12 | diff --git a/packages/gcc/10.3.0/0024-genconditions-macos-12.patch b/packages/gcc/10.3.0/0024-genconditions-macos-12.patch 13 | new file mode 100644 14 | index 00000000..536065f3 15 | --- /dev/null 16 | +++ b/packages/gcc/10.3.0/0024-genconditions-macos-12.patch 17 | @@ -0,0 +1,39 @@ 18 | +Fix build on MacOS 12 (Xcode 13) 19 | +see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92061 for details 20 | + 21 | +--- 22 | + gcc/genconditions.c | 9 +++++---- 23 | + 1 file changed, 5 insertions(+), 4 deletions(-) 24 | + 25 | +--- a/gcc/genconditions.c 26 | ++++ b/gcc/genconditions.c 27 | +@@ -57,8 +57,9 @@ write_header (void) 28 | + \n\ 29 | + /* It is necessary, but not entirely safe, to include the headers below\n\ 30 | + in a generator program. As a defensive measure, don't do so when the\n\ 31 | +- table isn't going to have anything in it. */\n\ 32 | +-#if GCC_VERSION >= 3001\n\ 33 | ++ table isn't going to have anything in it.\n\ 34 | ++ Clang 9 is buggy and doesn't handle __builtin_constant_p correctly. */\n\ 35 | ++#if GCC_VERSION >= 3001 && __clang_major__ < 9\n\ 36 | + \n\ 37 | + /* Do not allow checking to confuse the issue. */\n\ 38 | + #undef CHECKING_P\n\ 39 | +@@ -170,7 +171,7 @@ struct c_test\n\ 40 | + vary at run time. It works in 3.0.1 and later; 3.0 only when not\n\ 41 | + optimizing. */\n\ 42 | + \n\ 43 | +-#if GCC_VERSION >= 3001\n\ 44 | ++#if GCC_VERSION >= 3001 && __clang_major__ < 9\n\ 45 | + static const struct c_test insn_conditions[] = {\n"); 46 | + 47 | + traverse_c_tests (write_one_condition, 0); 48 | +@@ -191,7 +192,7 @@ write_writer (void) 49 | + " unsigned int i;\n" 50 | + " const char *p;\n" 51 | + " puts (\"(define_conditions [\");\n" 52 | +- "#if GCC_VERSION >= 3001\n" 53 | ++ "#if GCC_VERSION >= 3001 && __clang_major__ < 9\n" 54 | + " for (i = 0; i < ARRAY_SIZE (insn_conditions); i++)\n" 55 | + " {\n" 56 | + " printf (\" (%d \\\"\", insn_conditions[i].value);\n" 57 | -- 58 | 2.34.1 59 | 60 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Nerves Toolchains 2 | 3 | This is an umbrella project for all of the Nerves toolchains. 4 | 5 | See the subdirectories for the actual toolchains and the `nerves_toolchain_ctng` 6 | directory for the build scripts. 7 | 8 | ## Installation 9 | 10 | See [nerves_toolchain_ctng/README.md](nerves_toolchain_ctng/README.md) for 11 | preparing your system for building the toolchains. 12 | 13 | ## Building 14 | 15 | The normal procedure is to run `./build_release.sh` to build everything or go to 16 | one of the toolchain subdirectories to build the toolchain. This process uses 17 | `mix`. Sometimes bringing in Elixir obfuscates the build process. To build 18 | manually, run something like: 19 | 20 | ```sh 21 | ./nerves_toolchain_ctng/build.sh nerves_toolchain_arm_nerves_linux_gnueabihf/defconfig work 22 | ``` 23 | 24 | This will build the toolchain in the `work` directory. If you want to modify the 25 | configuration, you can do it via Crosstool-ng's menuconfig: 26 | 27 | ```sh 28 | out of a running build or "killall make", etc. 29 | 30 | $ cd work/build 31 | $ ../usr/bin/ct-ng menuconfig 32 | 33 | # make modifications 34 | 35 | $ ../usr/bin/ct-ng savedefconfig 36 | 37 | # merge defconfig changes over to 38 | # nerves_toolchain_arm_nerves_linux_gnueabihf/defconfig or whatever you're 39 | # building. Some configuration options are platform-specific and should be put 40 | # in nerves_toolchain_ctng/defaults/ 41 | ``` 42 | 43 | ## 64-bit ARM Builds 44 | 45 | It's possible to create cross-compilers for 64-bit ARM machines (aarch64) by 46 | building the toolchains on a 64-bit ARM machine. Canadian cross builds don't 47 | seem to work. Build as you would on an x86_64 Linux machine. 48 | 49 | NOTE: "`aarch64` for Darwin" is called `arm64`. They're slightly different. See 50 | the [gcc arm64 51 | port](https://github.com/fxcoudert/gcc/tree/gcc-11.2.0-arm#introduction). 52 | 53 | ## Canadian cross builds for Raspberry Pi (arm) 54 | 55 | It's possible to build a toolchain that runs on the Raspberry Pi on x86 Linux. 56 | This is called a Canadian-cross. To do so, first clone the Raspberry Pi 57 | cross-toolchain: 58 | 59 | ```sh 60 | git clone git://github.com/raspberrypi/tools.git 61 | ``` 62 | 63 | Then run a toolchain build as follows: 64 | 65 | ```sh 66 | export HOST_OS=linux 67 | export HOST_ARCH=arm 68 | export PATH=/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin 69 | ./nerves_toolchain_ctng/build.sh 70 | ``` 71 | 72 | ## Canadian cross builds for Windows 73 | 74 | ```sh 75 | sudo apt install g++-mingw-w64-x86-64 76 | ``` 77 | 78 | Then 79 | 80 | ```sh 81 | export HOST_OS=mingw32 82 | ./nerves_toolchain_ctng/build.sh 83 | ``` 84 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/patches/crosstool-ng/0001-Fix-Linux-headers-build-on-OSX-for-x86.patch: -------------------------------------------------------------------------------- 1 | From d60282a2f18494b5cb254264413c79c9987bf537 Mon Sep 17 00:00:00 2001 2 | From: Frank Hunleth 3 | Date: Wed, 4 Jan 2017 17:30:48 -0500 4 | Subject: [PATCH] Fix Linux headers build on OSX for x86 5 | 6 | --- 7 | ...ot-build-the-Linux-kernels-relocs-utility.patch | 26 +++++++++++++++++++++ 8 | ...t-build-the-Linux-kernel-s-relocs-utility.patch | 27 ++++++++++++++++++++++ 9 | 2 files changed, 53 insertions(+) 10 | create mode 100644 patches/linux/3.4.110/100-Do-not-build-the-Linux-kernels-relocs-utility.patch 11 | create mode 100644 patches/linux/4.4.3/100-Do-not-build-the-Linux-kernel-s-relocs-utility.patch 12 | 13 | diff --git a/patches/linux/3.4.110/100-Do-not-build-the-Linux-kernels-relocs-utility.patch b/patches/linux/3.4.110/100-Do-not-build-the-Linux-kernels-relocs-utility.patch 14 | new file mode 100644 15 | index 0000000..ac83cf3 16 | --- /dev/null 17 | +++ b/patches/linux/3.4.110/100-Do-not-build-the-Linux-kernels-relocs-utility.patch 18 | @@ -0,0 +1,26 @@ 19 | +From ad5672200cc0e64b57c4e356d1ae0e083aacfac5 Mon Sep 17 00:00:00 2001 20 | +From: Frank Hunleth 21 | +Date: Sat, 9 Jan 2016 23:14:45 -0500 22 | +Subject: [PATCH] Do not build the Linux kernels relocs utility 23 | + 24 | +This utility isn't needed for building headers and it breaks the build on OSX. 25 | +--- 26 | + arch/x86/Makefile | 2 +- 27 | + 1 file changed, 1 insertion(+), 1 deletion(-) 28 | + 29 | +diff --git a/arch/x86/Makefile b/arch/x86/Makefile 30 | +index f1276aa..759eb68 100644 31 | +--- a/arch/x86/Makefile 32 | ++++ b/arch/x86/Makefile 33 | +@@ -135,7 +135,7 @@ KBUILD_CFLAGS += $(mflags-y) 34 | + KBUILD_AFLAGS += $(mflags-y) 35 | + 36 | + archscripts: 37 | +- $(Q)$(MAKE) $(build)=arch/x86/tools relocs 38 | ++ #$(Q)$(MAKE) $(build)=arch/x86/tools relocs 39 | + 40 | + ### 41 | + # Syscall table generation 42 | +-- 43 | +2.5.4 (Apple Git-61) 44 | + 45 | diff --git a/patches/linux/4.4.3/100-Do-not-build-the-Linux-kernel-s-relocs-utility.patch b/patches/linux/4.4.3/100-Do-not-build-the-Linux-kernel-s-relocs-utility.patch 46 | new file mode 100644 47 | index 0000000..6ef054f 48 | --- /dev/null 49 | +++ b/patches/linux/4.4.3/100-Do-not-build-the-Linux-kernel-s-relocs-utility.patch 50 | @@ -0,0 +1,27 @@ 51 | +From 881330cd98ad5c239f6f5c905c16fe4cbe08a7a1 Mon Sep 17 00:00:00 2001 52 | +From: Frank Hunleth 53 | +Date: Wed, 4 Jan 2017 17:25:36 -0500 54 | +Subject: [PATCH] Do not build the Linux kernel's relocs utility 55 | + 56 | +this utility isn't needed for building headers and it breaks the build 57 | +on OSX. 58 | +--- 59 | + arch/x86/Makefile | 2 +- 60 | + 1 file changed, 1 insertion(+), 1 deletion(-) 61 | + 62 | +diff --git a/arch/x86/Makefile b/arch/x86/Makefile 63 | +index 4086abc..29de17a 100644 64 | +--- a/arch/x86/Makefile 65 | ++++ b/arch/x86/Makefile 66 | +@@ -190,7 +190,7 @@ KBUILD_CFLAGS += $(mflags-y) 67 | + KBUILD_AFLAGS += $(mflags-y) 68 | + 69 | + archscripts: scripts_basic 70 | +- $(Q)$(MAKE) $(build)=arch/x86/tools relocs 71 | ++ #$(Q)$(MAKE) $(build)=arch/x86/tools relocs 72 | + 73 | + ### 74 | + # Syscall table generation 75 | +-- 76 | +2.10.1 (Apple Git-78) 77 | + 78 | -- 79 | 2.10.1 (Apple Git-78) 80 | 81 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/scripts/apply-patches.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # A little script I whipped up to make it easy to 3 | # patch source trees and have sane error handling 4 | # -Erik 5 | # 6 | # (c) 2002 Erik Andersen 7 | # 8 | # Parameters: 9 | # - "-s", optional. Silent operation, don't print anything if there 10 | # isn't any error. 11 | # - the build directory, optional, default value is '.'. The place where are 12 | # the package sources. 13 | # - the patch directory, optional, default '../kernel-patches'. The place 14 | # where are the scripts you want to apply. 15 | # - other parameters are the patch name patterns, optional, default value is 16 | # '*'. Pattern(s) describing the patch names you want to apply. 17 | # 18 | # The script will look recursively for patches from the patch directory. If a 19 | # file named 'series' exists then the patches mentioned in it will be applied 20 | # as plain patches, regardless of their file name. If no 'series' file exists, 21 | # the script will look for file names matching pattern(s). If the name 22 | # ends with '.tar.*', '.tbz2' or '.tgz', the file is considered as an archive 23 | # and will be uncompressed into a directory named 24 | # '.patches-name_of_the_archive-unpacked'. It's the turn of this directory to 25 | # be scanned with '*' as pattern. Remember that scanning is recursive. Other 26 | # files than series file and archives are considered as a patch. 27 | # 28 | # Once a patch is found, the script will try to apply it. If its name doesn't 29 | # end with '.gz', '.bz', '.bz2', '.xz', '.zip', '.Z', '.diff*' or '.patch*', 30 | # it will be skipped. If necessary, the patch will be uncompressed before being 31 | # applied. The list of the patches applied is stored in '.applied_patches_list' 32 | # file in the build directory. 33 | 34 | silent= 35 | if [ "$1" = "-s" ] ; then 36 | # add option to be used by the patch tool 37 | silent=-s 38 | shift 39 | fi 40 | 41 | # Set directories from arguments, or use defaults. 42 | builddir=${1-.} 43 | patchdir=${2-../kernel-patches} 44 | shift 2 45 | patchpattern=${@-*} 46 | 47 | # use a well defined sorting order 48 | export LC_COLLATE=C 49 | 50 | if [ ! -d "${builddir}" ] ; then 51 | echo "Aborting. '${builddir}' is not a directory." 52 | exit 1 53 | fi 54 | if [ ! -d "${patchdir}" ] ; then 55 | echo "Aborting. '${patchdir}' is not a directory." 56 | exit 1 57 | fi 58 | 59 | # Remove any rejects present BEFORE patching - Because if there are 60 | # any, even if patches are well applied, at the end it will complain 61 | # about rejects in builddir. 62 | find ${builddir}/ '(' -name '*.rej' -o -name '.*.rej' ')' -delete 63 | 64 | function apply_patch { 65 | path=$1 66 | patch=$2 67 | if [ "$3" ]; then 68 | type="series"; uncomp="cat" 69 | else 70 | case "$patch" in 71 | *.gz) 72 | type="gzip"; uncomp="gunzip -dc"; ;; 73 | *.bz) 74 | type="bzip"; uncomp="bunzip -dc"; ;; 75 | *.bz2) 76 | type="bzip2"; uncomp="bunzip2 -dc"; ;; 77 | *.xz) 78 | type="xz"; uncomp="unxz -dc"; ;; 79 | *.zip) 80 | type="zip"; uncomp="unzip -d"; ;; 81 | *.Z) 82 | type="compress"; uncomp="uncompress -c"; ;; 83 | *.diff*) 84 | type="diff"; uncomp="cat"; ;; 85 | *.patch*) 86 | type="patch"; uncomp="cat"; ;; 87 | *) 88 | echo "Unsupported file type for ${path}/${patch}, skipping"; 89 | return 0 90 | ;; 91 | esac 92 | fi 93 | if [ -z "$silent" ] ; then 94 | echo "" 95 | echo "Applying $patch using ${type}: " 96 | fi 97 | if [ ! -e "${path}/$patch" ] ; then 98 | echo "Error: missing patch file ${path}/$patch" 99 | exit 1 100 | fi 101 | echo $patch >> ${builddir}/.applied_patches_list 102 | ${uncomp} "${path}/$patch" | patch -p1 -E -d "${builddir}" -t -N $silent 103 | if [ $? != 0 ] ; then 104 | echo "Patch failed! Please fix ${patch}!" 105 | exit 1 106 | fi 107 | } 108 | 109 | function scan_patchdir { 110 | local path=$1 111 | shift 1 112 | patches=${@-*} 113 | 114 | # If there is a series file, use it instead of using ls sort order 115 | # to apply patches. Skip line starting with a dash. 116 | if [ -e "${path}/series" ] ; then 117 | # The format of a series file accepts a second field that is 118 | # used to specify the number of directory components to strip 119 | # when applying the patch, in the form -pN (N an integer >= 0) 120 | # We assume this field to always be -p1 whether it is present 121 | # or missing. 122 | series_patches="`grep -Ev "^#" ${path}/series | cut -d ' ' -f1 2> /dev/null`" 123 | for i in $series_patches; do 124 | apply_patch "$path" "$i" series 125 | done 126 | else 127 | for i in `cd $path; ls -d $patches 2> /dev/null` ; do 128 | if [ -d "${path}/$i" ] ; then 129 | scan_patchdir "${path}/$i" 130 | elif echo "$i" | grep -q -E "\.tar(\..*)?$|\.tbz2?$|\.tgz$" ; then 131 | unpackedarchivedir="$builddir/.patches-$(basename $i)-unpacked" 132 | rm -rf "$unpackedarchivedir" 2> /dev/null 133 | mkdir "$unpackedarchivedir" 134 | tar -C "$unpackedarchivedir" -xaf "${path}/$i" 135 | scan_patchdir "$unpackedarchivedir" 136 | else 137 | apply_patch "$path" "$i" 138 | fi 139 | done 140 | fi 141 | } 142 | 143 | scan_patchdir "$patchdir" "$patchpattern" 144 | 145 | # Check for rejects... 146 | if [ "`find $builddir/ '(' -name '*.rej' -o -name '.*.rej' ')' -print`" ] ; then 147 | echo "Aborting. Reject files found." 148 | exit 1 149 | fi 150 | 151 | # Remove backup files 152 | find $builddir/ '(' -name '*.orig' -o -name '.*.orig' ')' -exec rm -f {} \; 153 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/README.md: -------------------------------------------------------------------------------- 1 | # nerves-toolchain 2 | 3 | This project contains the configuration and scripts used to build the 4 | cross-compilers for the Nerves project. While pre-built toolchains exist for 5 | various hosts and targets, they don't seem to exist for the combination 6 | supported by Nerves. This project fills that gap. 7 | 8 | See the GitHub `Releases` tab to download the toolchain. The naming for 9 | toolchains is: 10 | 11 | nerves-toolchain----.tar.xz 12 | 13 | The `gcc tuple` is a standard way of describing a target. The most important parts 14 | are the architecture (e.g., `arm`) and the C Library and ABI (e.g., 15 | `gnueabihf`). You will receive an error from Nerves if you mix toolchains. The 16 | easy way to decide which toolchain you need is the following: 17 | 18 | * Raspberry Pi Model A+, B, or B+ - `armv6-nerves-linux-gnueabihf` 19 | * Raspberry Pi 2, BBB, and most other ARM boards - `armv7-nerves-linux-gnueabihf` 20 | 21 | The `host OS` and `host architecture` describe your system. If you're running on 22 | a Mac, this is `Darwin-x86_64` or `Darwin-arm64`. 23 | 24 | When in doubt, use the glibc library toolchains. Almost all code works with the 25 | glibc C library. If you desire the smallest possible target binaries, the musl 26 | toolchain is the way to go. Nerves has been lightly tested against it, but it is 27 | an experimental feature and not built by default due to issues on OSX. 28 | 29 | ## Linux 30 | 31 | Install the following packages: 32 | 33 | ```sh 34 | sudo apt install build-essential bison flex gperf libncurses5-dev texinfo help2man libssl-dev gawk libtool-bin automake lzip unzip python3 wget curl ca-certificates 35 | ``` 36 | 37 | Run `build_release.sh` and wait. 38 | 39 | ## OSX 40 | 41 | Install the following packages: 42 | 43 | ```sh 44 | brew update 45 | brew install gawk binutils xz wget automake gnu-tar help2man bash make ncurses libtool autoconf gnu-sed mpfr gmp gcc bison lzip python3 grep coreutils texinfo 46 | ``` 47 | 48 | Run `build_release.sh` and wait. 49 | 50 | ## Windows 51 | 52 | ### Windows toolchains are not supported yet 53 | 54 | Install [Chocolatey](https://chocolatey.org/). Then, from a command prompt with 55 | administrative privileges (not the same one that you installed Chocolatey), run: 56 | 57 | ```sh 58 | choco install cyg-get 59 | cyg-get autoconf make gcc-g++ gperf bison flex texinfo awk wget curl patch libtool automake diffutils libncurses-devel help2man libssl-dev ca-certificates 60 | cyg-get mingw64-i686-gcc-g++ mingw64-x86_64-gcc-g++ #?? 61 | ``` 62 | 63 | Enable case-sensitive filesystem support on NTFS using the registry: (https://cygwin.com/cygwin-ug-net/using-specialnames.html) 64 | 65 | ```text 66 | HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive=0 67 | ``` 68 | 69 | Then tell Cygwin to mount your `cygdrive` as case sensitive. In a Cygwin64 terminal, 70 | edit `/etc/fstab` and set `posix=1` in the mount options. For example: 71 | 72 | ```text 73 | none /cygdrive cygdrive binary,posix=1,user 0 0 74 | ``` 75 | 76 | Something didn't work for me when downloading the ca-certificates. This will cause 77 | https downloads to fail. To fix, here's what I did: 78 | 79 | ```sh 80 | rm /usr/ssl/certs/ca-bundle.crt 81 | ln -s /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /usr/ssl/certs/ca-bundle.crt 82 | echo "ca_directory = /usr/ssl/certs" > ~/.wgetrc 83 | ``` 84 | 85 | Reboot to make the registry change take effect. 86 | 87 | NOTE: Windows is a work in progress. The link step segfaults. The following 88 | [doc](https://github.com/crosstool-ng/crosstool-ng/blob/main/docs/C%20-%20Misc.%20tutorials.txt) 89 | may provide some help. 90 | 91 | ## Updating ctng config files 92 | 93 | You may need to update the `ctng` configurations if `gcc` needs to be upgraded 94 | or the C library needs to change. The small defconfigs are stored in the 95 | `configs` directory and expanded automatically by `build.sh` to 96 | `work-.../build/.config`. In that directory, you can run `make menuconfig` to 97 | change the `ctng` configuration. When you're done, run `make savedefconfig` and 98 | copy the result to the `configs` directory. 99 | 100 | ## Toolchain configuration notes 101 | 102 | ### Hard float vs. soft float 103 | 104 | When possible hard float ABI (`eabihf`) toolchains are preferred. This appears to be 105 | the prevaling preference for ARM toolchains, so in the offchance that we need to 106 | run code from a binary blob, this provides the best chance of success. For ARM 107 | processors that don't have hardware floating point instructions, use the `eabi` 108 | versions of the ARM toolchain. 109 | 110 | ### Glibc 2.22 / Raspberry Pi userland 111 | 112 | Glibc 2.22 has a `#define` change that breaks the Raspberry Pi userland 113 | (rpi-userland) package. You'll get an error that `EAI_AGAIN` and some other 114 | defines are missing due to a `#ifdef` that changed from `__USE_POSIX` to 115 | `_USE_XOPEN2K`. Do *NOT* select glibc 2.22 until `rpi-userland` is fixed. 116 | 117 | See https://bugs.busybox.net/show_bug.cgi?id=8446 for more details. 118 | 119 | ### Case insensitive filesystems 120 | 121 | By default, the filesystems used on OSX are case insensitive. To get around 122 | this, we create a case-sensitive filesystem and build the cross-compilers in it. 123 | The build products also require a case-sensitive filesystem IF the user wants to 124 | use the Linux netfilter module. This is currently not a common use case for 125 | Nerves so the header file conflicts are removed in the OSX tarball version. See 126 | `build.sh` for details. 127 | 128 | ## License 129 | 130 | For the most part this code contains configurations and automates calls to other 131 | projects, notably crosstool-ng. The `build.sh` script is licensed under the 132 | Apache 2 License. Please see the numerous integrated projects for their 133 | licenses. 134 | 135 | `scripts/apply-patches.sh` is from the Buildroot project and is released under the 136 | GNU General Public License, version 2 or later. 137 | -------------------------------------------------------------------------------- /nerves_toolchain_ctng/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## v1.11.0 4 | 5 | * Changes 6 | * GCC 14.2 can now be selected 7 | * Update Crosstool-NG to 5595edc (Aug 21, 2024) 8 | 9 | ## v1.10.0 10 | 11 | * Changes 12 | * Update Crosstool-NG to daf19e17 (Nov 2, 2023) 13 | * GCC 13.2 can now be selected 14 | * Enabling static toolchains no longer disables LTO (see v1.9.2) 15 | 16 | ## v1.9.3 17 | 18 | * Changes 19 | * Update Crosstool-NG to bring in a patch to support GNU Make 4.4. This fixes 20 | MacOS builds. 21 | 22 | ## v1.9.2 23 | 24 | * Changes 25 | * Remove static toolchain option. It turned out that this wasn't being used on 26 | MacOS and it disabled LTO on Linux. Therefore, you could, in theory, get 27 | different output whether you were building on Linux or MacOS due to the LTO 28 | option. 29 | * Disable use of zstd for LTO. This should avoid the unintended Homebrew 30 | dependency on MacOS. 31 | * Update Crosstool-NG to use a newer version of zlib and get it from GitHub 32 | rather than sourceforge. This fixes a build error. 33 | 34 | ## v1.9.1 35 | 36 | * Bug fixes 37 | * Remove unnecessarly libzstd runtime library dependency. This ended up 38 | creating a dependency on Homebrew on MacOS. Thanks @mathewprokos for finding 39 | this. 40 | 41 | ## v1.9.0 42 | 43 | This release bumps gcc 10.3.0 to gcc 12.1. 44 | 45 | * Changes 46 | * Use latest crosstool-ng commit. This also updates glibc from 2.34 to 2.35. 47 | * Enable Fortran by default. This makes it possible to enable Fortran in 48 | Nerves systems that want to use it without completely rebuilding a 49 | toolchain. 50 | 51 | ## v1.8.5 52 | 53 | This release bumps gcc 10.2.0 to gcc 10.3.0. 54 | 55 | * Changes 56 | * Use latest crosstool-ng commit. This also updates glibc from 2.33 to 2.34. 57 | * Build libgomp. This is a small library that's referenced by torchx. 58 | * Fix build error on MacOS 12 59 | 60 | ## v1.8.4 61 | 62 | * New features 63 | * Store a Build-ID by default. A Build-ID uniquely identifies an executable or 64 | shared library and is useful for matching up debug symbols to produce useful 65 | stack traces from C and C++ programs. 66 | 67 | * Bug fixes 68 | * Support GCC 11 builds on OSX (Homebrew now installs gcc-11) 69 | * Fix various issues to support OSX-based CI builds. OSX CI builds are not 70 | supported yet. 71 | 72 | ## v1.8.3 73 | 74 | This release bumps crosstool-ng to the latest to pull in glibc 2.33. 75 | 76 | ## v1.8.2 77 | 78 | * Enhancements 79 | * Added support for Darwin ARM64 builds. 80 | 81 | ## v1.8.1 82 | 83 | * Bug fixes 84 | * Update crosstool-ng git commit. This fixes issues with building the aarch64 85 | crosscompiler on macOS x86_64 host. 86 | 87 | ## v1.8.0 88 | 89 | This release bumps gcc 9.2.0 to gcc 10.2.0. 90 | 91 | * Enhancements 92 | * Update crosstool-ng git commit. This pulls in gcc 10.2 support and 93 | a variety of C library and related version bumps. 94 | * Update macOS build homebrew paths to latest versions. 95 | * Update toolchain vendor to `nerves` in default defconfigs. 96 | 97 | ## v1.7.2 98 | 99 | * Bug fixes 100 | * Update macOS homebrew paths for dependencies. 101 | 102 | ## v1.7.1 103 | 104 | * Enhancements 105 | * 64-bit ARM host builds (aarch64) are now possible. They must be built on 106 | 64-bit ARM machines. Canandian cross versions aren't supported. 107 | 108 | ## v1.7.0 109 | 110 | This release bumps gcc 8.3.0 to gcc 9.2.0. 111 | 112 | * Enhancements 113 | * Update crosstool-ng to latest git commit. This pulls in gcc 9.2 support and 114 | a variety of C library and related version bumps. 115 | 116 | * Bug fixes 117 | * Fixed a variety of build issues on Linux, OSX, and CI. If you're building 118 | your own toolchains, you may want to review commits to see what has changed. 119 | 120 | ## v1.6.0 121 | 122 | * Enhancements 123 | * Update crosstool-ng to crosstool-ng-1.24.0-rc3. This pulls in many updates 124 | including a bump from gcc 7.3.0 to gcc 8.3.0. 125 | 126 | ## v1.5.0 127 | 128 | * Enhancements 129 | * Update crosstool-ng to latest to use gcc 7.3.0. This addresses a C++ 130 | compiler issue and may bring in performance improvements. 131 | * Update build scripts to throw errors when configurations are out of sync 132 | so that if crosstool-ng drops any options, we definitely know. The checks 133 | are currently pretty strict (config option order matters, for example) 134 | since the pain from silent option drops was so great. 135 | 136 | * Bug fixes 137 | * Ensure that all toolchains are static 138 | 139 | ## v1.4.0 140 | 141 | * Updated dependencies 142 | * nerves v1.0 143 | 144 | ## v1.3.1 145 | 146 | * Enhancements 147 | * Build static toolchains for Linux to avoid shared library issues 148 | 149 | ## v1.3.0 150 | 151 | * Enhancements 152 | * Support for nerves v0.9.0 153 | 154 | ## v1.2.1 155 | 156 | * Bug Fixes 157 | * Build app file to fix issue with Mix compilers not respecint `app: false` 158 | 159 | ## v1.0.0 160 | 161 | * Enhancements 162 | * Fix compiler warnings for Elixir 1.5 163 | 164 | ## v0.9.0 165 | 166 | * Enhancements 167 | * Support for gcc 5 168 | 169 | ## v0.8.0 170 | 171 | * Enhancements 172 | * Support for package compiler 173 | 174 | ## v0.6.3 175 | 176 | * New features 177 | * Support MIPS 24KEc processors 178 | 179 | * Tool versions 180 | * gcc 4.9.3 181 | * glibc 2.21 182 | * muslc 1.1.14 (MIPS-only) 183 | 184 | ## v0.6.1 185 | 186 | * New features 187 | * Support for ARM processors w/o floating point (ARM926) 188 | 189 | ## v0.6.0 190 | 191 | This version removes Erlang and Elixir from the toolchain. While this was 192 | convenient for creating repeatable builds, differences between Linux 193 | distributions were great enough that multiple versions would need to be made 194 | just for Linux. Aside from this, the versions made here could not easily be 195 | used in nerves-system-br builds and most users had sufficiently compatible 196 | versions of Erlang already. Bakeware will be responsible for matching versions 197 | exactly and nerves-system-br will be responsible for providing errors and 198 | warnings when host/target Erlang and Elixir versions do not match. 199 | 200 | * Tool versions 201 | * gcc 4.9.3 202 | * glibc 2.21 203 | 204 | ## v0.5.0 205 | 206 | * Tool versions 207 | * gcc 4.9.3 208 | * glibc 2.21 209 | * erlang 18.1 210 | * elixir 1.2.0 211 | 212 | * New features 213 | * Support for x86 platforms (Galileo, Edison, etc.) 214 | 215 | * Fixes 216 | * Tweak release naming especially to put things in lowercase 217 | 218 | ## v0.4.0 219 | 220 | * Tool versions 221 | * gcc 4.9.3 222 | * glibc 2.21 223 | * erlang 18.1 224 | * elixir 1.1.1 225 | 226 | * New features 227 | * No more .dmg files on OSX - case conflicts removed (see README.md) 228 | 229 | * Fixes 230 | * Standardize release naming 231 | * Fix OSX filename (the host OS was incorrectly labelled as linux) 232 | 233 | ## 0.3 234 | 235 | * Tool versions 236 | * gcc 4.9.3 237 | * glibc 2.21 238 | * erlang 18.1 239 | * elixir 1.1.1 240 | 241 | * New features 242 | * Raspberry Pi A+/B+ crosscompiler (armv6) 243 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Toolchain Releases 2 | 3 | ## v14.2.0 4 | 5 | This release bumps GCC from 13.2 to 14.2. 6 | 7 | * Tool versions 8 | * GCC 14.2 (https://gcc.gnu.org/gcc-14/changes.html) 9 | * glibc 2.40 10 | * musl 1.2.5 11 | 12 | ## v13.2.0 13 | 14 | This release bumps GCC from 12.2 to 13.2 and adopts the new version scheme that 15 | mirrors GCC versions. 16 | 17 | * Changes 18 | * Re-add static toolchain option since LTO no longer gets turned off when it's 19 | enabled. 20 | * Build a multilib toolchain for RISC-V glibc builds to support both 32-bit 21 | and 64-bit, soft and hard float compilation 22 | 23 | * Tool versions 24 | * GCC 13.2 25 | * glibc 2.38 26 | * musl 1.2.4 27 | * Linux 5.4 headers except for RISC-V. RISC-V uses Linux 5.15 headers. 28 | 29 | ## v1.8.0 30 | 31 | This release bumps GCC from 11.3 to 12.2. 32 | 33 | * Tool versions 34 | * GCC 12.2 (https://gcc.gnu.org/gcc-12/changes.html) 35 | * glibc 2.36 36 | * musl 1.2.3 37 | * Linux 4.19 headers except for RISC-V. RISC-V uses Linux 5.10 headers. 38 | 39 | ## v1.7.0 40 | 41 | This release adds a riscv64 glibc toolchain since that has more support than 42 | muslc in the RISC-V community at the moment. 43 | 44 | * Changes 45 | * Removes Python scripting support in gdb (fixes toolchain compilation and 46 | probably not used) 47 | * Remove the static toolchain option since it was being ignored on MacOS. On 48 | Linux, it disabled LTO. LTO is included on all platforms now (the default). 49 | * Fixes runtime dependency on libzstd another way by forcibly turning it off 50 | with a Crosstool-NG option rather than adding a configure flag. This is 51 | possible now. Previously the option was hidden due to the static toolchain 52 | option. 53 | * Let gcc determine the correct option for SJLJ (setjmp/longjmp). The note 54 | where it doesn't work doesn't apply to Nerves platforms. 55 | 56 | * Tool versions 57 | * GCC 11.3 58 | * glibc 2.36 (New!) 59 | * musl 1.2.3 60 | * Linux 4.19 headers except for RISC-V. RISC-V uses Linux 5.10 headers. 61 | 62 | ## v1.6.1 63 | 64 | This release adds musl libc toolchains for aarch64 and armv7. 65 | 66 | * Fixes 67 | * Remove unneeded runtime dependency on libzstd. This caused an unintentional 68 | dependency to Homebrew on MacOS. 69 | 70 | ## v1.6.0 71 | 72 | This release bumps GCC from 10.3 to 11.3 73 | 74 | * New features 75 | * Include a Fortran compiler to make it easier to create Nerves systems that 76 | require Fortran. 77 | 78 | * Tool versions 79 | * GCC 11.3 (https://gcc.gnu.org/gcc-11/changes.html#GCC11.3) 80 | * glibc 2.35 81 | * musl 1.2.3 82 | * binutils 2.38 83 | * Linux 4.19 headers except for RISC-V. RISC-V uses Linux 5.10 headers. 84 | 85 | ## v1.5.0 86 | 87 | This should be a low risk update to v1.4.3. The main purpose is to make libgomp 88 | available. It remains on GCC 10, but pulls in the latest patch releases of 89 | associated build tools.. 90 | 91 | * New features 92 | * libgomp is available now 93 | 94 | * Tool versions 95 | * GCC 10.3 (https://gcc.gnu.org/gcc-10/changes.html#GCC10.3) 96 | * glibc 2.34 (https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html) 97 | * binutils 2.37 98 | * Linux 4.19 headers except for RISC-V. RISC-V uses Linux 5.4 headers. 99 | 100 | ## v1.4.3 101 | 102 | This release bumps the Linux headers from 4.14 to 4.19. This requires that your 103 | Nerves system uses Linux 4.19 or later. 104 | 105 | * New features 106 | * Store a Build-ID by default. A Build-ID uniquely identifies an executable or 107 | shared library and is useful for matching up debug symbols to produce useful 108 | stack traces from C and C++ programs. 109 | * A 64-bit RISC-V crosscompiler is now available. 110 | 111 | * Tool versions 112 | * GCC 10.2 113 | * Linux 4.19 headers (except for RISC-V) 114 | * glibc 2.33 115 | * binutils 2.36.1 116 | 117 | ## v1.4.2 118 | 119 | This release reverts the switch from 4.14 headers to 4.4 headers in v1.4.0. This 120 | re-enables `libgpiod` (cdev), `bluez5`, `iwd`, and `ply` (eBPF) which required 121 | headers after 4.4. 122 | 123 | * Fixes 124 | * ARMv7 toolchain now defaults to "generic-arm-v7a" rather than "cortex-a9". 125 | This fixes a potential issue of generating invalid ARM instructions, but it 126 | appears that this did not affect ARM Cortex-A7 and A8 platforms supported by 127 | Nerves. 128 | 129 | * Tool versions 130 | * GCC 10.2 131 | * Linux 4.14 headers 132 | * glibc 2.33 133 | * binutils 2.36.1 134 | 135 | ## v1.4.1 136 | 137 | This release adds host support for native Mac M1 toolchains. 138 | 139 | Hardware float has been enabled on the `armv6` toolchain to further 140 | consistency with https://toolchains.bootlin.com configurations. 141 | 142 | * Updated dependencies 143 | * nerves_toolchain_ctng v1.8.2 144 | 145 | ## v1.4.0 146 | 147 | This release updates gcc from version 9.2.0 to 10.2.0 and includes various 148 | updates to the C runtime. See https://gcc.gnu.org/ for the many changes in the 149 | gcc 10.x releases. 150 | 151 | All toolchains have been renamed to set the vendor to nerves. ARM32 toolchains 152 | were renamed for consistency with https://toolchains.bootlin.com naming. 153 | 154 | ```text 155 | nerves_toolchain_aarch64_unknown_linux_gnu -> nerves_toolchain_aarch64_nerves_linux_gnu 156 | nerves_toolchain_armv5tejl_unknown_linux_musleabi -> nerves_toolchain_armv5_nerves_linux_musleabi 157 | nerves_toolchain_armv6_rpi_linux_gnueabi -> nerves_toolchain_armv6_nerves_linux_gnueabi 158 | nerves_toolchain_arm_unknown_linux_gnueabihf -> nerves_toolchain_armv7_nerves_linux_gnueabihf 159 | nerves_toolchain_i586_unknown_linux_gnu -> nerves_toolchain_i586_nerves_linux_gnu 160 | nerves_toolchain_mipsel_unknown_linux_musl -> nerves_toolchain_mipsel_nerves_linux_musl 161 | nerves_toolchain_x86_64_unknown_linux_gnu -> nerves_toolchain_x86_64_nerves_linux_gnu 162 | nerves_toolchain_x86_64_unknown_linux_musl -> nerves_toolchain_x86_64_nerves_linux_musl 163 | ``` 164 | 165 | Linux headers were downgraded from 4.14.160 to 4.4.214 to support using 166 | toolchains with systems using older versions of Linux. 167 | 168 | * Tool versions 169 | * GCC 10.2 170 | * Linux 4.4.214 headers 171 | * glibc 2.32 172 | 173 | * Updated dependencies 174 | * nerves v1.7 175 | * nerves_toolchain_ctng v1.8.1 176 | 177 | ## v1.3.2 178 | 179 | This is a patch release that adds support for macOS >= High Sierra. There is no 180 | reason to update from 1.3.0 if that version works for you. 181 | 182 | * Updated dependencies 183 | * nerves_toolchain_ctng v1.7.2 184 | 185 | ## v1.3.1 186 | 187 | This is a patch release that enables support for 64-bit ARM hosts. There is no 188 | reason to update from 1.3.0 if that version works for you. 189 | 190 | * Updated dependencies 191 | * nerves v1.6.0 192 | * nerves_toolchain_ctng v1.7.1 193 | 194 | ## v1.3.0 195 | 196 | This release updates gcc from version 8.3.0 to 9.2.0 and includes various 197 | updates to the C runtime. See https://gcc.gnu.org/ for the many changes in the 198 | gcc 9.x releases. 199 | 200 | * Tool versions 201 | * Linux 4.14.160 headers 202 | * glibc 2.30 203 | * muslc 1.1.24 204 | 205 | * Updated dependencies 206 | * nerves v1.5 207 | * nerves_toolchain_ctng v1.7.0 208 | 209 | ## v1.2.0 210 | 211 | This release updates gcc from version 7.3.0 to 8.3.0 and includes various 212 | updates to the C runtime. See https://gcc.gnu.org/ for the many changes in the 213 | gcc 8.x releases. 214 | 215 | * Tool versions 216 | * glibc 2.29 217 | * muslc 1.1.21 218 | 219 | * Updated dependencies 220 | * nerves v1.4 221 | * nerves_toolchain_ctng v1.6.0 222 | 223 | ## v1.1.0 224 | 225 | This release upgrades gcc from version 6.3.0 to 7.3.0. This addresses a C++ 226 | compiler issue and may bring in performance improvements. 227 | 228 | * Tool versions 229 | * glibc 2.27 230 | * muslc 1.1.19 231 | 232 | * Updated dependencies 233 | * nerves v1.1 234 | * nerves_toolchain_ctng v1.5.0 235 | 236 | ## v1.0.0 237 | 238 | * Updated dependencies 239 | * nerves v1.0 240 | * nerves_toolchain_ctng v1.4 241 | 242 | ## v1.0.0-rc.0 243 | 244 | * Updated dependencies 245 | * nerves v1.0-rc 246 | * nerves_toolchain_ctng v1.4-rc 247 | 248 | ## v0.13.1 249 | 250 | * Enhancements 251 | * Build static toolchains for Linux to avoid shared library issues 252 | 253 | ## v0.13.0 254 | 255 | * Enhancements 256 | * Toolchains are now built through `mix compile` 257 | * Toolchain artifacts can be produced with `mix nerves.artifact` 258 | * Updated project to support nerves v0.9 259 | 260 | ## v0.12.1 261 | 262 | * Bug Fixes 263 | * Configure toolchains to build app files. This will fix an issue where Mix 264 | does not respect `app: false` 265 | 266 | ## v0.12.0 267 | 268 | * Enhancements 269 | * Updated for nerves 0.8. Moved nerves.exs to mix.exs 270 | 271 | ## v0.11.0 272 | 273 | * Enhancements 274 | * Bumped all Linux 3.x kernel header configs up to 4.1 275 | * Build a cross gdb and gdbserver to support crash dump analysis and on 276 | target debugging of C/C++ code 277 | * Tool versions 278 | * m4-1.4.18 279 | * linux-4.1.39 280 | * gmp-6.1.2 281 | * mpfr-3.1.5 282 | * isl-0.18 283 | * mpc-1.0.3 284 | * expat-2.2.0 285 | * ncurses-6.0 286 | * libiconv-1.15 287 | * gettext-0.19.8.1 288 | * binutils-2.28 289 | * gcc-6.3.0 290 | * glibc-2.25 291 | * gdb-7.12.1 292 | 293 | ## v0.10.1 294 | 295 | * Enhancements 296 | * Update nerves to 0.7 297 | * Fix compiler warnings for Elixir 1.5 298 | 299 | ## v0.10.0 300 | 301 | * Enhancements 302 | * Updated nerves to 0.5.0 and loosened dep lock 303 | * Update linux header patch for 4.4 304 | 305 | ## v0.9.0 306 | 307 | * New features 308 | * Bump gcc version from 4.9 to 5.3 - THIS BREAKS COMPILATION OF OLD LINUX 309 | KERNELS! If you have no choice but to use an old Linux kernel, please 310 | do not upgrade to this toolchain. 311 | * Added x86_64 toolchain that's built against glibc 312 | 313 | ## v0.8.0 314 | 315 | * New features 316 | * Refactored defconfigs so that platform-independent and platform-dependent 317 | parts are stored separately. This majorly simplifies maintenance. 318 | * Added support for the `:nerves_package` compiler 319 | 320 | ## v0.7.2 321 | 322 | ### armv6_rpi_linux_gnueabi 323 | 324 | * Bug Fixes 325 | * [darwin] fixed defconfig to use 3.12 linux kernel headers 326 | 327 | ## v0.7.1 328 | 329 | * New features 330 | * First release using combined toolchain repository 331 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_gnu/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /nerves_toolchain_aarch64_nerves_linux_musl/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /nerves_toolchain_i586_nerves_linux_gnu/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /nerves_toolchain_mipsel_nerves_linux_musl/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_gnu/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /nerves_toolchain_riscv64_nerves_linux_musl/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_gnu/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /nerves_toolchain_x86_64_nerves_linux_musl/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | --------------------------------------------------------------------------------