From f26aacfab7aa71c497e8a7874bc56538f7fee389 Mon Sep 17 00:00:00 2001 From: Abhishek Thakur Date: Tue, 28 Jan 2020 10:46:57 +0530 Subject: [PATCH 01/51] Minor tweaks --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d0713b9..f38f574 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,14 @@ GCC Pi Logo + +[![Build Status](https://img.shields.io/travis/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/abhiTronix/raspberry-pi-cross-compilers) +[![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) [![Downloads](https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://sourceforge.net/projects/raspberry-pi-cross-compilers) -[![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) -[![Say Thanks](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://saythanks.io/to/abhiTronix) [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W8WTYO) - **Up-to-date PreBuilt GCC Cross & Native Compiler ARM/ARM64 Standalone Toolchains optimized for Raspberry-Pi** + **Latest automated GCC Cross Compiler & Native (ARM & ARM64) build-scripts and precompiled standalone toolchains for Raspberry Pi**   @@ -199,7 +200,7 @@ These toolchains are built with following LTO flags, thereby you can take advant **Copyright © 2020 abhiTronix** -This Project and its binaries are licensed under the [**GNU v3.0**](https://www.gnu.org/licenses/gpl-3.0.en.html) license license. +This Project and its binaries are licensed under the [**GNU v3.0**](https://www.gnu.org/licenses/gpl-3.0.en.html) license.   From 392b89a6714805a42dce81e3c2a8846660b23cb3 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Wed, 29 Jan 2020 23:05:15 +0530 Subject: [PATCH 02/51] Raspberry Pi Toolchains v3.0 :rocket: (Issue #32) Author: @abhiTronix :heart: Sharing is caring. - Introducing OpenSourced build-scripts for auto-generating Toolchains under GPLv3 License: - Implemented `RTBuilder_32b`: Raspberry Pi Toolchains Builder 32-bit script. - Implemented `RTBuilder_64b`: Raspberry Pi Toolchains Builder 64-bit script. - Introduced various user-friendly commandline parameters and helper function for scripts. - Introduced various environment variables for tweaking builds. - Setup continuous integration Travis CLI environments: - Added `.travis.yml` for continuous integration with Travis CLI. - Added support for various GCC version, Models and Pi Oses. - Added support for Raspbian Buster(Debian 10) ARM/ARM64 Toolchains. - Implemented multiple Linux build matrix for each job. - Implemented Auto-deployer to deploy binaries to SourceForge server. - Added Patch and Tool scripts: - Implemented `curl_stfp_patcher`: CURL SFTP patcher script - Added `SF_deployer`: SourceForge deployer script - Updated Docs: - Added seperate ReadMe for build-scripts. - Reflected License in the source code. - Revamped ReadMe with new information. --- .travis.yml | 115 ++++++++++++++ LICENSE | 5 +- README.md | 191 +++++++++++++---------- build-scripts/README.md | 225 +++++++++++++++++++++++++++ build-scripts/RTBuilder_32b | 302 ++++++++++++++++++++++++++++++++++++ build-scripts/RTBuilder_64b | 296 +++++++++++++++++++++++++++++++++++ patches/README.md | 80 ++++++++++ patches/curl_stfp_patcher | 42 +++++ tools/README.md | 82 ++++++++++ tools/SF_deployer | 103 ++++++++++++ 10 files changed, 1359 insertions(+), 82 deletions(-) create mode 100644 .travis.yml create mode 100644 build-scripts/README.md create mode 100755 build-scripts/RTBuilder_32b create mode 100755 build-scripts/RTBuilder_64b create mode 100644 patches/README.md create mode 100644 patches/curl_stfp_patcher create mode 100644 tools/README.md create mode 100644 tools/SF_deployer diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..9ad086a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,115 @@ +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + +os: linux +dist: bionic +language: minimal +matrix: + include: + - name: "GCC-9.2.0 32-bit Buster Pi[0-1]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=0-1 + language: minimal + - name: "GCC-9.2.0 32-bit Buster Pi[2-3]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=2-3 + language: minimal + - name: "GCC-9.2.0 32-bit Buster Pi[3+]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=3+ + language: minimal + - name: "GCC-9.2.0 32-bit Stretch Pi[0-1]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 + language: minimal + - name: "GCC-9.2.0 32-bit Stretch Pi[2-3]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 + language: minimal + - name: "GCC-9.2.0 32-bit Stretch Pi[3+]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=3+ + language: minimal + - name: "GCC-8.3.0 32-bit Buster Pi[0-1]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 + language: minimal + - name: "GCC-8.3.0 32-bit Buster Pi[2-3]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 + language: minimal + - name: "GCC-8.3.0 32-bit Buster Pi[3+]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ + language: minimal + - name: "GCC-8.3.0 32-bit Stretch Pi[0-1]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 + language: minimal + - name: "GCC-8.3.0 32-bit Stretch Pi[2-3]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 + language: minimal + - name: "GCC-8.3.0 32-bit Stretch Pi[3+]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ + language: minimal + - name: "GCC-6.3.0 32-bit Stretch Pi[0-1]" + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 + language: minimal + - name: "GCC-6.3.0 32-bit Stretch Pi[2-3]" + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 + language: minimal + - name: "GCC-6.3.0 32-bit Stretch Pi[3+]" + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ + language: minimal + - name: "GCC-9.2.0 64-bit" + env: GCC_VERSION=9.2.0 RPI_TYPE=64 + language: minimal + - name: "GCC-8.3.0 64-bit" + env: GCC_VERSION=8.3.0 RPI_TYPE=64 + language: minimal + - name: "GCC-6.3.0 64-bit" + env: GCC_VERSION=6.3.0 RPI_TYPE=64 +before_install: +- sudo apt-get update -q; + sudo apt-get install unzip wget dos2unix -y; + sudo apt-get install build-essential libssh2-1-dev openssl libcurl3 -y; + dos2unix build-scripts/RTBuilder_32b; + chmod +x build-scripts/RTBuilder_32b; + dos2unix build-scripts/RTBuilder_64b; + chmod +x build-scripts/RTBuilder_64b; + dos2unix patches/curl_stfp_patcher; + chmod +x patches/curl_stfp_patcher; + dos2unix tools/SF_deployer; + chmod +x tools/SF_deployer; +install: +- sudo apt-get -y install gcc g++ gperf flex texinfo gawk gfortran texinfo bison + libncurses-dev autoconf automake ccache tar figlet; +script: +- function keep_alive() { while true; do echo -en "\a"; sleep 60; done } +- keep_alive & +- bash build-scripts/RTBuilder_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; +- bash build-scripts/RTBuilder_64b -g $GCC_VERSION; +after_success: +- bash patches/curl_stfp_patcher; +- bash tools/SF_deployer; +cache: +- ccache: true +branches: + only: + - master +env: + global: + - CURL_VERSION=7.68.0 + - secure: MI97Ig3BiKpwjGL1Bwl/b9UuZ7ZKnz/IviyZnmGXVUNsovciQZRPg0DttZsc6upEFyLi0q8qc8ZKsWQsLA/0FoDRMiDzfpmiz8oy7C1MugY0AfViQP9PLCoUhltVFwEoFZS0MGR7eKmCedg9SVFIWBNwcGi7K8xqvSZlO6Adv+nxUBYU7QPUkqVVjxKslavDIcRlqDUtQfySkZcmFa/JzarwdYyusC1DuL/RTt8tUbp6MChvBFMZV/d+V69G9TRMkY32xKrSJ3GvQ/cuqN5eSi88e8K3PJP9oDfvcMCr+xF+cP7ztXrEMFmuiGvHAJf5TzeAGlfdqaBAYrNZ+mUuL/d50c7LJvF3PMmLLA0MUBVmyggFGb1l/UA7TARgTkV3VblE9vPFu9mDaQyOMGccFJ+4xwcsAxgI3nXNdmESz0M/bMUR47aIl2bGj/qennZZ6qW8GRId8iuceOYo570KGHdCnWAKKr/75Eds7p8D8u1QUdEjKyYO9EBbkgCJPw4Se+v5fp4Qej7bfBWtFgyadlPzxv3qYoq2Hq5VkmKLbY7cnbM2h+hrNjr8dnjNUIMzbrVbqlX08xKQ0qaa6e83Plm0K2nJ9AGrzIYkFj7Sdw1/XfGMm7inAIGOaPMzhy1V+UaSK/OuW77HW7fEgZwdMVOjSESPCU6uY8t0Bj1GeOE= + - secure: DwYnMsvCduimQQjyOnOj0qTwf2KtILQ+OhFrnKSgnds3fGFoJZp2lMFW6OKHlLkUuvZKDC3O+wxWeRJSU/JCjl/rHduH+10K7U2HhRKW4V876AJ61m+m6u/6v+6YEIB0RBJxKf8p4RdYtCP9Bfqrd46zvZWO8LNb4JzjgvQ1NngqcggTyIS+CVVop0Xz4fty9FHGN82FM5ZU2VwLyQNuOo5bo8Om3uWTXSKw4YfC0CFL2McUmxZaTtuz0653VJsqGAe7IfDYc7HiL4UKBX+K7yPcvpG6MG4ejpzC2Cxovo1BJ1HrWOpYIx5EpDwwRT9slEpuV1opHI3hLWg/dlXrtFn9QJQYyDcV2q6UXKeGSFjFInu1GeqWxD8fv/vm8OcfNgceW+++3AO0C/ZfRimhgLJYc/R4B6In95H8Sqtm1gFmlmtH3aIHIESLaXkhT1eQ8z5gpO9xtNBEqk0M7mZ3uN9ygYGLxMKdhQK4an+jHQQSnumRi3++mY7ST9Ekqq+YmIvGpB93wLyWnt545GkawAxHOrwcHeTLkBRbDDCOUgt4VO0+ng+Tc3u/f9oWZWp8fBMG+PjF1HyZMEU7S7dPWD6KqScbdo7a/zKdU8RZFigb1NMREOlV3v2ku4SO6V/zhegkUOGCWeH1u8F5ddTj74HytK+2qtFc8NUSbCIVtvs= \ No newline at end of file diff --git a/LICENSE b/LICENSE index fa22c4e..f25e138 100644 --- a/LICENSE +++ b/LICENSE @@ -632,9 +632,8 @@ state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project - provides Up-To-Date automated build-scripts along with precompiled - latest GCC Cross & Native Compiler ARM/ARM64 Toolchain binaries - for Raspberry Pi. + provides latest automated GCC Cross Compiler & Native (ARM & ARM64) + build-scripts and precompiled standalone toolchains for Raspberry Pi. Copyright (C) 2020 Abhishek Thakur(@abhiTronix) diff --git a/README.md b/README.md index f38f574..fb9947d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,31 @@ -
-GCC Pi Logo + + + +
+GCC Pi Logo [![Build Status](https://img.shields.io/travis/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/abhiTronix/raspberry-pi-cross-compilers) [![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) @@ -9,7 +33,7 @@ [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W8WTYO) - **Latest automated GCC Cross Compiler & Native (ARM & ARM64) build-scripts and precompiled standalone toolchains for Raspberry Pi** + ***Latest GCC Cross & Native automated Build-scripts and Precompiled Standalone (ARM/ARM64) Toolchains for Raspberry Pi***
  @@ -17,98 +41,101 @@ ## Table of Contents * [**TL'DR**](#tldr) * [**Key Feature Points**](#key-feature-points) -* [**Detailed Toolchains & Binaries Description**](#detailed-toolchains--binaries-description) - * [**Toolchains description table**](#toolchains-description-table) - * [**Binary description**](#binary-description) -* [**Toolchains Downloads**](#toolchains-downloads) -* [**Toolchain Setup Documentation**](#toolchain-setup-documentation) -* [**Support this Project**](#support-this-project) +* [**Precompiled Toolchains: Easy-to-Use**](#precompiled-toolchains-easy-to-use) + * [**A. Toolchains description table**](#a-toolchains-description-table) + * [**B. Toolchains Supported Languages**](#b-toolchains-supported-languages) + * [**C. Identify Binaries by Name**](#c-identify-binaries-by-name) + * [**D. Toolchains Download**](#d-toolchains-download) + * [**E. Toolchain Setup Documentation**](#e-toolchain-setup-documentation) +* [**For Developers: Do It Yourself**](#for-developers-do-it-yourself) +* [**Support this Project :heart:**](#support-this-project) * [**Additional Useful Information**](#additional-useful-information) * [**Supported ARM Devices**](#supported-arm-devices) - * [**Supported Languages**](#supported-languagesfull-functionality) * [**Optimization Flags Involved**](#optimization-flags-involved) * [**Citing**](#citing) -* [**License**](#license) +* [**Copyright License**](#copyright-license) * [**Acknowledgments**](#acknowledgments)   -## TL'DR +### TL'DR **What is this project?** -> _This project provides **Up-To-Date PreBuilt [Raspberry Pi hardware optimized](#optimization-flags-involved) GCC Cross & Native Compiler ARM/ARM64 Toolchains**, that will save you tons of time(no compiling and error handling required whatsoever) & thereby helps you get quickly started with software development on this hardware._ - -**Who get benefited from this project?** - -> _This project benefits everyone from a pro developer to a small hobbyist, looking for an easy to use GCC compiler for their Raspberry Pi project._ +> _This project provides latest [**Raspberry Pi hardware optimized**](#optimization-flags-involved) GCC Cross Compiler & Native (ARM & ARM64) [automated Build-Scripts](#for-developers-do-it-yourself) and [Precompiled standalone Toolchains binaries](#precompiled-toolchains-easy-to-use), that will save you tons of time & thereby helps you get quickly started with software development on Pi._ -**What is special about these toolchains?** +**Who will benefit from the project?** -> _These toolchains are easy to use, Pi Hardware optimized, constantly maintained and updated, provides a similar standardized headers(Hardcoded paths Free) standalone compiler for specific programming language i.e. C++, C, and Fortran, plus contains other important tools such as a GDB debugger._ +> _This project is for everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use GCC toolchains for their Raspberry Pi project(s) with minimum effort._ -**How to set up these toolchains?** - -> _These toolchains setup require just three easy steps - [Downloading, Extracting and Linking](#toolchain-setup-documentation)._ -   -## Key Feature Points +### Key Features + +- *Automated CLI maintained GCC standalone ARM/ARM64 toolchains.* +- *Latest [**GCC 9.2.0**](https://gcc.gnu.org/gcc-9/) toolchains available.* +- *Hardcoded paths free both Cross & Native **Raspbian Buster (Debian 10)** toolchains available.* +- *Separate binaries for each Raspberry Pi variant (including latest Compute modules and Raspberry Pi 4).* +- *Tar Compressed binaries with maximum possible compression.* +- *Exclusive **ARM64|AARCH64** Binaries for Raspberry Pi 64-Bit OS flavors.* +- *Open-sourced Toolchain build-scripts are available.* +- *Latest [**GDB Debugger v8.3.1**](https://www.gnu.org/software/gdb/download/ANNOUNCEMENT) included in all binaries.* -- *Raspberry pi hardware-optimized GCC Standalone ARM/ARM64 Binaries.* -- *Hardcoded paths free Cross & Native Compilers, just use directly.* -- *Separate binaries for each Raspberry Pi Model(including latest Compute modules and Raspberry Pi 4).* -- *Ridiculously low installation time(few mins).* -- *Small-Sized Tar Compressed binaries with maximum possible compression level.* -- *Latest **GCC 9.2.0** binary available.* -- *Exclusive **AArch64/ARM64** Binaries for Raspberry Pi 64-Bit OS flavors.* -- *Inbuilt [latest GDB Debugger](https://www.gnu.org/software/gdb/download/ANNOUNCEMENT) for both Cross & Native Compilers.* -- *Excellent Cross-Compiler CMAKE Compatibility.* -- *Link-time-optimization (LTO) enabled.* -- *OpenMP 5, C++2A, C2X, C++17 standard support (Default Raspberry pi GCC 6.3.0 lacks it) and other [latest changes](https://www.phoronix.com/scan.php?page=news_item&px=GCC-9.1-Compiler-Released).* -- *Improved Performance [Benchmarks](https://www.phoronix.com/scan.php?page=article&item=gcc9-eoy-2018&num=1).* +    -## Detailed Toolchains & Binaries Description +# Precompiled Toolchains: Easy-to-Use + +***This project uses CLI to auto-generate various easy-to-use precompiled Compressed GCC Cross & Native standalone ARM/ARM64 toolchains which are discussed as follows:*** -### Toolchains description table: +### A. Toolchains description table: -Here's a reference table for various available Toolchains in this project targeting specific OS only: +Here's a reference table for various precompiled Toolchains available in this project that are targeting specific OS only: -**Reference:** -* **Host OS:** on which the toolchain is executed/used. -* **Target OS:** for which the toolchain generates code. +* **Reference:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. -| Toolchains | Host OS | Target OS | Status | GCC versions available | +| Toolchains | Host OS | Target OS | Status | Precompiled GCC versions available | |----------|--------|-------|--------|------| -| **Cross-Compiler Toolchains** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 8.3.0, 9.1.0, 9.2.0 | -| **Native Compiler Toolchains** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 8.3.0, 9.1.0, 9.2.0 | -| **64-bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.1.0, 9.2.0 | -| **64-bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.1.0, 9.2.0 | -| **Exclusive Toolchains (Cross-Compiler)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Beta/Testing/Experimental | 8.3.0 | +| **Cross-Compiler Toolchains (Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Cross-Compiler Toolchains (Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Native Compiler Toolchains (Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 8.3.0, 9.2.0 | +| **Native Compiler Toolchains (Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **64-bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **64-bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive Toolchains** | None | None | None | None | | **Obsolete Compiler Toolchains** | Not supported | Not supported | No longer supported | 7.4.0, 8.2.0 | +  + +### B. Toolchains Supported Languages: +- C++ +- Fortran +- C +- Any other language support can be [compiled manually](#for-developers-do-it-yourself). -### Binary description: +  -You can easily identify each binary by its name as follows: +### C. Identify Binaries by Name: -![Description](https://raw.githubusercontent.com/abhiTronix/Imbakup/master/Images/gcc2.jpg) +You can easily identify each pre-compiled toolchain binary by its name as follows: +

Binary Description

  -## Toolchains Downloads +### D. Toolchains Download -Pre-built standalone compressed GCC Toolchains binary can be easily be downloaded from the [SourceForge Repository](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/) by clicking links given in the following table: +_Compressed pre-compiled GCC Toolchain binaries can be easily be downloaded from the project's [**SourceForge Repository**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/) or by clicking links given in the following table:_ | Toolchains | GCC download links | @@ -126,50 +153,54 @@ Pre-built standalone compressed GCC Toolchains binary can be easily be downloade   +### E. Toolchain Setup Documentation -## Toolchain Setup Documentation - -The toolchains setup require just three easy steps - **Downloading, Extracting and Linking**: +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: -* **Follow [:point_right: Wiki-Documentation (en-english)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki)** +* #### [WIKI-Documentation (en-english)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +  + +  + + +# For Developers: Do It Yourself + +_Open source is awesome, thereby, This project now provides user-friendly opensourced build-scripts that auto-generates & compiles Cross & Native GCC ARM/ARM64 Toolchain binaries targeting Raspberry Pi 32-bit Stretch (Debian 9) & Buster (Debian 10) and any Raspberry Pi 64-bit (like Pi64) OSes. These build-scripts are used by Automated CLI environments to generate various precompiled GCC ARM/ARM64 toolchains as discussed above. But you can also use these scripts to manually compile any latest GCC toolchains yourself through your terminal. **You can find complete related info here:**_ + +### :scroll: [Build-Scripts](/build-scripts) + + +    -## Support this Project +# Support this Project ***If these binaries helped you big time, please consider supporting it through any size donations. Thank you :heart:.*** [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix)  -***You can also share your [**reviews**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or drop a [:star:](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers) or just say [thank you](https://saythanks.io/to/abhiTronix)!*** +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star :star:](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** -  +  -## Additional Useful Information +  + +# Additional Useful Information ### Supported ARM Devices: - All Raspberry Pi hardware/versions/models are currently supported. - Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. -  - -### Supported Languages(full functionality): -- C++ -- Fortran -- C -- Ask for any other Language support [here](https://github.com/abhiTronix/raspberry-pi-cross-compilers/issues) - -  - ### Optimization Flags Involved: These toolchains are built with following LTO flags, thereby you can take advantage of your Raspberry Pi's CPU specific features with these LTO flags: -***Note:warning:: The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported!*** +***Important :bulb: : The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported!*** -| Board | LTO Optimation Flags | +| Board | LTO Link Optimization Flags | |---|---| | Raspberry Pi - **Zero/W/WH & 1 Model A/B/A+/B+** | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | | Raspberry Pi - **2&3 Model A/B** | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | @@ -180,11 +211,11 @@ These toolchains are built with following LTO flags, thereby you can take advant   -## Citing +# Citing **Here is a Bibtex entry you can use to cite this project in a publication:** -```tex +```bibtex @misc{raspberry-pi-cross-compilers, Title = {Raspberry Pi Toolchains}, Author = {Abhishek Thakur}, @@ -196,15 +227,17 @@ These toolchains are built with following LTO flags, thereby you can take advant   -## License +# Copyright License **Copyright © 2020 abhiTronix** -This Project and its binaries are licensed under the [**GNU v3.0**](https://www.gnu.org/licenses/gpl-3.0.en.html) license. +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) license.   -## Acknowledgments + +# Acknowledgments + - https://gcc.gnu.org/ for providing the latest source code. - https://www.raspberrypi.org/ for providing the latest kernel and docs. -- https://sourceforge.net for allowing me to publish these binaries. +- https://sourceforge.net for allowing me to publish these binaries. \ No newline at end of file diff --git a/build-scripts/README.md b/build-scripts/README.md new file mode 100644 index 0000000..febfea1 --- /dev/null +++ b/build-scripts/README.md @@ -0,0 +1,225 @@ + + + +
+GCC Pi Logo + +[![Build Status](https://img.shields.io/travis/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/abhiTronix/raspberry-pi-cross-compilers) +[![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) +[![Downloads](https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://sourceforge.net/projects/raspberry-pi-cross-compilers) + +[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W8WTYO) + + **Latest automated GCC Cross Compiler & Native (ARM & ARM64) build-scripts and precompiled standalone toolchains for Raspberry Pi** +
+ +  + +## Build Scripts + +_These are user-friendly scripts that auto-generates Compressed Cross & Native GCC ARM/ARM64 Toolchain binaries targeting Raspberry Pi 32-bit Stretch(Debian 9) & Buster(Debian 10) and any Raspberry Pi 64-bit(like Pi64) OSes. These build-scripts are used by Automated CLI environments to generate various precompiled GCC ARM/ARM64 toolchains. But you can also use these scripts to manually compile any latest GCC toolchains yourself through your terminal._ + +### `RTBuilder_32b`: Raspberry Pi Toolchains Builder 32-bit + +* _This script auto-generates Compressed Cross & Native GCC ARM Toolchain binaries targeting Raspberry Pi 32-bit Stretch(Debian 9) & Buster(Debian 10) OSes._ + +### `RTBuilder_64b`: Raspberry Pi Toolchains Builder 64-bit + +* _This script auto-generates Compressed Cross & Native GCC ARM64 Toolchain binaries targeting any Raspberry Pi 64-bit (like Pi64) OSes._ + + + +  + +## Usage + +***:warning: These scripts are Linux specific only.*** + +1. **Update environment & Install prerequisites:** + + ```sh + # update your system + sudo apt update && sudo apt dist-upgrade + + # install prerequisites + sudo apt-get -y install gcc g++ gperf flex texinfo gawk gfortran texinfo bison \ + build-essential openssl unzip wget git \ + libncurses-dev autoconf automake tar figlet + ``` + + **Optional:** Install `ccache` for speeding up build time: + + ```sh + # Install package + sudo apt install -y ccache + + # Update symlinks + sudo /usr/sbin/update-ccache-symlinks + + # Perpend ccache into the PATH + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + + # Source .bashrc to test the new PATH + source ~/.bashrc && echo $PATH + + ``` + +2. **Clone this repository:** + + ```bash + git clone https://github.com/abhiTronix/raspberry-pi-cross-compilers.git + cd raspberry-pi-cross-compilers/build-scripts + + ``` + +3. **Run scripts:** + + * ### `RTBuilder_32b`: Raspberry Pi Toolchains Builder 32-bit + + + * **Usage parameters:** This script requires a few command-line parameters, just run `./RTBuilder_32b` on terminal: + + ```bash + Usage: ./RTBuilder_32b -g [GCC version] -r [Target Pi type] -o [Target Pi OS type] + -g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0) + -r What's yours Raspberry Pi type?: (0-1|2-3|3+) + -o What's yours Raspberry Pi OS type?: (stretch|buster) + + ``` + + + * **Usage:** Just pass _targeted [GCC version](#supported-gcc-versions)_ to `-g` parameter, _targeted raspberry pi type_ to `-r` parameter, and _targeted raspberry pi OS type_ to `-o` parameter of this script: + + ***:warning: You cannot compile GCC version less than GCC 8.3.0 for Buster OS, otherwise script will automatically switch for Stretch OS.*** + + ```bash + chmod +x RTBuilder_32b + ./RTBuilder_32b -g "9.2.0" -r "2-3" -o "buster" + + ``` + + *This will take some time _(approximately 55mins)_, so grab a coffee :coffee:. On returning you will find `native-gcc-{GCC_VERSION}-pi_64.tar.gz` and `cross-gcc-{GCC_VERSION}-pi_{}.tar.gz` at your `$HOME` directory.* + + + + * ### `RTBuilder_64b`: Raspberry Pi Toolchains Builder 64-bit + + + * **Usage parameters:** This script requires few command-line parameters, just run `./RTBuilder_64b`: + + ```bash + Usage: ./RTBuilder_64b -g [GCC version] -t [OS Type] + -g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0) + -t What's yours Raspberry Pi OS type?: (1|2) [default:1] + + ``` + + + * **Usage:** Just pass _targeted [GCC version](#supported-gcc-versions)_ to `-g` parameter of this script: + + ```bash + chmod +x RTBuilder_64b + ./RTBuilder_64b -g "9.2.0" + + ``` + + *This will take some time _(approximately 55mins)_, so grab a coffee :coffee:. On returning you will find `native-gcc-{GCC_VERSION}-pi_64.tar.gz` and `cross-gcc-{GCC_VERSION}-pi_64.tar.gz` at your `$HOME` directory.* + +  + + +## Custom Builds: + +These scripts provide a few additional environment variables to tweak Toolchain Builds: + +* `BUILDDIR`: To change build directory. By default it is set to temp(`/tmp`) directory. Its usage is as follows: + + ***:warning: Make sure assigned directory has read/write permission.*** + + ```bash + BUILDDIR="/home/foo/foo1" + ``` +* `LANGUAGES`: To change supported programming languages for your Toolchains. Its default value is `c,c++,fortran`. Its usage is as follows: + + ***:warning: Make sure to install additional dependency manually according to your assigned supported languages.*** + + ```bash + LANGUAGES="c,go,brig,d" + ``` + +  + +### Supported GCC Versions: + +These scripts only support specific GCC versions, those are as follows: + +***:warning: You cannot compile GCC version less than GCC 8.3.0 for Buster OS, otherwise script will automatically switch for Stretch OS.*** + +- 7.1.0 +- 7.2.0 +- 7.3.0 +- 7.4.0 +- 7.5.0 +- 8.1.0 +- 8.2.0 +- 8.3.0 +- 9.1.0 +- 9.2.0 + + +  + +## Support this Project +***If these binaries helped you big time, please consider supporting it through any size donations. Thank you :heart:.*** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix)  + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star :star:](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +  + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```tex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +  + + +## License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) license. \ No newline at end of file diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b new file mode 100755 index 0000000..a1531cc --- /dev/null +++ b/build-scripts/RTBuilder_32b @@ -0,0 +1,302 @@ +#!/bin/bash + + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + + +# This script auto downloads, compiles, and compresses Cross & Native GCC ARM Toolchain binaries +# targeting Raspberry Pi 32-bit Stretch(Debian 9) and Buster(Debian 10) OSes only. + + + +helpfunction() +{ + #helper function that prints custom usage help menu + echo "" + echo "Usage: $0 -g [GCC version] -r [Target Pi type] -o [Target Pi OS type]" + echo -e "\t-g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)" + echo -e "\t-r What's yours Raspberry Pi type?: (0-1|2-3|3+)" + echo -e "\t-o What's yours Raspberry Pi OS type?: (stretch|buster)" + exit 1 # Exit script after printing help +} + + + +#input arguments handler +while getopts "g:r:o:" opt +do + case "$opt" in + g ) GCC_VERSION="$OPTARG" ;; + r ) RPI_TYPE="$OPTARG" ;; + o ) RPIOS_TYPE="$OPTARG" ;; + ? ) helpfunction ;; #prints help function for invalid parameter + esac +done +#validates parameters and print usage helper function in case parameters are missing +if [ -z "$GCC_VERSION" ] || [ -z "$RPI_TYPE" ] || [ -z "$RPIOS_TYPE" ] +then + echo "Required parameters are missing!"; + helpfunction +fi + + + +#collect parameters from raspbery pi type +if [ "$RPI_TYPE" = "2-3" ]; then + FOLDER_VERSION=1 + KERNEL=kernel7 + ARCH=armv7-a + FPU=neon-vfpv4; +elif [ "$RPI_TYPE" = "3+" ]; then + FOLDER_VERSION=2 + KERNEL=kernel7 + ARCH=armv8-a + FPU=neon-fp-armv8 +elif [ "$RPI_TYPE" = "0-1" ]; then + FOLDER_VERSION=0 + KERNEL=kernel + ARCH=armv6 + FPU=vfp +else + echo "Invalid argument value: $RPI_TYPE" + exit +fi + +#collect dependencies versions from raspberry pi os +if [ "$RPIOS_TYPE" = "stretch"] || [ "$GCC_VERSION" /< "8.3.0" ]; then + GCCBASE_VERSION=6.3.0 + GLIBC_VERSION=2.24 + BINUTILS_VERSION=2.28 +elif [ "$RPIOS_TYPE" = "buster" ]; then + GCCBASE_VERSION=8.3.0 + GLIBC_VERSION=2.28 + BINUTILS_VERSION=2.31 +else + echo "Invalid argument value: $RPIOS_TYPE" + exit +fi + +#collect build directory if not defined +if [ "$BUILDDIR" = "" ]; then + #select temp directory as default + echo "Build directory is empty, using temp directory!" + BUILDDIR=$(dirname "$(mktemp tmp.XXXXXXXXXX -ut)") +fi + +#collect programming languages if not defined +if [ "$LANGUAGES" = "" ]; then + #select `c,c++,fortran` as default + echo "Building binaries for c,c++,fortran programming languages!" + LANGUAGES=c,c++,fortran +fi + +#pre-defined params +TARGET=arm-linux-gnueabihf +GDB_VERSION=8.3.1 + +#validate env variables +if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi +if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi +if ! [[ "$GLIBC_VERSION" =~ ^(2.24|2.28)$ ]]; then exit 1 ; fi +if ! [[ "$BINUTILS_VERSION" =~ ^(2.28|2.31)$ ]]; then exit 1 ; fi +if ! [[ "$FOLDER_VERSION" =~ ^(0|1|2)$ ]]; then exit 1 ; fi +if ! [[ "$KERNEL" =~ ^(kernel|kernel7)$ ]]; then exit 1 ; fi +if ! [[ "$ARCH" =~ ^(armv6|armv7-a|armv8-a)$ ]]; then exit 1 ; fi +if ! [[ "$FPU" =~ ^(vfp|neon-vfpv4|neon-fp-armv8)$ ]]; then exit 1 ; fi +if [ "$BUILDDIR" = "" ]; then exit 1 ; fi +if [ "$LANGUAGES" = "" ]; then exit 1 ; fi + + +echo "" +echo "" +figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" +echo "" +echo "" + +#download binaries if not found +echo "Downloading and Setting up build directories" + +DOWNLOADDIR=$BUILDDIR/build_toolchains +INSTALLDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc + +mkdir -p "$DOWNLOADDIR" +mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" + +cd "$DOWNLOADDIR" || exit + +if [ ! -d "linux" ]; then + wget https://github.com/$(wget https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) + tar xf raspberrypi*.tar.gz + mv linux* linux + rm ./*.tar.* + cd $OLDPWD +fi +if [ ! -d "gcc-$GCCBASE_VERSION" ]; then + if [ ! -f "gcc-$GCCBASE_VERSION.tar.gz" ]; then wget https://ftpmirror.gnu.org/gcc/gcc-$GCCBASE_VERSION/gcc-$GCCBASE_VERSION.tar.gz; fi + tar xf gcc-$GCCBASE_VERSION.tar.gz + cd gcc-$GCCBASE_VERSION || exit + mkdir -p build + contrib/download_prerequisites + rm ./*.tar.* + if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch + cd $OLDPWD +fi +if [ ! -d "binutils-$BINUTILS_VERSION" ]; then + if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then wget https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; fi + tar xf binutils-$BINUTILS_VERSION.tar.bz2 + cd binutils-$BINUTILS_VERSION || exit + mkdir -p build + cd $OLDPWD +fi +if [ ! -d "glibc-$GLIBC_VERSION" ]; then + if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then wget https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; fi + tar xf glibc-$GLIBC_VERSION.tar.bz2 + cd glibc-$GLIBC_VERSION || exit + mkdir -p build + cd $OLDPWD +fi +if [ ! -d "gdb-$GDB_VERSION" ]; then + if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then wget https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; fi + tar xf gdb-$GDB_VERSION.tar.xz + cd gdb-$GDB_VERSION || exit + mkdir -p build + cd $OLDPWD +fi +if [ ! -d "gcc-$GCC_VERSION" ]; then + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; fi + tar xf gcc-$GCC_VERSION.tar.gz + cd gcc-$GCC_VERSION || exit + mkdir -p build + contrib/download_prerequisites + rm ./*.tar.* + cd $OLDPWD +fi + + + +echo "Setting up paths..." +PATH=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:$PATH +unset LD_LIBRARY_PATH #patch + + +echo "Building Kernel Headers..." +cd "$DOWNLOADDIR"/linux || exit +KERNEL=$KERNEL +make ARCH=arm INSTALL_HDR_PATH="$SYSROOTDIR"/usr headers_install +mkdir -p "$SYSROOTDIR"/usr/lib + + +echo "Building binutils..." +rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* +cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit +../configure --target=$TARGET --prefix= --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib +make -j$(nproc) +make install DESTDIR="$INSTALLDIR" +rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* + + +echo "Building Cross GCC $GCCBASE_VERSION Binaries..." +rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* +cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit +../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib +make -j$(nproc) all-gcc +make install-gcc DESTDIR="$INSTALLDIR" +rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* +cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit +../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes +make install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" +make -j$(nproc) csu/subdir_lib +install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib +$TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so +touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h +cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit +make -j$(nproc) all-target-libgcc +make install-target-libgcc DESTDIR="$INSTALLDIR" +cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit +make -j$(nproc) +make install DESTDIR="$SYSROOTDIR" +cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit +rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* +make -j$(nproc) +make install DESTDIR="$INSTALLDIR" +rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* + +if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then + cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit + rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib + make -j$(nproc) + make install DESTDIR="$INSTALLDIR" + rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + + echo "Building GCC Native GCC $GCC_VERSION Binaries..." + mkdir -p "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit + rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib --program-suffix=-$GCC_VERSION + make -j$(nproc) + make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit + cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/lib/gcc/$TARGET/$GCC_VERSION/include-fixed/limits.h + + echo "Building Native GDB Binaries..." + cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit + rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --program-suffix=-$GCC_VERSION + make -j$(nproc) + make install DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* + echo "Done Building Native GDB Binaries..." + + mv "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" + cd "$HOME" || exit + #compress with maximum possible compression level. + env GZIP=-9 tar cvzf native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + rm -rf "$HOME"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + echo "Done Building Native GCC $GCC_VERSION Binaries..." +fi + +cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit +cat gcc/limitx.h gcc/glimits.h gcc/limity.h > $(dirname $($TARGET-gcc -print-libgcc-file-name))/include-fixed/limits.h + +echo "Building Cross GDB Binaries..." +cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit +rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* #cleanup +../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard +make -j$(nproc) +make install DESTDIR="$INSTALLDIR" +rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* #cleanup +echo "Done Building Cross GDB Binaries..." + +mv "$BUILDDIR"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" +cd "$HOME" || exit +#compress with maximum possible compression level. +env GZIP=-9 tar cvzf cross-gcc-$GCC_VERSION-pi_"$RPI_TYPE".tar.gz cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +echo "Done Building Cross GCC $GCC_VERSION Binaries..." + +#clean path +PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b new file mode 100755 index 0000000..f1fd0ec --- /dev/null +++ b/build-scripts/RTBuilder_64b @@ -0,0 +1,296 @@ +#!/bin/bash + + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + + +# This script aauto downloads, compiles, and compresses Cross & Native GCC ARM64 Toolchain +# binaries targeting any Raspberry Pi 64-bit (like Pi64) OSes. + + +helpfunction() +{ + #helper function that prints custom usage help menu + echo "" + echo "Usage: $0 -g [GCC version] -t [OS Type]" + echo -e "\t-g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)" + echo -e "\t-t What's yours Raspberry Pi OS type?: (1|2) [default:1]" + exit 1 # Exits script after printing help +} + + + +#input arguments handler +while getopts "g:t:" opt +do + case "$opt" in + g ) GCC_VERSION="$OPTARG" ;; + t ) OS_TYPE="$OPTARG" ;; + ? ) helpfunction ;; #prints help function for invalid parameter + esac +done +#validates parameters and print usage helper function in case parameters are missing +if [ -z "$GCC_VERSION" ]; then + echo "Required parameter is missing!"; + helpfunction +elif [ -z "$OS_TYPE" ]; then + OS_TYPE=1 +else + echo "Parameters configured!"; +fi + + +#collect dependencies versions from raspberry pi os +if [ "$OS_TYPE" = "1" ] || [ "$GCC_VERSION" /< "8.3.0" ] ; then + GCCBASE_VERSION=6.3.0 + GLIBC_VERSION=2.24 + BINUTILS_VERSION=2.28 +elif [ "$OS_TYPE" = "2" ]; then + GCCBASE_VERSION=8.3.0 + GLIBC_VERSION=2.28 + BINUTILS_VERSION=2.31 +else + echo "Invalid argument value: $OS_TYPE" + exit +fi + + +#collect build directory if not defined +if [ "$BUILDDIR" = "" ]; then + #select temp directory + echo "Build directory is empty, using temp directory!" + BUILDDIR=$(dirname "$(mktemp tmp.XXXXXXXXXX -ut)") +fi + +#collect programming languages if not defined +if [ "$LANGUAGES" = "" ]; then + #select temp directory + echo "Building binaries for c,c++,fortran programming languages!" + LANGUAGES=c,c++,fortran +fi + + +#pre-defined params +FOLDER_VERSION=64 +KERNEL=kernel7 +ARCH=armv8-a+fp+simd +TARGET=aarch64-linux-gnu +GDB_VERSION=8.3.1 + + +#validate env variables +if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi +if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi +if ! [[ "$GLIBC_VERSION" =~ ^(2.24|2.28)$ ]]; then exit 1 ; fi +if ! [[ "$BINUTILS_VERSION" =~ ^(2.28|2.31)$ ]]; then exit 1 ; fi +if [ "$KERNEL" != "kernel7" ]; then exit 1 ; fi +if [ "$ARCH" != "armv8-a+fp+simd" ]; then exit 1 ; fi +if [ "$FOLDER_VERSION" != "64" ]; then exit 1 ; fi +if [ "$BUILDDIR" = "" ]; then exit 1 ; fi +if [ "$LANGUAGES" = "" ]; then exit 1 ; fi + + + +echo "" +echo "" +figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" +echo "" +echo "" + + +echo "Downloading and Setting up build directories" +#setup paths +DOWNLOADDIR=$BUILDDIR/build_toolchains +INSTALLDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc + +#make dirs +mkdir -p "$DOWNLOADDIR" +mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" + +cd "$DOWNLOADDIR" || exit +#download binaries if not found +if [ ! -d "linux" ]; then + wget https://github.com/$(wget https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) + tar xf raspberrypi*.tar.gz + mv linux* linux + rm ./*.tar.* +fi +if [ ! -d "gcc-$GCCBASE_VERSION" ]; then + if [ ! -f "gcc-$GCCBASE_VERSION.tar.gz" ]; then + wget https://ftpmirror.gnu.org/gcc/gcc-$GCCBASE_VERSION/gcc-$GCCBASE_VERSION.tar.gz; + fi + tar xf gcc-$GCCBASE_VERSION.tar.gz + cd gcc-$GCCBASE_VERSION || exit + mkdir -p build + contrib/download_prerequisites + rm ./*.tar.* + if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch + cd $OLDPWD +fi +if [ ! -d "binutils-$BINUTILS_VERSION" ]; then + if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then + wget https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; + fi + tar xf binutils-$BINUTILS_VERSION.tar.bz2 + cd binutils-$BINUTILS_VERSION || exit + mkdir -p build + cd $OLDPWD +fi +if [ ! -d "glibc-$GLIBC_VERSION" ]; then + if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then + wget https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; + fi + tar xf glibc-$GLIBC_VERSION.tar.bz2 + cd glibc-$GLIBC_VERSION || exit + mkdir -p build + cd $OLDPWD +fi +if [ ! -d "gdb-$GDB_VERSION" ]; then + if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then + wget https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; + fi + tar xf gdb-$GDB_VERSION.tar.xz + cd gdb-$GDB_VERSION || exit + mkdir -p build + cd $OLDPWD +fi +if [ ! -d "gcc-$GCC_VERSION" ]; then + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then + wget https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; + fi + tar xf gcc-$GCC_VERSION.tar.gz + cd gcc-$GCC_VERSION || exit + mkdir -p build + contrib/download_prerequisites + rm ./*.tar.* + cd $OLDPWD +fi + + + +echo "Setting up paths..." +PATH=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:$PATH +unset LD_LIBRARY_PATH #patch + + +echo "Building Kernel Headers..." +cd "$DOWNLOADDIR"/linux || exit +KERNEL=$KERNEL +make ARCH=arm64 INSTALL_HDR_PATH="$SYSROOTDIR"/usr headers_install +mkdir -p "$SYSROOTDIR"/usr/lib + + +echo "Building binutils..." +rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* +cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit +../configure --target=$TARGET --prefix= --with-arch=$ARCH --disable-multilib +make -j$(nproc) +make install DESTDIR="$INSTALLDIR" +rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* + + +echo "Building Cross GCC $GCCBASE_VERSION Binaries..." +rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* +cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit +../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib +make -j$(nproc) all-gcc +make install-gcc DESTDIR="$INSTALLDIR" +rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* +cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit +../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes +make install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" +make -j$(nproc) csu/subdir_lib +install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib +$TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so +touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h +cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit +make -j$(nproc) all-target-libgcc +make install-target-libgcc DESTDIR="$INSTALLDIR" +cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit +make -j$(nproc) +make install DESTDIR="$SYSROOTDIR" +cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit +rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* +make -j$(nproc) +make install DESTDIR="$INSTALLDIR" +rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* + +if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then + cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit + rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib + make -j$(nproc) + make install DESTDIR="$INSTALLDIR" + rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + + echo "Building GCC Native GCC $GCC_VERSION Binaries..." + mkdir -p "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit + rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --disable-multilib --program-suffix=-$GCC_VERSION + make -j$(nproc) + make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit + cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/lib/gcc/$TARGET/$GCC_VERSION/include-fixed/limits.h + + echo "Building Native GDB Binaries..." + cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit + rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --program-suffix=-$GCC_VERSION + make -j$(nproc) + make install DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* + echo "Done Building Native GDB Binaries..." + + mv "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" + cd "$HOME" || exit + #compress with maximum possible compression level. + env GZIP=-9 tar cvzf native-gcc-$GCC_VERSION-pi_$FOLDER_VERSION.tar.gz native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + rm -rf "$HOME"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + echo "Done Building Native GCC $GCC_VERSION Binaries..." +fi + +cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit +cat gcc/limitx.h gcc/glimits.h gcc/limity.h > $(dirname $($TARGET-gcc -print-libgcc-file-name))/include-fixed/limits.h + +echo "Building Cross GDB Binaries..." +cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit +rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* #cleanup +../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-float=hard +make -j$(nproc) +make install DESTDIR="$INSTALLDIR" +rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* #cleanup +echo "Done Building Cross GDB Binaries..." + +mv "$BUILDDIR"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" +cd "$HOME" || exit +#compress with maximum possible compression level. +env GZIP=-9 tar cvzf cross-gcc-$GCC_VERSION-pi_"$FOLDER_VERSION".tar.gz cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +echo "Done Building Cross GCC $GCC_VERSION Binaries..." + +#clean path +PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/patches/README.md b/patches/README.md new file mode 100644 index 0000000..00e6143 --- /dev/null +++ b/patches/README.md @@ -0,0 +1,80 @@ + + +
+GCC Pi Logo + +[![Build Status](https://img.shields.io/travis/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/abhiTronix/raspberry-pi-cross-compilers) +[![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) +[![Downloads](https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://sourceforge.net/projects/raspberry-pi-cross-compilers) + +[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W8WTYO) + + **Latest automated GCC Cross Compiler & Native (ARM & ARM64) build-scripts and precompiled standalone toolchains for Raspberry Pi** +
+ +  + +## Tool Scripts + +_These are helper scripts to facilitate various CLI jobs in this Project._ + +* #### `SF_deployer`: SourceForge deployer + + _This script auto-deploys CLI compiled Cross & Native GCC Toolchain binaries to SourceForge secured servers._ + + +  + +## Support this Project +***If these binaries helped you big time, please consider supporting it through any size donations. Thank you :heart:.*** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix)  + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star :star:](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +  + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```tex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +  + + +## License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) license. \ No newline at end of file diff --git a/patches/curl_stfp_patcher b/patches/curl_stfp_patcher new file mode 100644 index 0000000..c42be26 --- /dev/null +++ b/patches/curl_stfp_patcher @@ -0,0 +1,42 @@ +#!/bin/bash + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + +#This script patches curl to enable native sftp support + +echo "" +echo "" +figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Patcher" +echo "" +echo "" + +sudo apt-get purge curl -y; +wget https://curl.haxx.se/download/curl-"$CURL_VERSION".tar.gz +tar xf curl-7.68.0.tar.gz +cd curl-7.68.0 +./configure --with-libssh2 +make -j$(nproc) +sudo make install +sudo ldconfig \ No newline at end of file diff --git a/tools/README.md b/tools/README.md new file mode 100644 index 0000000..8108a9b --- /dev/null +++ b/tools/README.md @@ -0,0 +1,82 @@ + + + +
+GCC Pi Logo + +[![Build Status](https://img.shields.io/travis/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/abhiTronix/raspberry-pi-cross-compilers) +[![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) +[![Downloads](https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://sourceforge.net/projects/raspberry-pi-cross-compilers) + +[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W8WTYO) + + **Latest automated GCC Cross Compiler & Native (ARM & ARM64) build-scripts and precompiled standalone toolchains for Raspberry Pi** +
+ +  + +## Patch Scripts + +_These scripts are used to patch any faults in Automated CLI enviroments in this Project._ + +* #### `curl_stfp_patcher`: CURL SFTP patcher + + _This script patches `curl` libs to enables native SFTP support._ + + +  + +## Support this Project +***If these binaries helped you big time, please consider supporting it through any size donations. Thank you :heart:.*** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix)  + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star :star:](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +  + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```tex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +  + + +## License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) license. \ No newline at end of file diff --git a/tools/SF_deployer b/tools/SF_deployer new file mode 100644 index 0000000..34fe29e --- /dev/null +++ b/tools/SF_deployer @@ -0,0 +1,103 @@ +#!/bin/bash + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + + +# This script auto-deploys CLI compiled Cross & Native GCC Toolchain binaries to Sourceforge secured server + + +echo "" +echo "" +figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Deployer" +echo "" +echo "" + + +#Deploy Cross-compiler Toolchain binaries +if [ ! -f "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then + if [ "$RPI_TYPE" = "64" ]; then + FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains/Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains/GCC $GCC_VERSION" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + else + if [ "$RPIOS_TYPE" = "buster" ]; then + FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Buster/GCC $GCC_VERSION" + if [ "$RPI_TYPE" = "0-1" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + if [ "$RPI_TYPE" = "2-3" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + if [ "$RPI_TYPE" = "3+" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + fi + if [ "$RPIOS_TYPE" = "stretch" ]; then + FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Stretch/GCC $GCC_VERSION" + if [ "$RPI_TYPE" = "0-1" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + if [ "$RPI_TYPE" = "2-3" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + if [ "$RPI_TYPE" = "3+" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + fi + fi +fi + + +#Deploy Native-compiler Toolchain binaries +if [ ! -f "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then + if [ "$RPI_TYPE" = "64" ]; then + FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains/Raspberry Pi GCC 64-Bit Native-Compiler Toolchains/GCC $GCC_VERSION" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + else + if [ "$RPIOS_TYPE" = "buster" ]; then + FOLDER="Raspberry Pi GCC Native-Compiler Toolchains/Buster/GCC $GCC_VERSION" + if [ "$RPI_TYPE" = "0-1" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + if [ "$RPI_TYPE" = "2-3" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + if [ "$RPI_TYPE" = "3+" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + fi + if [ "$RPIOS_TYPE" = "stretch" ]; then + FOLDER="Raspberry Pi GCC Native-Compiler Toolchains/Stretch/GCC $GCC_VERSION" + if [ "$RPI_TYPE" = "0-1" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + if [ "$RPI_TYPE" = "2-3" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + if [ "$RPI_TYPE" = "3+" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi + fi + fi +fi \ No newline at end of file From ed035bba11ecd876873a9a8d2866493254c51e73 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 00:20:21 +0530 Subject: [PATCH 03/51] Script Bugs Patched :bug: - wget silent output - ftp->http while downloading dependencies --- build-scripts/RTBuilder_32b | 18 ++++++++++-------- build-scripts/RTBuilder_64b | 14 ++++++++------ patches/curl_stfp_patcher | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index a1531cc..d58297c 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -148,48 +148,50 @@ mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit if [ ! -d "linux" ]; then - wget https://github.com/$(wget https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) + wget https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) tar xf raspberrypi*.tar.gz mv linux* linux rm ./*.tar.* cd $OLDPWD fi if [ ! -d "gcc-$GCCBASE_VERSION" ]; then - if [ ! -f "gcc-$GCCBASE_VERSION.tar.gz" ]; then wget https://ftpmirror.gnu.org/gcc/gcc-$GCCBASE_VERSION/gcc-$GCCBASE_VERSION.tar.gz; fi + if [ ! -f "gcc-$GCCBASE_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCCBASE_VERSION/gcc-$GCCBASE_VERSION.tar.gz; fi tar xf gcc-$GCCBASE_VERSION.tar.gz cd gcc-$GCCBASE_VERSION || exit - mkdir -p build + mkdir -p build + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites rm ./*.tar.* if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch cd $OLDPWD fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then - if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then wget https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; fi + if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then wget -q https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; fi tar xf binutils-$BINUTILS_VERSION.tar.bz2 cd binutils-$BINUTILS_VERSION || exit mkdir -p build cd $OLDPWD fi if [ ! -d "glibc-$GLIBC_VERSION" ]; then - if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then wget https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; fi + if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then wget -q https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; fi tar xf glibc-$GLIBC_VERSION.tar.bz2 cd glibc-$GLIBC_VERSION || exit mkdir -p build cd $OLDPWD fi if [ ! -d "gdb-$GDB_VERSION" ]; then - if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then wget https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; fi + if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then wget -q https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; fi tar xf gdb-$GDB_VERSION.tar.xz cd gdb-$GDB_VERSION || exit mkdir -p build cd $OLDPWD fi if [ ! -d "gcc-$GCC_VERSION" ]; then - if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; fi + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; fi tar xf gcc-$GCC_VERSION.tar.gz cd gcc-$GCC_VERSION || exit - mkdir -p build + mkdir -p build + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites rm ./*.tar.* cd $OLDPWD diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index f1fd0ec..5fddb94 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -133,18 +133,19 @@ mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit #download binaries if not found if [ ! -d "linux" ]; then - wget https://github.com/$(wget https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) + wget https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) tar xf raspberrypi*.tar.gz mv linux* linux rm ./*.tar.* fi if [ ! -d "gcc-$GCCBASE_VERSION" ]; then if [ ! -f "gcc-$GCCBASE_VERSION.tar.gz" ]; then - wget https://ftpmirror.gnu.org/gcc/gcc-$GCCBASE_VERSION/gcc-$GCCBASE_VERSION.tar.gz; + wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCCBASE_VERSION/gcc-$GCCBASE_VERSION.tar.gz; fi tar xf gcc-$GCCBASE_VERSION.tar.gz cd gcc-$GCCBASE_VERSION || exit mkdir -p build + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites rm ./*.tar.* if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch @@ -152,7 +153,7 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then - wget https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; + wget -q https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; fi tar xf binutils-$BINUTILS_VERSION.tar.bz2 cd binutils-$BINUTILS_VERSION || exit @@ -161,7 +162,7 @@ if [ ! -d "binutils-$BINUTILS_VERSION" ]; then fi if [ ! -d "glibc-$GLIBC_VERSION" ]; then if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then - wget https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; + wget -q https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; fi tar xf glibc-$GLIBC_VERSION.tar.bz2 cd glibc-$GLIBC_VERSION || exit @@ -170,7 +171,7 @@ if [ ! -d "glibc-$GLIBC_VERSION" ]; then fi if [ ! -d "gdb-$GDB_VERSION" ]; then if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then - wget https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; + wget -q https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; fi tar xf gdb-$GDB_VERSION.tar.xz cd gdb-$GDB_VERSION || exit @@ -179,11 +180,12 @@ if [ ! -d "gdb-$GDB_VERSION" ]; then fi if [ ! -d "gcc-$GCC_VERSION" ]; then if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then - wget https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; + wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; fi tar xf gcc-$GCC_VERSION.tar.gz cd gcc-$GCC_VERSION || exit mkdir -p build + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites rm ./*.tar.* cd $OLDPWD diff --git a/patches/curl_stfp_patcher b/patches/curl_stfp_patcher index c42be26..d5a7422 100644 --- a/patches/curl_stfp_patcher +++ b/patches/curl_stfp_patcher @@ -33,7 +33,7 @@ echo "" echo "" sudo apt-get purge curl -y; -wget https://curl.haxx.se/download/curl-"$CURL_VERSION".tar.gz +wget -q https://curl.haxx.se/download/curl-"$CURL_VERSION".tar.gz tar xf curl-7.68.0.tar.gz cd curl-7.68.0 ./configure --with-libssh2 From 5050bdfc7d54ce8873d0b8376e505389c8612d83 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 00:59:44 +0530 Subject: [PATCH 04/51] More Fixes to prevent exit --- build-scripts/RTBuilder_32b | 35 ++++++++++++++++++----------------- build-scripts/RTBuilder_64b | 35 ++++++++++++++++++----------------- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index d58297c..84f52ff 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -151,7 +151,7 @@ if [ ! -d "linux" ]; then wget https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) tar xf raspberrypi*.tar.gz mv linux* linux - rm ./*.tar.* + if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* cd $OLDPWD fi if [ ! -d "gcc-$GCCBASE_VERSION" ]; then @@ -161,7 +161,7 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then mkdir -p build sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites - rm ./*.tar.* + if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch cd $OLDPWD fi @@ -193,7 +193,7 @@ if [ ! -d "gcc-$GCC_VERSION" ]; then mkdir -p build sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites - rm ./*.tar.* + if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* cd $OLDPWD fi @@ -212,21 +212,21 @@ mkdir -p "$SYSROOTDIR"/usr/lib echo "Building binutils..." -rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib make -j$(nproc) make install DESTDIR="$INSTALLDIR" -rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* fi echo "Building Cross GCC $GCCBASE_VERSION Binaries..." -rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* fi cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib make -j$(nproc) all-gcc make install-gcc DESTDIR="$INSTALLDIR" -rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" @@ -241,37 +241,37 @@ cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit make -j$(nproc) make install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit -rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* fi make -j$(nproc) make install DESTDIR="$INSTALLDIR" -rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* fi if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit - rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib make -j$(nproc) make install DESTDIR="$INSTALLDIR" - rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi echo "Building GCC Native GCC $GCC_VERSION Binaries..." mkdir -p "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit - rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib --program-suffix=-$GCC_VERSION make -j$(nproc) make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/lib/gcc/$TARGET/$GCC_VERSION/include-fixed/limits.h echo "Building Native GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit - rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --program-suffix=-$GCC_VERSION make -j$(nproc) make install DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi echo "Done Building Native GDB Binaries..." mv "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" @@ -287,11 +287,11 @@ cat gcc/limitx.h gcc/glimits.h gcc/limity.h > $(dirname $($TARGET-gcc -print-lib echo "Building Cross GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit -rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* #cleanup +if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi #cleanup ../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard make -j$(nproc) make install DESTDIR="$INSTALLDIR" -rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* #cleanup +if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi #cleanup echo "Done Building Cross GDB Binaries..." mv "$BUILDDIR"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" @@ -299,6 +299,7 @@ cd "$HOME" || exit #compress with maximum possible compression level. env GZIP=-9 tar cvzf cross-gcc-$GCC_VERSION-pi_"$RPI_TYPE".tar.gz cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION echo "Done Building Cross GCC $GCC_VERSION Binaries..." +rm -rf "$HOME"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION #clean path PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index 5fddb94..1e3096c 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -136,7 +136,7 @@ if [ ! -d "linux" ]; then wget https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) tar xf raspberrypi*.tar.gz mv linux* linux - rm ./*.tar.* + if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* fi if [ ! -d "gcc-$GCCBASE_VERSION" ]; then if [ ! -f "gcc-$GCCBASE_VERSION.tar.gz" ]; then @@ -147,7 +147,7 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then mkdir -p build sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites - rm ./*.tar.* + if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch cd $OLDPWD fi @@ -187,7 +187,7 @@ if [ ! -d "gcc-$GCC_VERSION" ]; then mkdir -p build sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites - rm ./*.tar.* + if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* cd $OLDPWD fi @@ -206,21 +206,21 @@ mkdir -p "$SYSROOTDIR"/usr/lib echo "Building binutils..." -rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --disable-multilib make -j$(nproc) make install DESTDIR="$INSTALLDIR" -rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* fi echo "Building Cross GCC $GCCBASE_VERSION Binaries..." -rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* fi cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib make -j$(nproc) all-gcc make install-gcc DESTDIR="$INSTALLDIR" -rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" @@ -235,37 +235,37 @@ cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit make -j$(nproc) make install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit -rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* fi make -j$(nproc) make install DESTDIR="$INSTALLDIR" -rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* +if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* fi if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit - rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib make -j$(nproc) make install DESTDIR="$INSTALLDIR" - rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi echo "Building GCC Native GCC $GCC_VERSION Binaries..." mkdir -p "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit - rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --disable-multilib --program-suffix=-$GCC_VERSION make -j$(nproc) make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/lib/gcc/$TARGET/$GCC_VERSION/include-fixed/limits.h echo "Building Native GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit - rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --program-suffix=-$GCC_VERSION make -j$(nproc) make install DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* + if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi echo "Done Building Native GDB Binaries..." mv "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" @@ -281,11 +281,11 @@ cat gcc/limitx.h gcc/glimits.h gcc/limity.h > $(dirname $($TARGET-gcc -print-lib echo "Building Cross GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit -rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* #cleanup +if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi ../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-float=hard make -j$(nproc) make install DESTDIR="$INSTALLDIR" -rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* #cleanup +if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi echo "Done Building Cross GDB Binaries..." mv "$BUILDDIR"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" @@ -293,6 +293,7 @@ cd "$HOME" || exit #compress with maximum possible compression level. env GZIP=-9 tar cvzf cross-gcc-$GCC_VERSION-pi_"$FOLDER_VERSION".tar.gz cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION echo "Done Building Cross GCC $GCC_VERSION Binaries..." +rm -rf "$HOME"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION #clean path PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file From 299142d9d1944c43ba1e6f77321198faf5a456f2 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 08:30:16 +0530 Subject: [PATCH 05/51] Scripts syntax Bugs smashed :bug: :no_entry: --- build-scripts/RTBuilder_32b | 88 ++++++++++++++++++------------------- build-scripts/RTBuilder_64b | 84 +++++++++++++++++------------------ patches/curl_stfp_patcher | 2 +- tools/SF_deployer | 28 ++++++------ 4 files changed, 101 insertions(+), 101 deletions(-) diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index 84f52ff..0d23390 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -85,7 +85,7 @@ else fi #collect dependencies versions from raspberry pi os -if [ "$RPIOS_TYPE" = "stretch"] || [ "$GCC_VERSION" /< "8.3.0" ]; then +if [ "$RPIOS_TYPE" = "stretch" ] || [ "$GCC_VERSION" \< "8.3.0" ]; then GCCBASE_VERSION=6.3.0 GLIBC_VERSION=2.24 BINUTILS_VERSION=2.28 @@ -148,11 +148,11 @@ mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit if [ ! -d "linux" ]; then - wget https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) + wget https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | grep -E '/.*/.*/.*.tar.gz' -o) tar xf raspberrypi*.tar.gz mv linux* linux - if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* - cd $OLDPWD + rm ./*.tar.* + cd "$OLDPWD" || exit fi if [ ! -d "gcc-$GCCBASE_VERSION" ]; then if [ ! -f "gcc-$GCCBASE_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCCBASE_VERSION/gcc-$GCCBASE_VERSION.tar.gz; fi @@ -161,40 +161,40 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then mkdir -p build sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites - if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* + rm ./*.tar.* if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch - cd $OLDPWD + cd "$OLDPWD" || exit fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then wget -q https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; fi tar xf binutils-$BINUTILS_VERSION.tar.bz2 cd binutils-$BINUTILS_VERSION || exit mkdir -p build - cd $OLDPWD + cd "$OLDPWD" || exit fi if [ ! -d "glibc-$GLIBC_VERSION" ]; then if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then wget -q https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; fi tar xf glibc-$GLIBC_VERSION.tar.bz2 cd glibc-$GLIBC_VERSION || exit mkdir -p build - cd $OLDPWD + cd "$OLDPWD" || exit fi if [ ! -d "gdb-$GDB_VERSION" ]; then if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then wget -q https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; fi tar xf gdb-$GDB_VERSION.tar.xz cd gdb-$GDB_VERSION || exit mkdir -p build - cd $OLDPWD + cd "$OLDPWD" || exit fi if [ ! -d "gcc-$GCC_VERSION" ]; then - if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; fi - tar xf gcc-$GCC_VERSION.tar.gz - cd gcc-$GCC_VERSION || exit + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-"$GCC_VERSION"/gcc-"$GCC_VERSION".tar.gz; fi + tar xf gcc-"$GCC_VERSION".tar.gz + cd gcc-"$GCC_VERSION" || exit mkdir -p build sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites - if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* - cd $OLDPWD + rm ./*.tar.* + cd "$OLDPWD" || exit fi @@ -212,21 +212,21 @@ mkdir -p "$SYSROOTDIR"/usr/lib echo "Building binutils..." -if ! [ -z "$(ls -A $DOWNLOADDIR/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib make -j$(nproc) make install DESTDIR="$INSTALLDIR" -if ! [ -z "$(ls -A $DOWNLOADDIR/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi echo "Building Cross GCC $GCCBASE_VERSION Binaries..." -if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib make -j$(nproc) all-gcc make install-gcc DESTDIR="$INSTALLDIR" -if ! [ -z "$(ls -A $DOWNLOADDIR/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" @@ -241,65 +241,65 @@ cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit make -j$(nproc) make install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit -if ! [ -z "$(ls -A $DOWNLOADDIR/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi make -j$(nproc) make install DESTDIR="$INSTALLDIR" -if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/*; fi if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then - cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit - if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib make -j$(nproc) make install DESTDIR="$INSTALLDIR" - if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi echo "Building GCC Native GCC $GCC_VERSION Binaries..." - mkdir -p "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit - if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi - ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib --program-suffix=-$GCC_VERSION + mkdir -p "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib --program-suffix=-"$GCC_VERSION" make -j$(nproc) - make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi - cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit - cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/lib/gcc/$TARGET/$GCC_VERSION/include-fixed/limits.h + make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit + cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h echo "Building Native GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit - if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi - ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --program-suffix=-$GCC_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --program-suffix=-"$GCC_VERSION" make -j$(nproc) - make install DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi + make install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi echo "Done Building Native GDB Binaries..." - mv "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" + mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. - env GZIP=-9 tar cvzf native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - rm -rf "$HOME"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION echo "Done Building Native GCC $GCC_VERSION Binaries..." fi -cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit +cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit cat gcc/limitx.h gcc/glimits.h gcc/limity.h > $(dirname $($TARGET-gcc -print-libgcc-file-name))/include-fixed/limits.h echo "Building Cross GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit -if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi #cleanup +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi #cleanup ../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard make -j$(nproc) make install DESTDIR="$INSTALLDIR" -if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi #cleanup +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi #cleanup echo "Done Building Cross GDB Binaries..." -mv "$BUILDDIR"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" +mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf cross-gcc-$GCC_VERSION-pi_"$RPI_TYPE".tar.gz cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION echo "Done Building Cross GCC $GCC_VERSION Binaries..." -rm -rf "$HOME"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION #clean path PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index 1e3096c..1f265dc 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -63,7 +63,7 @@ fi #collect dependencies versions from raspberry pi os -if [ "$OS_TYPE" = "1" ] || [ "$GCC_VERSION" /< "8.3.0" ] ; then +if [ "$OS_TYPE" = "1" ] || [ "$GCC_VERSION" \< "8.3.0" ] ; then GCCBASE_VERSION=6.3.0 GLIBC_VERSION=2.24 BINUTILS_VERSION=2.28 @@ -136,7 +136,7 @@ if [ ! -d "linux" ]; then wget https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) tar xf raspberrypi*.tar.gz mv linux* linux - if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* + rm ./*.tar.* fi if [ ! -d "gcc-$GCCBASE_VERSION" ]; then if [ ! -f "gcc-$GCCBASE_VERSION.tar.gz" ]; then @@ -147,9 +147,9 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then mkdir -p build sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites - if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* + rm ./*.tar.* if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch - cd $OLDPWD + cd "$OLDPWD" || exit fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then @@ -158,7 +158,7 @@ if [ ! -d "binutils-$BINUTILS_VERSION" ]; then tar xf binutils-$BINUTILS_VERSION.tar.bz2 cd binutils-$BINUTILS_VERSION || exit mkdir -p build - cd $OLDPWD + cd "$OLDPWD" || exit fi if [ ! -d "glibc-$GLIBC_VERSION" ]; then if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then @@ -167,7 +167,7 @@ if [ ! -d "glibc-$GLIBC_VERSION" ]; then tar xf glibc-$GLIBC_VERSION.tar.bz2 cd glibc-$GLIBC_VERSION || exit mkdir -p build - cd $OLDPWD + cd "$OLDPWD" || exit fi if [ ! -d "gdb-$GDB_VERSION" ]; then if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then @@ -176,19 +176,19 @@ if [ ! -d "gdb-$GDB_VERSION" ]; then tar xf gdb-$GDB_VERSION.tar.xz cd gdb-$GDB_VERSION || exit mkdir -p build - cd $OLDPWD + cd "$OLDPWD" || exit fi if [ ! -d "gcc-$GCC_VERSION" ]; then if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then - wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; + wget -q https://ftpmirror.gnu.org/gcc/gcc-"$GCC_VERSION"/gcc-"$GCC_VERSION".tar.gz; fi - tar xf gcc-$GCC_VERSION.tar.gz - cd gcc-$GCC_VERSION || exit + tar xf gcc-"$GCC_VERSION".tar.gz + cd gcc-"$GCC_VERSION" || exit mkdir -p build sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites - if ! [ -z "$(ls -A /home/abhishek/new/t)" ]; then rm ./*.tar.* - cd $OLDPWD + rm ./*.tar.* + cd "$OLDPWD" || exit fi @@ -206,21 +206,21 @@ mkdir -p "$SYSROOTDIR"/usr/lib echo "Building binutils..." -if ! [ -z "$(ls -A $DOWNLOADDIR/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --disable-multilib make -j$(nproc) make install DESTDIR="$INSTALLDIR" -if ! [ -z "$(ls -A $DOWNLOADDIR/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi echo "Building Cross GCC $GCCBASE_VERSION Binaries..." -if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib make -j$(nproc) all-gcc make install-gcc DESTDIR="$INSTALLDIR" -if ! [ -z "$(ls -A $DOWNLOADDIR/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" @@ -235,65 +235,65 @@ cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit make -j$(nproc) make install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit -if ! [ -z "$(ls -A $DOWNLOADDIR/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi make -j$(nproc) make install DESTDIR="$INSTALLDIR" -if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/*; fi if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then - cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit - if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib make -j$(nproc) make install DESTDIR="$INSTALLDIR" - if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi echo "Building GCC Native GCC $GCC_VERSION Binaries..." - mkdir -p "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit - if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi - ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --disable-multilib --program-suffix=-$GCC_VERSION + mkdir -p "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --disable-multilib --program-suffix=-"$GCC_VERSION" make -j$(nproc) - make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - if ! [ -z "$(ls -A $DOWNLOADDIR/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/* fi - cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit - cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/lib/gcc/$TARGET/$GCC_VERSION/include-fixed/limits.h + make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit + cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h echo "Building Native GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit - if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi - ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --program-suffix=-$GCC_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --program-suffix=-"$GCC_VERSION" make -j$(nproc) - make install DESTDIR="$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi + make install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi echo "Done Building Native GDB Binaries..." - mv "$BUILDDIR"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" + mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. - env GZIP=-9 tar cvzf native-gcc-$GCC_VERSION-pi_$FOLDER_VERSION.tar.gz native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION - rm -rf "$HOME"/native-pi-gcc-$GCC_VERSION-$FOLDER_VERSION + env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_$FOLDER_VERSION.tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION echo "Done Building Native GCC $GCC_VERSION Binaries..." fi -cd "$DOWNLOADDIR"/gcc-$GCC_VERSION || exit +cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit cat gcc/limitx.h gcc/glimits.h gcc/limity.h > $(dirname $($TARGET-gcc -print-libgcc-file-name))/include-fixed/limits.h echo "Building Cross GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit -if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi ../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-float=hard make -j$(nproc) make install DESTDIR="$INSTALLDIR" -if ! [ -z "$(ls -A $DOWNLOADDIR/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/* fi +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi echo "Done Building Cross GDB Binaries..." -mv "$BUILDDIR"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION "$HOME" +mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf cross-gcc-$GCC_VERSION-pi_"$FOLDER_VERSION".tar.gz cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION echo "Done Building Cross GCC $GCC_VERSION Binaries..." -rm -rf "$HOME"/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION #clean path PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/patches/curl_stfp_patcher b/patches/curl_stfp_patcher index d5a7422..a15c15f 100644 --- a/patches/curl_stfp_patcher +++ b/patches/curl_stfp_patcher @@ -35,7 +35,7 @@ echo "" sudo apt-get purge curl -y; wget -q https://curl.haxx.se/download/curl-"$CURL_VERSION".tar.gz tar xf curl-7.68.0.tar.gz -cd curl-7.68.0 +cd curl-7.68.0 || exit ./configure --with-libssh2 make -j$(nproc) sudo make install diff --git a/tools/SF_deployer b/tools/SF_deployer index 34fe29e..751fcbd 100644 --- a/tools/SF_deployer +++ b/tools/SF_deployer @@ -39,30 +39,30 @@ echo "" if [ ! -f "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then if [ "$RPI_TYPE" = "64" ]; then FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains/Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains/GCC $GCC_VERSION" - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs else if [ "$RPIOS_TYPE" = "buster" ]; then FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Buster/GCC $GCC_VERSION" if [ "$RPI_TYPE" = "0-1" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi if [ "$RPI_TYPE" = "2-3" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi if [ "$RPI_TYPE" = "3+" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi fi if [ "$RPIOS_TYPE" = "stretch" ]; then FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Stretch/GCC $GCC_VERSION" if [ "$RPI_TYPE" = "0-1" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi if [ "$RPI_TYPE" = "2-3" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi if [ "$RPI_TYPE" = "3+" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi fi fi @@ -73,30 +73,30 @@ fi if [ ! -f "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then if [ "$RPI_TYPE" = "64" ]; then FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains/Raspberry Pi GCC 64-Bit Native-Compiler Toolchains/GCC $GCC_VERSION" - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs else if [ "$RPIOS_TYPE" = "buster" ]; then FOLDER="Raspberry Pi GCC Native-Compiler Toolchains/Buster/GCC $GCC_VERSION" if [ "$RPI_TYPE" = "0-1" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi if [ "$RPI_TYPE" = "2-3" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi if [ "$RPI_TYPE" = "3+" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi fi if [ "$RPIOS_TYPE" = "stretch" ]; then FOLDER="Raspberry Pi GCC Native-Compiler Toolchains/Stretch/GCC $GCC_VERSION" if [ "$RPI_TYPE" = "0-1" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi if [ "$RPI_TYPE" = "2-3" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi if [ "$RPI_TYPE" = "3+" ]; then - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u $USER_SFTP:$PASSWORD_SFTP -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi fi fi From 9ea3e67f97eefd72baafa67a8dd1c6efd41f9c77 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 08:39:49 +0530 Subject: [PATCH 06/51] Completely silent `wget` now. :zipper_mouth_face: --- build-scripts/RTBuilder_32b | 2 +- build-scripts/RTBuilder_64b | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index 0d23390..b18be47 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -148,7 +148,7 @@ mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit if [ ! -d "linux" ]; then - wget https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | grep -E '/.*/.*/.*.tar.gz' -o) + wget -q https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | grep -E '/.*/.*/.*.tar.gz' -o) tar xf raspberrypi*.tar.gz mv linux* linux rm ./*.tar.* diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index 1f265dc..6f8c473 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -133,7 +133,7 @@ mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit #download binaries if not found if [ ! -d "linux" ]; then - wget https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) + wget -q https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) tar xf raspberrypi*.tar.gz mv linux* linux rm ./*.tar.* From 8707584f7f2f24c849364bf111073d75a86cd669 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 08:51:25 +0530 Subject: [PATCH 07/51] Removed $OLDPWD --- build-scripts/RTBuilder_32b | 11 +++++------ build-scripts/RTBuilder_64b | 10 +++++----- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index b18be47..8fe51cd 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -152,7 +152,6 @@ if [ ! -d "linux" ]; then tar xf raspberrypi*.tar.gz mv linux* linux rm ./*.tar.* - cd "$OLDPWD" || exit fi if [ ! -d "gcc-$GCCBASE_VERSION" ]; then if [ ! -f "gcc-$GCCBASE_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCCBASE_VERSION/gcc-$GCCBASE_VERSION.tar.gz; fi @@ -163,28 +162,28 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then contrib/download_prerequisites rm ./*.tar.* if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then wget -q https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; fi tar xf binutils-$BINUTILS_VERSION.tar.bz2 cd binutils-$BINUTILS_VERSION || exit mkdir -p build - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi if [ ! -d "glibc-$GLIBC_VERSION" ]; then if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then wget -q https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; fi tar xf glibc-$GLIBC_VERSION.tar.bz2 cd glibc-$GLIBC_VERSION || exit mkdir -p build - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi if [ ! -d "gdb-$GDB_VERSION" ]; then if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then wget -q https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; fi tar xf gdb-$GDB_VERSION.tar.xz cd gdb-$GDB_VERSION || exit mkdir -p build - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi if [ ! -d "gcc-$GCC_VERSION" ]; then if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-"$GCC_VERSION"/gcc-"$GCC_VERSION".tar.gz; fi @@ -194,7 +193,7 @@ if [ ! -d "gcc-$GCC_VERSION" ]; then sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites rm ./*.tar.* - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index 6f8c473..2fc51e9 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -149,7 +149,7 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then contrib/download_prerequisites rm ./*.tar.* if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then @@ -158,7 +158,7 @@ if [ ! -d "binutils-$BINUTILS_VERSION" ]; then tar xf binutils-$BINUTILS_VERSION.tar.bz2 cd binutils-$BINUTILS_VERSION || exit mkdir -p build - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi if [ ! -d "glibc-$GLIBC_VERSION" ]; then if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then @@ -167,7 +167,7 @@ if [ ! -d "glibc-$GLIBC_VERSION" ]; then tar xf glibc-$GLIBC_VERSION.tar.bz2 cd glibc-$GLIBC_VERSION || exit mkdir -p build - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi if [ ! -d "gdb-$GDB_VERSION" ]; then if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then @@ -176,7 +176,7 @@ if [ ! -d "gdb-$GDB_VERSION" ]; then tar xf gdb-$GDB_VERSION.tar.xz cd gdb-$GDB_VERSION || exit mkdir -p build - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi if [ ! -d "gcc-$GCC_VERSION" ]; then if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then @@ -188,7 +188,7 @@ if [ ! -d "gcc-$GCC_VERSION" ]; then sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' contrib/download_prerequisites rm ./*.tar.* - cd "$OLDPWD" || exit + cd "$DOWNLOADDIR" || exit fi From 9a2575dc808745fe41f49aa9c56e27065d5ea416 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 09:02:41 +0530 Subject: [PATCH 08/51] Disabled Patcher & Deployer for PR jobs. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9ad086a..3789ff6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -101,8 +101,8 @@ script: - bash build-scripts/RTBuilder_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; - bash build-scripts/RTBuilder_64b -g $GCC_VERSION; after_success: -- bash patches/curl_stfp_patcher; -- bash tools/SF_deployer; +- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash patches/curl_stfp_patcher; fi +- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash tools/SF_deployer; fi cache: - ccache: true branches: From 851042305fcd5e661656e956e24188bc6b206a3e Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 10:10:52 +0530 Subject: [PATCH 09/51] Quiet `make` and `apt` => minimize logs --- .travis.yml | 8 +++--- build-scripts/RTBuilder_32b | 54 ++++++++++++++++++------------------ build-scripts/RTBuilder_64b | 55 +++++++++++++++++++------------------ 3 files changed, 60 insertions(+), 57 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3789ff6..9a61a6c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -81,9 +81,9 @@ matrix: - name: "GCC-6.3.0 64-bit" env: GCC_VERSION=6.3.0 RPI_TYPE=64 before_install: -- sudo apt-get update -q; - sudo apt-get install unzip wget dos2unix -y; - sudo apt-get install build-essential libssh2-1-dev openssl libcurl3 -y; +- sudo apt-get update -qq; + sudo apt-get install -qq unzip wget dos2unix -y; + sudo apt-get install -qq build-essential libssh2-1-dev openssl libcurl3 -y; dos2unix build-scripts/RTBuilder_32b; chmod +x build-scripts/RTBuilder_32b; dos2unix build-scripts/RTBuilder_64b; @@ -93,7 +93,7 @@ before_install: dos2unix tools/SF_deployer; chmod +x tools/SF_deployer; install: -- sudo apt-get -y install gcc g++ gperf flex texinfo gawk gfortran texinfo bison +- sudo apt-get -y install -qq gcc g++ gperf flex texinfo gawk gfortran texinfo bison libncurses-dev autoconf automake ccache tar figlet; script: - function keep_alive() { while true; do echo -en "\a"; sleep 60; done } diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index 8fe51cd..ec53757 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -129,11 +129,13 @@ if [ "$BUILDDIR" = "" ]; then exit 1 ; fi if [ "$LANGUAGES" = "" ]; then exit 1 ; fi -echo "" -echo "" -figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" -echo "" -echo "" +if [ "$CI" != "true" ]; then + echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" + echo "" + echo "" +fi #download binaries if not found echo "Downloading and Setting up build directories" @@ -206,7 +208,7 @@ unset LD_LIBRARY_PATH #patch echo "Building Kernel Headers..." cd "$DOWNLOADDIR"/linux || exit KERNEL=$KERNEL -make ARCH=arm INSTALL_HDR_PATH="$SYSROOTDIR"/usr headers_install +make -s ARCH=arm INSTALL_HDR_PATH="$SYSROOTDIR"/usr headers_install mkdir -p "$SYSROOTDIR"/usr/lib @@ -214,8 +216,8 @@ echo "Building binutils..." if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -j$(nproc) -make install DESTDIR="$INSTALLDIR" +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi @@ -223,34 +225,34 @@ echo "Building Cross GCC $GCCBASE_VERSION Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -j$(nproc) all-gcc -make install-gcc DESTDIR="$INSTALLDIR" +make -s -j$(nproc) all-gcc +make -s install-gcc DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes -make install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" -make -j$(nproc) csu/subdir_lib +make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" +make -s -j$(nproc) csu/subdir_lib install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit -make -j$(nproc) all-target-libgcc -make install-target-libgcc DESTDIR="$INSTALLDIR" +make -s -j$(nproc) all-target-libgcc +make -s install-target-libgcc DESTDIR="$INSTALLDIR" cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit -make -j$(nproc) -make install DESTDIR="$SYSROOTDIR" +make -s -j$(nproc) +make -s install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi -make -j$(nproc) -make install DESTDIR="$INSTALLDIR" +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/*; fi if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib - make -j$(nproc) - make install DESTDIR="$INSTALLDIR" + make -s -j$(nproc) + make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi echo "Building GCC Native GCC $GCC_VERSION Binaries..." @@ -258,8 +260,8 @@ if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib --program-suffix=-"$GCC_VERSION" - make -j$(nproc) - make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + make -s -j$(nproc) + make -s install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h @@ -268,8 +270,8 @@ if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --program-suffix=-"$GCC_VERSION" - make -j$(nproc) - make install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + make -s -j$(nproc) + make -s install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi echo "Done Building Native GDB Binaries..." @@ -288,8 +290,8 @@ echo "Building Cross GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi #cleanup ../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard -make -j$(nproc) -make install DESTDIR="$INSTALLDIR" +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi #cleanup echo "Done Building Cross GDB Binaries..." diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index 2fc51e9..e0055cd 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -112,12 +112,13 @@ if [ "$BUILDDIR" = "" ]; then exit 1 ; fi if [ "$LANGUAGES" = "" ]; then exit 1 ; fi - -echo "" -echo "" -figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" -echo "" -echo "" +if [ "$CI" != "true" ]; then + echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" + echo "" + echo "" +fi echo "Downloading and Setting up build directories" @@ -201,7 +202,7 @@ unset LD_LIBRARY_PATH #patch echo "Building Kernel Headers..." cd "$DOWNLOADDIR"/linux || exit KERNEL=$KERNEL -make ARCH=arm64 INSTALL_HDR_PATH="$SYSROOTDIR"/usr headers_install +make -s ARCH=arm64 INSTALL_HDR_PATH="$SYSROOTDIR"/usr headers_install mkdir -p "$SYSROOTDIR"/usr/lib @@ -209,8 +210,8 @@ echo "Building binutils..." if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --disable-multilib -make -j$(nproc) -make install DESTDIR="$INSTALLDIR" +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi @@ -218,34 +219,34 @@ echo "Building Cross GCC $GCCBASE_VERSION Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib -make -j$(nproc) all-gcc -make install-gcc DESTDIR="$INSTALLDIR" +make -s -j$(nproc) all-gcc +make -s install-gcc DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes -make install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" -make -j$(nproc) csu/subdir_lib +make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" +make -s -j$(nproc) csu/subdir_lib install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit -make -j$(nproc) all-target-libgcc -make install-target-libgcc DESTDIR="$INSTALLDIR" +make -s -j$(nproc) all-target-libgcc +make -s install-target-libgcc DESTDIR="$INSTALLDIR" cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit -make -j$(nproc) -make install DESTDIR="$SYSROOTDIR" +make -s -j$(nproc) +make -s install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi -make -j$(nproc) -make install DESTDIR="$INSTALLDIR" +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCCBASE_VERSION/build/*; fi if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib - make -j$(nproc) - make install DESTDIR="$INSTALLDIR" + make -s -j$(nproc) + make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi echo "Building GCC Native GCC $GCC_VERSION Binaries..." @@ -253,8 +254,8 @@ if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --disable-multilib --program-suffix=-"$GCC_VERSION" - make -j$(nproc) - make install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + make -s -j$(nproc) + make -s install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h @@ -263,8 +264,8 @@ if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --program-suffix=-"$GCC_VERSION" - make -j$(nproc) - make install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + make -s -j$(nproc) + make -s install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi echo "Done Building Native GDB Binaries..." @@ -283,8 +284,8 @@ echo "Building Cross GDB Binaries..." cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi ../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-float=hard -make -j$(nproc) -make install DESTDIR="$INSTALLDIR" +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi echo "Done Building Cross GDB Binaries..." From 95175834d0cd2b0149eabe2613a1d45e2abc2436 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 11:36:21 +0530 Subject: [PATCH 10/51] Major Bugfixes and updates --- .travis.yml | 43 ++++++++++++++++++++--------------------- build-scripts/README.md | 3 ++- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9a61a6c..a5a1bfc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,60 +24,60 @@ os: linux dist: bionic -language: minimal +language: cpp matrix: include: - name: "GCC-9.2.0 32-bit Buster Pi[0-1]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=0-1 - language: minimal + language: cpp - name: "GCC-9.2.0 32-bit Buster Pi[2-3]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=2-3 - language: minimal + language: cpp - name: "GCC-9.2.0 32-bit Buster Pi[3+]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=3+ - language: minimal + language: cpp - name: "GCC-9.2.0 32-bit Stretch Pi[0-1]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: minimal + language: cpp - name: "GCC-9.2.0 32-bit Stretch Pi[2-3]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: minimal + language: cpp - name: "GCC-9.2.0 32-bit Stretch Pi[3+]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: minimal + language: cpp - name: "GCC-8.3.0 32-bit Buster Pi[0-1]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 - language: minimal + language: cpp - name: "GCC-8.3.0 32-bit Buster Pi[2-3]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 - language: minimal + language: cpp - name: "GCC-8.3.0 32-bit Buster Pi[3+]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ - language: minimal + language: cpp - name: "GCC-8.3.0 32-bit Stretch Pi[0-1]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: minimal + language: cpp - name: "GCC-8.3.0 32-bit Stretch Pi[2-3]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: minimal + language: cpp - name: "GCC-8.3.0 32-bit Stretch Pi[3+]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: minimal + language: cpp - name: "GCC-6.3.0 32-bit Stretch Pi[0-1]" env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: minimal + language: cpp - name: "GCC-6.3.0 32-bit Stretch Pi[2-3]" env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: minimal + language: cpp - name: "GCC-6.3.0 32-bit Stretch Pi[3+]" env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: minimal + language: cpp - name: "GCC-9.2.0 64-bit" env: GCC_VERSION=9.2.0 RPI_TYPE=64 - language: minimal + language: cpp - name: "GCC-8.3.0 64-bit" env: GCC_VERSION=8.3.0 RPI_TYPE=64 - language: minimal + language: cpp - name: "GCC-6.3.0 64-bit" env: GCC_VERSION=6.3.0 RPI_TYPE=64 before_install: @@ -94,12 +94,11 @@ before_install: chmod +x tools/SF_deployer; install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo gawk gfortran texinfo bison - libncurses-dev autoconf automake ccache tar figlet; + libncurses-dev autoconf automake tar figlet; script: - function keep_alive() { while true; do echo -en "\a"; sleep 60; done } -- keep_alive & -- bash build-scripts/RTBuilder_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; -- bash build-scripts/RTBuilder_64b -g $GCC_VERSION; +- if [ "$RPI_TYPE" != "64" ]; keep_alive & bash build-scripts/RTBuilder_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if [ "$RPI_TYPE" = "64" ]; keep_alive & bash build-scripts/RTBuilder_64b -g $GCC_VERSION; fi after_success: - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash patches/curl_stfp_patcher; fi - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash tools/SF_deployer; fi diff --git a/build-scripts/README.md b/build-scripts/README.md index febfea1..970aade 100644 --- a/build-scripts/README.md +++ b/build-scripts/README.md @@ -111,6 +111,7 @@ _These are user-friendly scripts that auto-generates Compressed Cross & Native G ``` + * **Usage:** Just pass _targeted [GCC version](#supported-gcc-versions)_ to `-g` parameter, _targeted raspberry pi type_ to `-r` parameter, and _targeted raspberry pi OS type_ to `-o` parameter of this script: ***:warning: You cannot compile GCC version less than GCC 8.3.0 for Buster OS, otherwise script will automatically switch for Stretch OS.*** @@ -121,7 +122,7 @@ _These are user-friendly scripts that auto-generates Compressed Cross & Native G ``` - *This will take some time _(approximately 55mins)_, so grab a coffee :coffee:. On returning you will find `native-gcc-{GCC_VERSION}-pi_64.tar.gz` and `cross-gcc-{GCC_VERSION}-pi_{}.tar.gz` at your `$HOME` directory.* + *This will take some time _(approximately 55mins)_, so grab a coffee :coffee:. On returning you will find `native-gcc-{GCC_VERSION}-pi_{PI_TYPE}.tar.gz` and `cross-gcc-{GCC_VERSION}-pi_{PI_TYPE}.tar.gz` at your `$HOME` directory.* From fb2d9e0c883ea3d47065299b4e146545584265bf Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 11:40:36 +0530 Subject: [PATCH 11/51] Fixes --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index a5a1bfc..bff16fe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -96,9 +96,9 @@ install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo gawk gfortran texinfo bison libncurses-dev autoconf automake tar figlet; script: -- function keep_alive() { while true; do echo -en "\a"; sleep 60; done } -- if [ "$RPI_TYPE" != "64" ]; keep_alive & bash build-scripts/RTBuilder_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ]; keep_alive & bash build-scripts/RTBuilder_64b -g $GCC_VERSION; fi +- function keep_alive() { while true; do echo -en "\a"; sleep 60; done }; +- if [ "$RPI_TYPE" != "64" ]; then keep_alive & bash build-scripts/RTBuilder_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if [ "$RPI_TYPE" = "64" ]; then keep_alive & bash build-scripts/RTBuilder_64b -g $GCC_VERSION; fi after_success: - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash patches/curl_stfp_patcher; fi - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash tools/SF_deployer; fi From 66bd93cf72a5f612f43b8df26ac9b3278db3f423 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 12:09:08 +0530 Subject: [PATCH 12/51] Fixe: Revert to minimal language during build. --- .travis.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.travis.yml b/.travis.yml index bff16fe..d9e4c4d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,60 +24,60 @@ os: linux dist: bionic -language: cpp +language: minimal matrix: include: - name: "GCC-9.2.0 32-bit Buster Pi[0-1]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=0-1 - language: cpp + language: minimal - name: "GCC-9.2.0 32-bit Buster Pi[2-3]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=2-3 - language: cpp + language: minimal - name: "GCC-9.2.0 32-bit Buster Pi[3+]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=3+ - language: cpp + language: minimal - name: "GCC-9.2.0 32-bit Stretch Pi[0-1]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: cpp + language: minimal - name: "GCC-9.2.0 32-bit Stretch Pi[2-3]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: cpp + language: minimal - name: "GCC-9.2.0 32-bit Stretch Pi[3+]" env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: cpp + language: minimal - name: "GCC-8.3.0 32-bit Buster Pi[0-1]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 - language: cpp + language: minimal - name: "GCC-8.3.0 32-bit Buster Pi[2-3]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 - language: cpp + language: minimal - name: "GCC-8.3.0 32-bit Buster Pi[3+]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ - language: cpp + language: minimal - name: "GCC-8.3.0 32-bit Stretch Pi[0-1]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: cpp + language: minimal - name: "GCC-8.3.0 32-bit Stretch Pi[2-3]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: cpp + language: minimal - name: "GCC-8.3.0 32-bit Stretch Pi[3+]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: cpp + language: minimal - name: "GCC-6.3.0 32-bit Stretch Pi[0-1]" env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: cpp + language: minimal - name: "GCC-6.3.0 32-bit Stretch Pi[2-3]" env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: cpp + language: minimal - name: "GCC-6.3.0 32-bit Stretch Pi[3+]" env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: cpp + language: minimal - name: "GCC-9.2.0 64-bit" env: GCC_VERSION=9.2.0 RPI_TYPE=64 - language: cpp + language: minimal - name: "GCC-8.3.0 64-bit" env: GCC_VERSION=8.3.0 RPI_TYPE=64 - language: cpp + language: minimal - name: "GCC-6.3.0 64-bit" env: GCC_VERSION=6.3.0 RPI_TYPE=64 before_install: From 200888088bc692fc6e79c323456ec8ab149806d8 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 12:56:53 +0530 Subject: [PATCH 13/51] Patch for GCC 6.3.0 bugs --- build-scripts/RTBuilder_32b | 8 ++++++-- build-scripts/RTBuilder_64b | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index ec53757..26f29c5 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -160,10 +160,14 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then tar xf gcc-$GCCBASE_VERSION.tar.gz cd gcc-$GCCBASE_VERSION || exit mkdir -p build - sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' + if [ "$GCCBASE_VERSION" = "6.3.0" ]; then + sed -i contrib/download_prerequisites -e 's/ftp/http/'; + else + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/'; + fi contrib/download_prerequisites rm ./*.tar.* - if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch + if [ "$GCCBASE_VERSION" = "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch cd "$DOWNLOADDIR" || exit fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index e0055cd..421de3a 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -146,10 +146,14 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then tar xf gcc-$GCCBASE_VERSION.tar.gz cd gcc-$GCCBASE_VERSION || exit mkdir -p build - sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' + if [ "$GCCBASE_VERSION" = "6.3.0" ]; then + sed -i contrib/download_prerequisites -e 's/ftp/http/'; + else + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/'; + fi contrib/download_prerequisites rm ./*.tar.* - if [ "$GCCBASE_VERSION" == "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch + if [ "$GCCBASE_VERSION" = "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch cd "$DOWNLOADDIR" || exit fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then From 9c8a9eff86c2c64c13f7e314e70ab2bfb384eb25 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 13:08:06 +0530 Subject: [PATCH 14/51] CLI Timeout patch --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index d9e4c4d..04c0e89 100644 --- a/.travis.yml +++ b/.travis.yml @@ -96,9 +96,8 @@ install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo gawk gfortran texinfo bison libncurses-dev autoconf automake tar figlet; script: -- function keep_alive() { while true; do echo -en "\a"; sleep 60; done }; -- if [ "$RPI_TYPE" != "64" ]; then keep_alive & bash build-scripts/RTBuilder_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ]; then keep_alive & bash build-scripts/RTBuilder_64b -g $GCC_VERSION; fi +- if [ "$RPI_TYPE" != "64" ]; then ( while true; do echo '.'; sleep 60; done ) & bash build-scripts/RTBuilder_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if [ "$RPI_TYPE" = "64" ]; then ( while true; do echo '.'; sleep 60; done ) & bash build-scripts/RTBuilder_64b -g $GCC_VERSION; fi after_success: - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash patches/curl_stfp_patcher; fi - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash tools/SF_deployer; fi From c068b95b57f3fecb8ba940d423e4764950fbc852 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 18:00:35 +0530 Subject: [PATCH 15/51] Seperated and broke CLI build-scripts to cope Travis timeout limit - Removed build-scripts from CLI sue to timeout bug. - Added GCC base compiler 32/64 bit build scripts. - Minor tweaks. --- .travis.yml | 78 ++++-------- build-scripts/RTBuilder_32b | 5 + build-scripts/RTBuilder_64b | 5 + tools/CLIBB_32b | 243 ++++++++++++++++++++++++++++++++++++ tools/CLIBB_64b | 232 ++++++++++++++++++++++++++++++++++ tools/SF_deployer | 34 +++-- 6 files changed, 533 insertions(+), 64 deletions(-) create mode 100644 tools/CLIBB_32b create mode 100644 tools/CLIBB_64b diff --git a/.travis.yml b/.travis.yml index 04c0e89..8d5572f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,67 +27,37 @@ dist: bionic language: minimal matrix: include: - - name: "GCC-9.2.0 32-bit Buster Pi[0-1]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=0-1 + - name: "BASE GCC-8.3.0 32-bit Buster Pi[0-1]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 BASE=true language: minimal - - name: "GCC-9.2.0 32-bit Buster Pi[2-3]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=2-3 + - name: "BASE GCC-8.3.0 32-bit Buster Pi[2-3]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 BASE=true language: minimal - - name: "GCC-9.2.0 32-bit Buster Pi[3+]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=3+ + - name: "BASE GCC-8.3.0 32-bit Buster Pi[3+]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ BASE=true language: minimal - - name: "GCC-9.2.0 32-bit Stretch Pi[0-1]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 + - name: "BASE GCC-6.3.0 32-bit Stretch Pi[0-1]" + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 BASE=true language: minimal - - name: "GCC-9.2.0 32-bit Stretch Pi[2-3]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 + - name: "BASE GCC-6.3.0 32-bit Stretch Pi[2-3]" + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 BASE=true language: minimal - - name: "GCC-9.2.0 32-bit Stretch Pi[3+]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=3+ + - name: "BASE GCC-6.3.0 32-bit Stretch Pi[3+]" + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ BASE=true language: minimal - - name: "GCC-8.3.0 32-bit Buster Pi[0-1]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 + - name: "BASE GCC-8.3.0 64-bit" + env: GCC_VERSION=8.3.0 OS_TYPE=2 RPI_TYPE=64 BASE=true language: minimal - - name: "GCC-8.3.0 32-bit Buster Pi[2-3]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 - language: minimal - - name: "GCC-8.3.0 32-bit Buster Pi[3+]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ - language: minimal - - name: "GCC-8.3.0 32-bit Stretch Pi[0-1]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: minimal - - name: "GCC-8.3.0 32-bit Stretch Pi[2-3]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: minimal - - name: "GCC-8.3.0 32-bit Stretch Pi[3+]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: minimal - - name: "GCC-6.3.0 32-bit Stretch Pi[0-1]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: minimal - - name: "GCC-6.3.0 32-bit Stretch Pi[2-3]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: minimal - - name: "GCC-6.3.0 32-bit Stretch Pi[3+]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: minimal - - name: "GCC-9.2.0 64-bit" - env: GCC_VERSION=9.2.0 RPI_TYPE=64 - language: minimal - - name: "GCC-8.3.0 64-bit" - env: GCC_VERSION=8.3.0 RPI_TYPE=64 - language: minimal - - name: "GCC-6.3.0 64-bit" - env: GCC_VERSION=6.3.0 RPI_TYPE=64 + - name: "BASE GCC-6.3.0 64-bit" + env: GCC_VERSION=6.3.0 OS_TYPE=1 RPI_TYPE=64 BASE=true before_install: - sudo apt-get update -qq; sudo apt-get install -qq unzip wget dos2unix -y; sudo apt-get install -qq build-essential libssh2-1-dev openssl libcurl3 -y; - dos2unix build-scripts/RTBuilder_32b; - chmod +x build-scripts/RTBuilder_32b; - dos2unix build-scripts/RTBuilder_64b; - chmod +x build-scripts/RTBuilder_64b; + dos2unix tools/CLIBB_32b; + chmod +x tools/CLIBB_32b; + dos2unix tools/CLIBB_64b; + chmod +x tools/CLIBB_64b; dos2unix patches/curl_stfp_patcher; chmod +x patches/curl_stfp_patcher; dos2unix tools/SF_deployer; @@ -96,11 +66,11 @@ install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo gawk gfortran texinfo bison libncurses-dev autoconf automake tar figlet; script: -- if [ "$RPI_TYPE" != "64" ]; then ( while true; do echo '.'; sleep 60; done ) & bash build-scripts/RTBuilder_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ]; then ( while true; do echo '.'; sleep 60; done ) & bash build-scripts/RTBuilder_64b -g $GCC_VERSION; fi +- if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -t $GCC_VERSION; fi after_success: -- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash patches/curl_stfp_patcher; fi -- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash tools/SF_deployer; fi +- bash patches/curl_stfp_patcher; +- bash tools/SF_deployer; cache: - ccache: true branches: diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index 26f29c5..b8b1e1e 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -169,6 +169,7 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then rm ./*.tar.* if [ "$GCCBASE_VERSION" = "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then wget -q https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; fi @@ -176,6 +177,7 @@ if [ ! -d "binutils-$BINUTILS_VERSION" ]; then cd binutils-$BINUTILS_VERSION || exit mkdir -p build cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi if [ ! -d "glibc-$GLIBC_VERSION" ]; then if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then wget -q https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; fi @@ -183,6 +185,7 @@ if [ ! -d "glibc-$GLIBC_VERSION" ]; then cd glibc-$GLIBC_VERSION || exit mkdir -p build cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi if [ ! -d "gdb-$GDB_VERSION" ]; then if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then wget -q https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; fi @@ -190,6 +193,7 @@ if [ ! -d "gdb-$GDB_VERSION" ]; then cd gdb-$GDB_VERSION || exit mkdir -p build cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi if [ ! -d "gcc-$GCC_VERSION" ]; then if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-"$GCC_VERSION"/gcc-"$GCC_VERSION".tar.gz; fi @@ -200,6 +204,7 @@ if [ ! -d "gcc-$GCC_VERSION" ]; then contrib/download_prerequisites rm ./*.tar.* cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index 421de3a..eb01f09 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -155,6 +155,7 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then rm ./*.tar.* if [ "$GCCBASE_VERSION" = "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi if [ ! -d "binutils-$BINUTILS_VERSION" ]; then if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then @@ -164,6 +165,7 @@ if [ ! -d "binutils-$BINUTILS_VERSION" ]; then cd binutils-$BINUTILS_VERSION || exit mkdir -p build cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi if [ ! -d "glibc-$GLIBC_VERSION" ]; then if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then @@ -173,6 +175,7 @@ if [ ! -d "glibc-$GLIBC_VERSION" ]; then cd glibc-$GLIBC_VERSION || exit mkdir -p build cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi if [ ! -d "gdb-$GDB_VERSION" ]; then if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then @@ -182,6 +185,7 @@ if [ ! -d "gdb-$GDB_VERSION" ]; then cd gdb-$GDB_VERSION || exit mkdir -p build cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi if [ ! -d "gcc-$GCC_VERSION" ]; then if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then @@ -194,6 +198,7 @@ if [ ! -d "gcc-$GCC_VERSION" ]; then contrib/download_prerequisites rm ./*.tar.* cd "$DOWNLOADDIR" || exit + rm ./*.tar.* fi diff --git a/tools/CLIBB_32b b/tools/CLIBB_32b new file mode 100644 index 0000000..5f72332 --- /dev/null +++ b/tools/CLIBB_32b @@ -0,0 +1,243 @@ +#!/bin/bash + + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + + +# This script auto downloads, compiles, and compresses Cross & Native GCC ARM Toolchain binaries +# targeting Raspberry Pi 32-bit Stretch(Debian 9) and Buster(Debian 10) OSes only. + + + +helpfunction() +{ + #helper function that prints custom usage help menu + echo "" + echo "Usage: $0 -g [GCC version] -r [Target Pi type] -o [Target Pi OS type]" + echo -e "\t-g GCC base version?: (6.3.0|8.3.0)" + echo -e "\t-r What's yours Raspberry Pi type?: (0-1|2-3|3+)" + echo -e "\t-o What's yours Raspberry Pi OS type?: (stretch|buster)" + exit 1 # Exit script after printing help +} + + +#input arguments handler +while getopts "g:r:o:" opt +do + case "$opt" in + g ) GCC_VERSION="$OPTARG" ;; + r ) RPI_TYPE="$OPTARG" ;; + o ) RPIOS_TYPE="$OPTARG" ;; + ? ) helpfunction ;; #prints help function for invalid parameter + esac +done +#validates parameters and print usage helper function in case parameters are missing +if [ -z "$GCC_VERSION" ] || [ -z "$RPI_TYPE" ] || [ -z "$RPIOS_TYPE" ] +then + echo "Required parameters are missing!"; + helpfunction +fi + + + +#collect parameters from raspbery pi type +if [ "$RPI_TYPE" = "2-3" ]; then + FOLDER_VERSION=1 + KERNEL=kernel7 + ARCH=armv7-a + FPU=neon-vfpv4; +elif [ "$RPI_TYPE" = "3+" ]; then + FOLDER_VERSION=2 + KERNEL=kernel7 + ARCH=armv8-a + FPU=neon-fp-armv8 +elif [ "$RPI_TYPE" = "0-1" ]; then + FOLDER_VERSION=0 + KERNEL=kernel + ARCH=armv6 + FPU=vfp +else + echo "Invalid argument value: $RPI_TYPE" + exit +fi + +#collect dependencies versions from raspberry pi os +if [ "$RPIOS_TYPE" = "stretch" ]; then + GLIBC_VERSION=2.24 + BINUTILS_VERSION=2.28 +elif [ "$RPIOS_TYPE" = "buster" ]; then + GLIBC_VERSION=2.28 + BINUTILS_VERSION=2.31 +else + echo "Invalid argument value: $RPIOS_TYPE" + exit +fi + +#collect build directory if not defined +if [ "$BUILDDIR" = "" ]; then + #select temp directory as default + echo "Build directory is empty, using temp directory!" + BUILDDIR=$(dirname "$(mktemp tmp.XXXXXXXXXX -ut)") +fi + +#collect programming languages if not defined +if [ "$LANGUAGES" = "" ]; then + #select `c,c++,fortran` as default + echo "Building binaries for c,c++,fortran programming languages!" + LANGUAGES=c,c++,fortran +fi + +#pre-defined params +TARGET=arm-linux-gnueabihf +GDB_VERSION=8.3.1 + +#validate env variables +if ! [[ "$GCC_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi +if ! [[ "$GLIBC_VERSION" =~ ^(2.24|2.28)$ ]]; then exit 1 ; fi +if ! [[ "$BINUTILS_VERSION" =~ ^(2.28|2.31)$ ]]; then exit 1 ; fi +if ! [[ "$FOLDER_VERSION" =~ ^(0|1|2)$ ]]; then exit 1 ; fi +if ! [[ "$KERNEL" =~ ^(kernel|kernel7)$ ]]; then exit 1 ; fi +if ! [[ "$ARCH" =~ ^(armv6|armv7-a|armv8-a)$ ]]; then exit 1 ; fi +if ! [[ "$FPU" =~ ^(vfp|neon-vfpv4|neon-fp-armv8)$ ]]; then exit 1 ; fi +if [ "$BUILDDIR" = "" ]; then exit 1 ; fi +if [ "$LANGUAGES" = "" ]; then exit 1 ; fi + + +if [ "$CI" != "true" ]; then + echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" + echo "" + echo "" +fi + +#download binaries if not found +echo "Downloading and Setting up build directories" + +DOWNLOADDIR=$BUILDDIR/build_toolchains +INSTALLDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc + +mkdir -p "$DOWNLOADDIR" +mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" + +cd "$DOWNLOADDIR" || exit + +if [ ! -d "linux" ]; then + wget -q https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | grep -E '/.*/.*/.*.tar.gz' -o) + tar xf raspberrypi*.tar.gz + mv linux* linux + rm ./*.tar.* +fi +if [ ! -d "gcc-$GCC_VERSION" ]; then + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; fi + tar xf gcc-$GCC_VERSION.tar.gz + cd gcc-$GCC_VERSION || exit + mkdir -p build + if [ "$GCC_VERSION" = "6.3.0" ]; then + sed -i contrib/download_prerequisites -e 's/ftp/http/'; + else + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/'; + fi + contrib/download_prerequisites + rm ./*.tar.* + if [ "$GCC_VERSION" = "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi +if [ ! -d "binutils-$BINUTILS_VERSION" ]; then + if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then wget -q https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; fi + tar xf binutils-$BINUTILS_VERSION.tar.bz2 + cd binutils-$BINUTILS_VERSION || exit + mkdir -p build + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi +if [ ! -d "glibc-$GLIBC_VERSION" ]; then + if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then wget -q https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; fi + tar xf glibc-$GLIBC_VERSION.tar.bz2 + cd glibc-$GLIBC_VERSION || exit + mkdir -p build + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi + + +echo "Setting up paths..." +PATH=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:$PATH +unset LD_LIBRARY_PATH #patch + + +echo "Building Kernel Headers..." +cd "$DOWNLOADDIR"/linux || exit +KERNEL=$KERNEL +make -s ARCH=arm INSTALL_HDR_PATH="$SYSROOTDIR"/usr headers_install +mkdir -p "$SYSROOTDIR"/usr/lib + + +echo "Building binutils..." +if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi +cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit +../configure --target=$TARGET --prefix= --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" +if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi + + +echo "Building Cross GCC $GCC_VERSION Binaries..." +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi +cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit +../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib +make -s -j$(nproc) all-gcc +make -s install-gcc DESTDIR="$INSTALLDIR" +if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi +cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit +../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes +make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" +make -s -j$(nproc) csu/subdir_lib +install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib +$TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so +touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h +cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit +make -s -j$(nproc) all-target-libgcc +make -s install-target-libgcc DESTDIR="$INSTALLDIR" +cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit +make -s -j$(nproc) +make -s install DESTDIR="$SYSROOTDIR" +cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit +if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi + +mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" +cd "$HOME" || exit +#compress with maximum possible compression level. +env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +echo "Done Building Cross GCC $GCC_VERSION Binaries..." +rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + +#clean path +PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/tools/CLIBB_64b b/tools/CLIBB_64b new file mode 100644 index 0000000..376df63 --- /dev/null +++ b/tools/CLIBB_64b @@ -0,0 +1,232 @@ +#!/bin/bash + + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + + +# This script aauto downloads, compiles, and compresses Cross & Native GCC ARM64 Toolchain +# binaries targeting any Raspberry Pi 64-bit (like Pi64) OSes. + + +helpfunction() +{ + #helper function that prints custom usage help menu + echo "" + echo "Usage: $0 -g [GCC version] -t [OS Type]" + echo -e "\t-g GCC base version?: (6.3.0|8.3.0)" + echo -e "\t-t What's yours Raspberry Pi OS type?: (1|2) [default:1]" + exit 1 # Exits script after printing help +} + + + +#input arguments handler +while getopts "g:t:" opt +do + case "$opt" in + g ) GCC_VERSION="$OPTARG" ;; + t ) OS_TYPE="$OPTARG" ;; + ? ) helpfunction ;; #prints help function for invalid parameter + esac +done +#validates parameters and print usage helper function in case parameters are missing +if [ -z "$GCC_VERSION" ]; then + echo "Required parameter is missing!"; + helpfunction +elif [ -z "$OS_TYPE" ]; then + OS_TYPE=1 +else + echo "Parameters configured!"; +fi + +#collect dependencies versions from raspberry pi os +if [ "$OS_TYPE" = "1" ]; then + GLIBC_VERSION=2.24 + BINUTILS_VERSION=2.28 +elif [ "$OS_TYPE" = "2" ]; then + GLIBC_VERSION=2.28 + BINUTILS_VERSION=2.31 +else + echo "Invalid argument value: $OS_TYPE" + exit +fi + + +#collect build directory if not defined +if [ "$BUILDDIR" = "" ]; then + #select temp directory + echo "Build directory is empty, using temp directory!" + BUILDDIR=$(dirname "$(mktemp tmp.XXXXXXXXXX -ut)") +fi + +#collect programming languages if not defined +if [ "$LANGUAGES" = "" ]; then + #select temp directory + echo "Building binaries for c,c++,fortran programming languages!" + LANGUAGES=c,c++,fortran +fi + + +#pre-defined params +FOLDER_VERSION=64 +KERNEL=kernel7 +ARCH=armv8-a+fp+simd +TARGET=aarch64-linux-gnu +GDB_VERSION=8.3.1 + + +#validate env variables +if ! [[ "$GCC_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi +if ! [[ "$GLIBC_VERSION" =~ ^(2.24|2.28)$ ]]; then exit 1 ; fi +if ! [[ "$BINUTILS_VERSION" =~ ^(2.28|2.31)$ ]]; then exit 1 ; fi +if [ "$KERNEL" != "kernel7" ]; then exit 1 ; fi +if [ "$ARCH" != "armv8-a+fp+simd" ]; then exit 1 ; fi +if [ "$FOLDER_VERSION" != "64" ]; then exit 1 ; fi +if [ "$BUILDDIR" = "" ]; then exit 1 ; fi +if [ "$LANGUAGES" = "" ]; then exit 1 ; fi + + +if [ "$CI" != "true" ]; then + echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" + echo "" + echo "" +fi + + +echo "Downloading and Setting up build directories" +#setup paths +DOWNLOADDIR=$BUILDDIR/build_toolchains +INSTALLDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc + +#make dirs +mkdir -p "$DOWNLOADDIR" +mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" + +cd "$DOWNLOADDIR" || exit +#download binaries if not found +if [ ! -d "linux" ]; then + wget -q https://github.com/$(wget -q https://github.com/raspberrypi/linux/releases/latest -O - | egrep '/.*/.*/.*.tar.gz' -o) + tar xf raspberrypi*.tar.gz + mv linux* linux + rm ./*.tar.* +fi +if [ ! -d "gcc-$GCC_VERSION" ]; then + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then + wget -q https://ftpmirror.gnu.org/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz; + fi + tar xf gcc-$GCC_VERSION.tar.gz + cd gcc-$GCC_VERSION || exit + mkdir -p build + if [ "$GCC_VERSION" = "6.3.0" ]; then + sed -i contrib/download_prerequisites -e 's/ftp/http/'; + else + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/'; + fi + contrib/download_prerequisites + rm ./*.tar.* + if [ "$GCC_VERSION" = "6.3.0" ]; then sed -i "1474s/.*/ || xloc.file[0] == '\\\0' || xloc.file[0] == '\\\xff'/" ./gcc/ubsan.c; fi #apply patch + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi +if [ ! -d "binutils-$BINUTILS_VERSION" ]; then + if [ ! -f "binutils-$BINUTILS_VERSION.tar.bz2" ]; then + wget -q https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.bz2; + fi + tar xf binutils-$BINUTILS_VERSION.tar.bz2 + cd binutils-$BINUTILS_VERSION || exit + mkdir -p build + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi +if [ ! -d "glibc-$GLIBC_VERSION" ]; then + if [ ! -f "glibc-$GLIBC_VERSION.tar.bz2" ]; then + wget -q https://ftpmirror.gnu.org/glibc/glibc-$GLIBC_VERSION.tar.bz2; + fi + tar xf glibc-$GLIBC_VERSION.tar.bz2 + cd glibc-$GLIBC_VERSION || exit + mkdir -p build + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi + +echo "Setting up paths..." +PATH=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:$PATH +unset LD_LIBRARY_PATH #patch + + +echo "Building Kernel Headers..." +cd "$DOWNLOADDIR"/linux || exit +KERNEL=$KERNEL +make -s ARCH=arm64 INSTALL_HDR_PATH="$SYSROOTDIR"/usr headers_install +mkdir -p "$SYSROOTDIR"/usr/lib + + +echo "Building binutils..." +if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi +cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit +../configure --target=$TARGET --prefix= --with-arch=$ARCH --disable-multilib +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" +if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi + + +echo "Building Cross GCC $GCC_VERSION Binaries..." +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi +cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit +../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib +make -s -j$(nproc) all-gcc +make -s install-gcc DESTDIR="$INSTALLDIR" +if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi +cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit +../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes +make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" +make -s -j$(nproc) csu/subdir_lib +install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib +$TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so +touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h +cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit +make -s -j$(nproc) all-target-libgcc +make -s install-target-libgcc DESTDIR="$INSTALLDIR" +cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit +make -s -j$(nproc) +make -s install DESTDIR="$SYSROOTDIR" +cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit +if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi + +mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" +cd "$HOME" || exit +#compress with maximum possible compression level. +env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +echo "Done Building Cross GCC $GCC_VERSION Binaries..." +rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + +#clean path +PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/tools/SF_deployer b/tools/SF_deployer index 751fcbd..4a247dd 100644 --- a/tools/SF_deployer +++ b/tools/SF_deployer @@ -38,30 +38,44 @@ echo "" #Deploy Cross-compiler Toolchain binaries if [ ! -f "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then if [ "$RPI_TYPE" = "64" ]; then - FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains/Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains/GCC $GCC_VERSION" - curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + if [ "$BASE" = "true" ]; then + FOLDER="CLI Base/64/GCC $GCC_VERSION" + else + FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains/Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains/GCC $GCC_VERSION" + fi + if [ "$FOLDER" != "" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs + fi else if [ "$RPIOS_TYPE" = "buster" ]; then - FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Buster/GCC $GCC_VERSION" - if [ "$RPI_TYPE" = "0-1" ]; then + if [ "$BASE" = "true" ]; then + FOLDER="CLI Base/Buster/GCC $GCC_VERSION" + else + FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Buster/GCC $GCC_VERSION" + fi + if [ "$RPI_TYPE" = "0-1" ] && [ "$FOLDER" != "" ]; then curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi - if [ "$RPI_TYPE" = "2-3" ]; then + if [ "$RPI_TYPE" = "2-3" ] && [ "$FOLDER" != "" ]; then curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi - if [ "$RPI_TYPE" = "3+" ]; then + if [ "$RPI_TYPE" = "3+" ] && [ "$FOLDER" != "" ]; then curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi fi if [ "$RPIOS_TYPE" = "stretch" ]; then - FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Stretch/GCC $GCC_VERSION" - if [ "$RPI_TYPE" = "0-1" ]; then + if [ "$BASE" = "true" ]; then + FOLDER="CLI Base/Stretch/GCC $GCC_VERSION" + else + FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Stretch/GCC $GCC_VERSION" + fi + if [ "$RPI_TYPE" = "0-1" ] && [ "$FOLDER" != "" ]; then curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 1, Zero/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi - if [ "$RPI_TYPE" = "2-3" ]; then + if [ "$RPI_TYPE" = "2-3" ] && [ "$FOLDER" != "" ]; then curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 2, 3/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi - if [ "$RPI_TYPE" = "3+" ]; then + if [ "$RPI_TYPE" = "3+" ] && [ "$FOLDER" != "" ]; then curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/Raspberry Pi 3A+, 3B+, 4/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs fi fi From 7e96f620ebae8fbe863f7c954f86a1abb55d4c90 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 19:34:02 +0530 Subject: [PATCH 16/51] Fixed typos --- .travis.yml | 2 +- tools/SF_deployer | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8d5572f..7f95a41 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,7 +67,7 @@ install: libncurses-dev autoconf automake tar figlet; script: - if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -t $GCC_VERSION; fi +- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi after_success: - bash patches/curl_stfp_patcher; - bash tools/SF_deployer; diff --git a/tools/SF_deployer b/tools/SF_deployer index 4a247dd..4d06128 100644 --- a/tools/SF_deployer +++ b/tools/SF_deployer @@ -36,7 +36,7 @@ echo "" #Deploy Cross-compiler Toolchain binaries -if [ ! -f "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then +if [ -f "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then if [ "$RPI_TYPE" = "64" ]; then if [ "$BASE" = "true" ]; then FOLDER="CLI Base/64/GCC $GCC_VERSION" @@ -84,7 +84,7 @@ fi #Deploy Native-compiler Toolchain binaries -if [ ! -f "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then +if [ -f "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then if [ "$RPI_TYPE" = "64" ]; then FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains/Raspberry Pi GCC 64-Bit Native-Compiler Toolchains/GCC $GCC_VERSION" curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/native-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" --ftp-create-dirs From 63b71334884c97b171d31e2f462745824ad26335 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 22:12:35 +0530 Subject: [PATCH 17/51] Fixes --- .travis.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7f95a41..cd4eb50 100644 --- a/.travis.yml +++ b/.travis.yml @@ -66,13 +66,12 @@ install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo gawk gfortran texinfo bison libncurses-dev autoconf automake tar figlet; script: -- if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi +- if "$RPI_TYPE" != "64" && [ "$BASE" = "true" ]; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if "$RPI_TYPE" = "64" && [ "$BASE" = "true" ]; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi after_success: -- bash patches/curl_stfp_patcher; -- bash tools/SF_deployer; -cache: -- ccache: true +- if [ "$BASE" = "true" ] || "$TRAVIS_PULL_REQUEST" = "false" ; then bash patches/curl_stfp_patcher; fi +- if [ "$BASE" = "true" ] || "$TRAVIS_PULL_REQUEST" = "false" ; then bash tools/SF_deployer; fi +cache: ccache branches: only: - master From adbd77b4775c3ef84469bd61fbc340a4a3a3e17e Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 22:20:51 +0530 Subject: [PATCH 18/51] Minor tweaks --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index cd4eb50..256c6d4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -66,11 +66,11 @@ install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo gawk gfortran texinfo bison libncurses-dev autoconf automake tar figlet; script: -- if "$RPI_TYPE" != "64" && [ "$BASE" = "true" ]; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if "$RPI_TYPE" = "64" && [ "$BASE" = "true" ]; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi +- if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi after_success: -- if [ "$BASE" = "true" ] || "$TRAVIS_PULL_REQUEST" = "false" ; then bash patches/curl_stfp_patcher; fi -- if [ "$BASE" = "true" ] || "$TRAVIS_PULL_REQUEST" = "false" ; then bash tools/SF_deployer; fi +- bash patches/curl_stfp_patcher; +- bash tools/SF_deployer; cache: ccache branches: only: From 9c77dc90456db727e6b2bdfb833e06090ceffcc0 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 30 Jan 2020 23:28:06 +0530 Subject: [PATCH 19/51] Fixes --- .travis.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 256c6d4..0bb9eef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,7 +53,9 @@ matrix: before_install: - sudo apt-get update -qq; sudo apt-get install -qq unzip wget dos2unix -y; - sudo apt-get install -qq build-essential libssh2-1-dev openssl libcurl3 -y; + sudo apt-get install -qq build-essential libssh2-1-dev openssl libcurl3 -y; + sudo apt-get install -qq ccache -y; + export PATH="/usr/lib/ccache:$PATH"; dos2unix tools/CLIBB_32b; chmod +x tools/CLIBB_32b; dos2unix tools/CLIBB_64b; @@ -63,7 +65,7 @@ before_install: dos2unix tools/SF_deployer; chmod +x tools/SF_deployer; install: -- sudo apt-get -y install -qq gcc g++ gperf flex texinfo gawk gfortran texinfo bison +- sudo apt-get -y install -qq gcc g++ gperf flex texinfo ccache gawk gfortran texinfo bison libncurses-dev autoconf automake tar figlet; script: - if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi @@ -71,7 +73,9 @@ script: after_success: - bash patches/curl_stfp_patcher; - bash tools/SF_deployer; -cache: ccache +cache: + directories: + - $HOME/.ccache branches: only: - master From ecd61410df00928494fd91eb5103c8cbc43a3804 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 31 Jan 2020 09:47:33 +0530 Subject: [PATCH 20/51] CCache Update --- .travis.yml | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0bb9eef..e85791f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,32 +30,63 @@ matrix: - name: "BASE GCC-8.3.0 32-bit Buster Pi[0-1]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 BASE=true language: minimal + cache: + ccache: true + directories: + - $HOME/.ccache - name: "BASE GCC-8.3.0 32-bit Buster Pi[2-3]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 BASE=true language: minimal + cache: + ccache: true + directories: + - $HOME/.ccache - name: "BASE GCC-8.3.0 32-bit Buster Pi[3+]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ BASE=true language: minimal + cache: + ccache: true + directories: + - $HOME/.ccache - name: "BASE GCC-6.3.0 32-bit Stretch Pi[0-1]" env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 BASE=true language: minimal + cache: + ccache: true + directories: + - $HOME/.ccache - name: "BASE GCC-6.3.0 32-bit Stretch Pi[2-3]" env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 BASE=true language: minimal + cache: + ccache: true + directories: + - $HOME/.ccache - name: "BASE GCC-6.3.0 32-bit Stretch Pi[3+]" env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ BASE=true language: minimal + cache: + ccache: true + directories: + - $HOME/.ccache - name: "BASE GCC-8.3.0 64-bit" env: GCC_VERSION=8.3.0 OS_TYPE=2 RPI_TYPE=64 BASE=true language: minimal + cache: + ccache: true + directories: + - $HOME/.ccache - name: "BASE GCC-6.3.0 64-bit" env: GCC_VERSION=6.3.0 OS_TYPE=1 RPI_TYPE=64 BASE=true + language: minimal + cache: + ccache: true + directories: + - $HOME/.ccache before_install: - sudo apt-get update -qq; sudo apt-get install -qq unzip wget dos2unix -y; sudo apt-get install -qq build-essential libssh2-1-dev openssl libcurl3 -y; - sudo apt-get install -qq ccache -y; - export PATH="/usr/lib/ccache:$PATH"; dos2unix tools/CLIBB_32b; chmod +x tools/CLIBB_32b; dos2unix tools/CLIBB_64b; @@ -64,6 +95,7 @@ before_install: chmod +x patches/curl_stfp_patcher; dos2unix tools/SF_deployer; chmod +x tools/SF_deployer; + echo $PATH; install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo ccache gawk gfortran texinfo bison libncurses-dev autoconf automake tar figlet; @@ -73,14 +105,18 @@ script: after_success: - bash patches/curl_stfp_patcher; - bash tools/SF_deployer; -cache: - directories: - - $HOME/.ccache branches: only: - master +cache: + ccache: true + directories: + - $HOME/.ccache env: global: - CURL_VERSION=7.68.0 + - CCACHE_TEMPDIR=/tmp/.ccache-temp + - CCACHE_COMPRESS=1 + - CCACHE_DIR=$HOME/.ccache - secure: MI97Ig3BiKpwjGL1Bwl/b9UuZ7ZKnz/IviyZnmGXVUNsovciQZRPg0DttZsc6upEFyLi0q8qc8ZKsWQsLA/0FoDRMiDzfpmiz8oy7C1MugY0AfViQP9PLCoUhltVFwEoFZS0MGR7eKmCedg9SVFIWBNwcGi7K8xqvSZlO6Adv+nxUBYU7QPUkqVVjxKslavDIcRlqDUtQfySkZcmFa/JzarwdYyusC1DuL/RTt8tUbp6MChvBFMZV/d+V69G9TRMkY32xKrSJ3GvQ/cuqN5eSi88e8K3PJP9oDfvcMCr+xF+cP7ztXrEMFmuiGvHAJf5TzeAGlfdqaBAYrNZ+mUuL/d50c7LJvF3PMmLLA0MUBVmyggFGb1l/UA7TARgTkV3VblE9vPFu9mDaQyOMGccFJ+4xwcsAxgI3nXNdmESz0M/bMUR47aIl2bGj/qennZZ6qW8GRId8iuceOYo570KGHdCnWAKKr/75Eds7p8D8u1QUdEjKyYO9EBbkgCJPw4Se+v5fp4Qej7bfBWtFgyadlPzxv3qYoq2Hq5VkmKLbY7cnbM2h+hrNjr8dnjNUIMzbrVbqlX08xKQ0qaa6e83Plm0K2nJ9AGrzIYkFj7Sdw1/XfGMm7inAIGOaPMzhy1V+UaSK/OuW77HW7fEgZwdMVOjSESPCU6uY8t0Bj1GeOE= - secure: DwYnMsvCduimQQjyOnOj0qTwf2KtILQ+OhFrnKSgnds3fGFoJZp2lMFW6OKHlLkUuvZKDC3O+wxWeRJSU/JCjl/rHduH+10K7U2HhRKW4V876AJ61m+m6u/6v+6YEIB0RBJxKf8p4RdYtCP9Bfqrd46zvZWO8LNb4JzjgvQ1NngqcggTyIS+CVVop0Xz4fty9FHGN82FM5ZU2VwLyQNuOo5bo8Om3uWTXSKw4YfC0CFL2McUmxZaTtuz0653VJsqGAe7IfDYc7HiL4UKBX+K7yPcvpG6MG4ejpzC2Cxovo1BJ1HrWOpYIx5EpDwwRT9slEpuV1opHI3hLWg/dlXrtFn9QJQYyDcV2q6UXKeGSFjFInu1GeqWxD8fv/vm8OcfNgceW+++3AO0C/ZfRimhgLJYc/R4B6In95H8Sqtm1gFmlmtH3aIHIESLaXkhT1eQ8z5gpO9xtNBEqk0M7mZ3uN9ygYGLxMKdhQK4an+jHQQSnumRi3++mY7ST9Ekqq+YmIvGpB93wLyWnt545GkawAxHOrwcHeTLkBRbDDCOUgt4VO0+ng+Tc3u/f9oWZWp8fBMG+PjF1HyZMEU7S7dPWD6KqScbdo7a/zKdU8RZFigb1NMREOlV3v2ku4SO6V/zhegkUOGCWeH1u8F5ddTj74HytK+2qtFc8NUSbCIVtvs= \ No newline at end of file From 61006629e77f84e984ca48542d281e621ce26171 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 31 Jan 2020 10:03:41 +0530 Subject: [PATCH 21/51] CCACHE Fixes --- .travis.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index e85791f..f04f7e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -95,10 +95,13 @@ before_install: chmod +x patches/curl_stfp_patcher; dos2unix tools/SF_deployer; chmod +x tools/SF_deployer; - echo $PATH; install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo ccache gawk gfortran texinfo bison libncurses-dev autoconf automake tar figlet; +- sudo /usr/sbin/update-ccache-symlinks; +- echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc; +- source ~/.bashrc && echo $PATH; +- ccache -s; script: - if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi - if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi @@ -108,10 +111,6 @@ after_success: branches: only: - master -cache: - ccache: true - directories: - - $HOME/.ccache env: global: - CURL_VERSION=7.68.0 From 92721bd5c967c47e2a8d1d9cbed487f8395b5390 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 31 Jan 2020 10:55:41 +0530 Subject: [PATCH 22/51] Fixes --- .travis.yml | 3 ++- tools/CLIBB_32b | 12 ++++++------ tools/CLIBB_64b | 12 ++++++------ 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index f04f7e5..7add42a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -101,7 +101,8 @@ install: - sudo /usr/sbin/update-ccache-symlinks; - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc; - source ~/.bashrc && echo $PATH; -- ccache -s; +- which gcc; +- which g++; script: - if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi - if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi diff --git a/tools/CLIBB_32b b/tools/CLIBB_32b index 5f72332..4678cac 100644 --- a/tools/CLIBB_32b +++ b/tools/CLIBB_32b @@ -201,7 +201,7 @@ echo "Building binutils..." if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -s -j$(nproc) +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi @@ -210,25 +210,25 @@ echo "Building Cross GCC $GCC_VERSION Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -s -j$(nproc) all-gcc +make -s -j$(getconf _NPROCESSORS_ONLN) all-gcc make -s install-gcc DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" -make -s -j$(nproc) csu/subdir_lib +make -s -j$(getconf _NPROCESSORS_ONLN) csu/subdir_lib install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit -make -s -j$(nproc) all-target-libgcc +make -s -j$(getconf _NPROCESSORS_ONLN) all-target-libgcc make -s install-target-libgcc DESTDIR="$INSTALLDIR" cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit -make -s -j$(nproc) +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi -make -s -j$(nproc) +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi diff --git a/tools/CLIBB_64b b/tools/CLIBB_64b index 376df63..44af0d3 100644 --- a/tools/CLIBB_64b +++ b/tools/CLIBB_64b @@ -190,7 +190,7 @@ echo "Building binutils..." if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --disable-multilib -make -s -j$(nproc) +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi @@ -199,25 +199,25 @@ echo "Building Cross GCC $GCC_VERSION Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib -make -s -j$(nproc) all-gcc +make -s -j$(getconf _NPROCESSORS_ONLN) all-gcc make -s install-gcc DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" -make -s -j$(nproc) csu/subdir_lib +make -s -j$(getconf _NPROCESSORS_ONLN) csu/subdir_lib install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit -make -s -j$(nproc) all-target-libgcc +make -s -j$(getconf _NPROCESSORS_ONLN) all-target-libgcc make -s install-target-libgcc DESTDIR="$INSTALLDIR" cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit -make -s -j$(nproc) +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi -make -s -j$(nproc) +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi From e9faf3faeefd127c94ee5c3c2646a42df04488f2 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 31 Jan 2020 11:47:32 +0530 Subject: [PATCH 23/51] Replaced GZIP with parallel PIGZ --- .travis.yml | 16 ++++++++-------- tools/CLIBB_32b | 2 +- tools/CLIBB_64b | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7add42a..36a04ed 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,56 +28,56 @@ language: minimal matrix: include: - name: "BASE GCC-8.3.0 32-bit Buster Pi[0-1]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 BASE=true + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 BASE=true CACHE_NAME=BASE1 language: minimal cache: ccache: true directories: - $HOME/.ccache - name: "BASE GCC-8.3.0 32-bit Buster Pi[2-3]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 BASE=true + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 BASE=true CACHE_NAME=BASE2 language: minimal cache: ccache: true directories: - $HOME/.ccache - name: "BASE GCC-8.3.0 32-bit Buster Pi[3+]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ BASE=true + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ BASE=true CACHE_NAME=BASE3 language: minimal cache: ccache: true directories: - $HOME/.ccache - name: "BASE GCC-6.3.0 32-bit Stretch Pi[0-1]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 BASE=true + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 BASE=true CACHE_NAME=BASE4 language: minimal cache: ccache: true directories: - $HOME/.ccache - name: "BASE GCC-6.3.0 32-bit Stretch Pi[2-3]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 BASE=true + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 BASE=true CACHE_NAME=BASE5 language: minimal cache: ccache: true directories: - $HOME/.ccache - name: "BASE GCC-6.3.0 32-bit Stretch Pi[3+]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ BASE=true + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ BASE=true CACHE_NAME=BASE6 language: minimal cache: ccache: true directories: - $HOME/.ccache - name: "BASE GCC-8.3.0 64-bit" - env: GCC_VERSION=8.3.0 OS_TYPE=2 RPI_TYPE=64 BASE=true + env: GCC_VERSION=8.3.0 OS_TYPE=2 RPI_TYPE=64 BASE=true CACHE_NAME=BASE7 language: minimal cache: ccache: true directories: - $HOME/.ccache - name: "BASE GCC-6.3.0 64-bit" - env: GCC_VERSION=6.3.0 OS_TYPE=1 RPI_TYPE=64 BASE=true + env: GCC_VERSION=6.3.0 OS_TYPE=1 RPI_TYPE=64 BASE=true CACHE_NAME=BASE8 language: minimal cache: ccache: true diff --git a/tools/CLIBB_32b b/tools/CLIBB_32b index 4678cac..cea0d3d 100644 --- a/tools/CLIBB_32b +++ b/tools/CLIBB_32b @@ -235,7 +235,7 @@ if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLO mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION diff --git a/tools/CLIBB_64b b/tools/CLIBB_64b index 44af0d3..ebd9c78 100644 --- a/tools/CLIBB_64b +++ b/tools/CLIBB_64b @@ -224,7 +224,7 @@ if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLO mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION From cfb5db5eb0c279ad6d8c34a6921066e72d363843 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 31 Jan 2020 12:33:43 +0530 Subject: [PATCH 24/51] added dependency --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 36a04ed..8eeb440 100644 --- a/.travis.yml +++ b/.travis.yml @@ -96,13 +96,11 @@ before_install: dos2unix tools/SF_deployer; chmod +x tools/SF_deployer; install: -- sudo apt-get -y install -qq gcc g++ gperf flex texinfo ccache gawk gfortran texinfo bison +- sudo apt-get -y install -qq gcc g++ gperf flex texinfo ccache pigz gawk gfortran texinfo bison libncurses-dev autoconf automake tar figlet; - sudo /usr/sbin/update-ccache-symlinks; - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc; - source ~/.bashrc && echo $PATH; -- which gcc; -- which g++; script: - if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi - if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi From 9488612ae0924d4f477e0ff52c2b1e408a383616 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 31 Jan 2020 13:29:17 +0530 Subject: [PATCH 25/51] Fixes --- tools/CLIBB_32b | 14 +++++++------- tools/CLIBB_64b | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tools/CLIBB_32b b/tools/CLIBB_32b index cea0d3d..115da1d 100644 --- a/tools/CLIBB_32b +++ b/tools/CLIBB_32b @@ -201,7 +201,7 @@ echo "Building binutils..." if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -s -j$(getconf _NPROCESSORS_ONLN) +make -s --j8 make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi @@ -210,32 +210,32 @@ echo "Building Cross GCC $GCC_VERSION Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -s -j$(getconf _NPROCESSORS_ONLN) all-gcc +make -s --j8 all-gcc make -s install-gcc DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" -make -s -j$(getconf _NPROCESSORS_ONLN) csu/subdir_lib +make -s --j8 csu/subdir_lib install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit -make -s -j$(getconf _NPROCESSORS_ONLN) all-target-libgcc +make -s --j8 all-target-libgcc make -s install-target-libgcc DESTDIR="$INSTALLDIR" cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit -make -s -j$(getconf _NPROCESSORS_ONLN) +make -s --j8 make -s install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi -make -s -j$(getconf _NPROCESSORS_ONLN) +make -s --j8 make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -4 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION diff --git a/tools/CLIBB_64b b/tools/CLIBB_64b index ebd9c78..d5b2245 100644 --- a/tools/CLIBB_64b +++ b/tools/CLIBB_64b @@ -190,7 +190,7 @@ echo "Building binutils..." if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --disable-multilib -make -s -j$(getconf _NPROCESSORS_ONLN) +make -s -j8 make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi @@ -199,32 +199,32 @@ echo "Building Cross GCC $GCC_VERSION Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib -make -s -j$(getconf _NPROCESSORS_ONLN) all-gcc +make -s -j8 all-gcc make -s install-gcc DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" -make -s -j$(getconf _NPROCESSORS_ONLN) csu/subdir_lib +make -s -j8 csu/subdir_lib install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit -make -s -j$(getconf _NPROCESSORS_ONLN) all-target-libgcc +make -s -j8 all-target-libgcc make -s install-target-libgcc DESTDIR="$INSTALLDIR" cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit -make -s -j$(getconf _NPROCESSORS_ONLN) +make -s -j8 make -s install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi -make -s -j$(getconf _NPROCESSORS_ONLN) +make -s -j8 make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -4 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION From 2b8fc0d56ce9e8ed4d547013a2d26b87a03ca618 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 31 Jan 2020 13:38:01 +0530 Subject: [PATCH 26/51] Fixes --- tools/CLIBB_32b | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/CLIBB_32b b/tools/CLIBB_32b index 115da1d..d72ff24 100644 --- a/tools/CLIBB_32b +++ b/tools/CLIBB_32b @@ -201,7 +201,7 @@ echo "Building binutils..." if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -s --j8 +make -s -j8 make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi @@ -210,25 +210,25 @@ echo "Building Cross GCC $GCC_VERSION Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -s --j8 all-gcc +make -s -j8 all-gcc make -s install-gcc DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" -make -s --j8 csu/subdir_lib +make -s -j8 csu/subdir_lib install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit -make -s --j8 all-target-libgcc +make -s -j8 all-target-libgcc make -s install-target-libgcc DESTDIR="$INSTALLDIR" cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit -make -s --j8 +make -s -j8 make -s install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi -make -s --j8 +make -s -j8 make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi From 1987b731ca8c60db6990a00ca3fca523722a538d Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 31 Jan 2020 14:47:25 +0530 Subject: [PATCH 27/51] Faster tweak --- patches/curl_stfp_patcher | 2 +- tools/CLIBB_32b | 2 +- tools/CLIBB_64b | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/patches/curl_stfp_patcher b/patches/curl_stfp_patcher index a15c15f..9e3a6a1 100644 --- a/patches/curl_stfp_patcher +++ b/patches/curl_stfp_patcher @@ -37,6 +37,6 @@ wget -q https://curl.haxx.se/download/curl-"$CURL_VERSION".tar.gz tar xf curl-7.68.0.tar.gz cd curl-7.68.0 || exit ./configure --with-libssh2 -make -j$(nproc) +make -j8 sudo make install sudo ldconfig \ No newline at end of file diff --git a/tools/CLIBB_32b b/tools/CLIBB_32b index d72ff24..1857d1d 100644 --- a/tools/CLIBB_32b +++ b/tools/CLIBB_32b @@ -235,7 +235,7 @@ if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLO mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -4 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -1 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION diff --git a/tools/CLIBB_64b b/tools/CLIBB_64b index d5b2245..67ef27e 100644 --- a/tools/CLIBB_64b +++ b/tools/CLIBB_64b @@ -224,9 +224,8 @@ if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLO mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -4 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -1 > cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." -rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION #clean path PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file From 8aeaa099c883a6907755774f689fe1865b1712b4 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 31 Jan 2020 16:14:24 +0530 Subject: [PATCH 28/51] Tweaks --- .travis.yml | 8 +++++--- patches/curl_stfp_patcher | 10 +++++----- tools/CLIBB_32b | 16 +++++++--------- tools/CLIBB_64b | 14 +++++++------- tools/SF_deployer | 10 +++++----- 5 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8eeb440..bd1c36d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -97,13 +97,15 @@ before_install: chmod +x tools/SF_deployer; install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo ccache pigz gawk gfortran texinfo bison - libncurses-dev autoconf automake tar figlet; + libncurses-dev autoconf automake; - sudo /usr/sbin/update-ccache-symlinks; - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc; - source ~/.bashrc && echo $PATH; script: -- if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then ( while true; do echo '.'; sleep 60; done ) & bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi +- while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & +- if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi +- kill %1 after_success: - bash patches/curl_stfp_patcher; - bash tools/SF_deployer; diff --git a/patches/curl_stfp_patcher b/patches/curl_stfp_patcher index 9e3a6a1..b47fcd5 100644 --- a/patches/curl_stfp_patcher +++ b/patches/curl_stfp_patcher @@ -26,11 +26,11 @@ #This script patches curl to enable native sftp support -echo "" -echo "" -figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Patcher" -echo "" -echo "" +# echo "" +# echo "" +# figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Patcher" +# echo "" +# echo "" sudo apt-get purge curl -y; wget -q https://curl.haxx.se/download/curl-"$CURL_VERSION".tar.gz diff --git a/tools/CLIBB_32b b/tools/CLIBB_32b index 1857d1d..69b8a31 100644 --- a/tools/CLIBB_32b +++ b/tools/CLIBB_32b @@ -201,7 +201,7 @@ echo "Building binutils..." if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -s -j8 +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi @@ -210,34 +210,32 @@ echo "Building Cross GCC $GCC_VERSION Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib -make -s -j8 all-gcc +make -s -j$(getconf _NPROCESSORS_ONLN) all-gcc make -s install-gcc DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" -make -s -j8 csu/subdir_lib +make -s -j$(getconf _NPROCESSORS_ONLN) csu/subdir_lib install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit -make -s -j8 all-target-libgcc +make -s -j$(getconf _NPROCESSORS_ONLN) all-target-libgcc make -s install-target-libgcc DESTDIR="$INSTALLDIR" cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit -make -s -j8 +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi -make -s -j8 +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$INSTALLDIR" -if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -1 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." -rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION #clean path PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/tools/CLIBB_64b b/tools/CLIBB_64b index 67ef27e..ed857a9 100644 --- a/tools/CLIBB_64b +++ b/tools/CLIBB_64b @@ -190,7 +190,7 @@ echo "Building binutils..." if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi cd "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build || exit ../configure --target=$TARGET --prefix= --with-arch=$ARCH --disable-multilib -make -s -j8 +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi @@ -199,32 +199,32 @@ echo "Building Cross GCC $GCC_VERSION Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib -make -s -j8 all-gcc +make -s -j$(getconf _NPROCESSORS_ONLN) all-gcc make -s install-gcc DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit ../configure --prefix=/usr --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-headers="$SYSROOTDIR"/usr/include --with-lib="$SYSROOTDIR"/usr/lib --disable-multilib libc_cv_forced_unwind=yes make -s install-bootstrap-headers=yes install-headers DESTDIR="$SYSROOTDIR" -make -s -j8 csu/subdir_lib +make -s -j$(getconf _NPROCESSORS_ONLN) csu/subdir_lib install csu/crt1.o csu/crti.o csu/crtn.o "$SYSROOTDIR"/usr/lib $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o "$SYSROOTDIR"/usr/lib/libc.so touch "$SYSROOTDIR"/usr/include/gnu/stubs.h "$SYSROOTDIR"/usr/include/bits/stdio_lim.h cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit -make -s -j8 all-target-libgcc +make -s -j$(getconf _NPROCESSORS_ONLN) all-target-libgcc make -s install-target-libgcc DESTDIR="$INSTALLDIR" cd "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build || exit -make -s -j8 +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$SYSROOTDIR" cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/glibc-$GLIBC_VERSION/build/*; fi -make -s -j8 +make -s -j$(getconf _NPROCESSORS_ONLN) make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -1 > cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." #clean path diff --git a/tools/SF_deployer b/tools/SF_deployer index 4d06128..4ad97c0 100644 --- a/tools/SF_deployer +++ b/tools/SF_deployer @@ -28,11 +28,11 @@ # This script auto-deploys CLI compiled Cross & Native GCC Toolchain binaries to Sourceforge secured server -echo "" -echo "" -figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Deployer" -echo "" -echo "" +# echo "" +# echo "" +# figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Deployer" +# echo "" +# echo "" #Deploy Cross-compiler Toolchain binaries From ab8b17294ca7c943f4a959e71bcc6ac415203eca Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sat, 1 Feb 2020 10:21:06 +0530 Subject: [PATCH 29/51] Various Updates --- .travis.yml | 59 +++++++++++++++++--------- {tools => build-scripts/CLI}/CLIBB_32b | 0 {tools => build-scripts/CLI}/CLIBB_64b | 0 build-scripts/RTBuilder_32b | 22 +++++----- build-scripts/RTBuilder_64b | 23 +++++----- patches/curl_stfp_patcher | 10 +---- {tools => utils}/README.md | 0 {tools => utils}/SF_deployer | 7 --- 8 files changed, 63 insertions(+), 58 deletions(-) rename {tools => build-scripts/CLI}/CLIBB_32b (100%) rename {tools => build-scripts/CLI}/CLIBB_64b (100%) rename {tools => utils}/README.md (100%) rename {tools => utils}/SF_deployer (98%) diff --git a/.travis.yml b/.travis.yml index bd1c36d..3fc7012 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,95 +23,114 @@ os: linux + dist: bionic + language: minimal + matrix: include: - name: "BASE GCC-8.3.0 32-bit Buster Pi[0-1]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 BASE=true CACHE_NAME=BASE1 + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 BASE=true language: minimal cache: ccache: true directories: - $HOME/.ccache + - name: "BASE GCC-8.3.0 32-bit Buster Pi[2-3]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 BASE=true CACHE_NAME=BASE2 + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 BASE=true language: minimal cache: ccache: true directories: - $HOME/.ccache + - name: "BASE GCC-8.3.0 32-bit Buster Pi[3+]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ BASE=true CACHE_NAME=BASE3 + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ BASE=true language: minimal cache: ccache: true directories: - $HOME/.ccache + - name: "BASE GCC-6.3.0 32-bit Stretch Pi[0-1]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 BASE=true CACHE_NAME=BASE4 + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 BASE=true language: minimal cache: ccache: true directories: - $HOME/.ccache + - name: "BASE GCC-6.3.0 32-bit Stretch Pi[2-3]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 BASE=true CACHE_NAME=BASE5 + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 BASE=true language: minimal cache: ccache: true directories: - $HOME/.ccache + - name: "BASE GCC-6.3.0 32-bit Stretch Pi[3+]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ BASE=true CACHE_NAME=BASE6 + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ BASE=true language: minimal cache: ccache: true directories: - $HOME/.ccache + - name: "BASE GCC-8.3.0 64-bit" - env: GCC_VERSION=8.3.0 OS_TYPE=2 RPI_TYPE=64 BASE=true CACHE_NAME=BASE7 + env: GCC_VERSION=8.3.0 OS_TYPE=2 RPI_TYPE=64 BASE=true language: minimal cache: ccache: true directories: - $HOME/.ccache + - name: "BASE GCC-6.3.0 64-bit" - env: GCC_VERSION=6.3.0 OS_TYPE=1 RPI_TYPE=64 BASE=true CACHE_NAME=BASE8 + env: GCC_VERSION=6.3.0 OS_TYPE=1 RPI_TYPE=64 BASE=true language: minimal cache: ccache: true directories: - $HOME/.ccache + before_install: - sudo apt-get update -qq; - sudo apt-get install -qq unzip wget dos2unix -y; - sudo apt-get install -qq build-essential libssh2-1-dev openssl libcurl3 -y; - dos2unix tools/CLIBB_32b; - chmod +x tools/CLIBB_32b; - dos2unix tools/CLIBB_64b; - chmod +x tools/CLIBB_64b; + sudo apt-get install -qq dos2unix -y; + dos2unix build-scripts/CLI/CLIBB_32b; + chmod +x build-scripts/CLI/CLIBB_32b; + dos2unix build-scripts/CLI/CLIBB_64b; + chmod +x build-scripts/CLI/CLIBB_64b; dos2unix patches/curl_stfp_patcher; chmod +x patches/curl_stfp_patcher; - dos2unix tools/SF_deployer; - chmod +x tools/SF_deployer; + dos2unix utils/SF_deployer; + chmod +x utils/SF_deployer; + install: - sudo apt-get -y install -qq gcc g++ gperf flex texinfo ccache pigz gawk gfortran texinfo bison - libncurses-dev autoconf automake; + libncurses-dev autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget; - sudo /usr/sbin/update-ccache-symlinks; - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc; - source ~/.bashrc && echo $PATH; + script: - while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & -- if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then bash tools/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] && [ "$BASE" = "true" ] ; then bash tools/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi +- if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] ; then bash build-scripts/CLI/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] ; then bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi - kill %1 + after_success: - bash patches/curl_stfp_patcher; -- bash tools/SF_deployer; +- bash utils/SF_deployer; + branches: only: - master + +cache: + directories: + - $HOME/.ccache + env: global: - CURL_VERSION=7.68.0 diff --git a/tools/CLIBB_32b b/build-scripts/CLI/CLIBB_32b similarity index 100% rename from tools/CLIBB_32b rename to build-scripts/CLI/CLIBB_32b diff --git a/tools/CLIBB_64b b/build-scripts/CLI/CLIBB_64b similarity index 100% rename from tools/CLIBB_64b rename to build-scripts/CLI/CLIBB_64b diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index b8b1e1e..c2fb099 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -35,10 +35,18 @@ helpfunction() { #helper function that prints custom usage help menu echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder 32-bit" + echo "" + figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" + echo "" + echo "" echo "Usage: $0 -g [GCC version] -r [Target Pi type] -o [Target Pi OS type]" echo -e "\t-g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)" - echo -e "\t-r What's yours Raspberry Pi type?: (0-1|2-3|3+)" - echo -e "\t-o What's yours Raspberry Pi OS type?: (stretch|buster)" + echo -e "\t-r What's yours Target Raspberry Pi type?: (0-1|2-3|3+)" + echo -e "\t-o What's yours Target Raspberry Pi OS type?: (stretch|buster)" + echo "" + echo "" exit 1 # Exit script after printing help } @@ -57,7 +65,7 @@ done #validates parameters and print usage helper function in case parameters are missing if [ -z "$GCC_VERSION" ] || [ -z "$RPI_TYPE" ] || [ -z "$RPIOS_TYPE" ] then - echo "Required parameters are missing!"; + echo "Error: Required parameters are missing!"; helpfunction fi @@ -129,14 +137,6 @@ if [ "$BUILDDIR" = "" ]; then exit 1 ; fi if [ "$LANGUAGES" = "" ]; then exit 1 ; fi -if [ "$CI" != "true" ]; then - echo "" - echo "" - figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" - echo "" - echo "" -fi - #download binaries if not found echo "Downloading and Setting up build directories" diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index eb01f09..1e086d9 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -34,9 +34,17 @@ helpfunction() { #helper function that prints custom usage help menu echo "" - echo "Usage: $0 -g [GCC version] -t [OS Type]" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder 64-bit" + echo "" + figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" + echo "" + echo "" + echo "Usage: $0 -g [GCC version] -t [Target OS type]" echo -e "\t-g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)" - echo -e "\t-t What's yours Raspberry Pi OS type?: (1|2) [default:1]" + echo -e "\t-t What's yours Target OS type?: (1|2) [default:1]" + echo "" + echo "" exit 1 # Exits script after printing help } @@ -53,7 +61,7 @@ do done #validates parameters and print usage helper function in case parameters are missing if [ -z "$GCC_VERSION" ]; then - echo "Required parameter is missing!"; + echo "Error: Required parameter is missing!"; helpfunction elif [ -z "$OS_TYPE" ]; then OS_TYPE=1 @@ -112,15 +120,6 @@ if [ "$BUILDDIR" = "" ]; then exit 1 ; fi if [ "$LANGUAGES" = "" ]; then exit 1 ; fi -if [ "$CI" != "true" ]; then - echo "" - echo "" - figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" - echo "" - echo "" -fi - - echo "Downloading and Setting up build directories" #setup paths DOWNLOADDIR=$BUILDDIR/build_toolchains diff --git a/patches/curl_stfp_patcher b/patches/curl_stfp_patcher index b47fcd5..eeb1628 100644 --- a/patches/curl_stfp_patcher +++ b/patches/curl_stfp_patcher @@ -26,17 +26,11 @@ #This script patches curl to enable native sftp support -# echo "" -# echo "" -# figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Patcher" -# echo "" -# echo "" - sudo apt-get purge curl -y; wget -q https://curl.haxx.se/download/curl-"$CURL_VERSION".tar.gz tar xf curl-7.68.0.tar.gz cd curl-7.68.0 || exit ./configure --with-libssh2 -make -j8 -sudo make install +make -s -j$(getconf _NPROCESSORS_ONLN) +sudo -s make install sudo ldconfig \ No newline at end of file diff --git a/tools/README.md b/utils/README.md similarity index 100% rename from tools/README.md rename to utils/README.md diff --git a/tools/SF_deployer b/utils/SF_deployer similarity index 98% rename from tools/SF_deployer rename to utils/SF_deployer index 4ad97c0..7496ebe 100644 --- a/tools/SF_deployer +++ b/utils/SF_deployer @@ -28,13 +28,6 @@ # This script auto-deploys CLI compiled Cross & Native GCC Toolchain binaries to Sourceforge secured server -# echo "" -# echo "" -# figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Deployer" -# echo "" -# echo "" - - #Deploy Cross-compiler Toolchain binaries if [ -f "$HOME/cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then if [ "$RPI_TYPE" = "64" ]; then From ae25c7adf5514a9b9b13c52dd271aab5872994d9 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sat, 1 Feb 2020 13:11:47 +0530 Subject: [PATCH 30/51] Fixes --- .travis.yml | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3fc7012..fa5bc0f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,7 +34,6 @@ matrix: env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 BASE=true language: minimal cache: - ccache: true directories: - $HOME/.ccache @@ -42,7 +41,6 @@ matrix: env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 BASE=true language: minimal cache: - ccache: true directories: - $HOME/.ccache @@ -50,7 +48,6 @@ matrix: env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ BASE=true language: minimal cache: - ccache: true directories: - $HOME/.ccache @@ -58,7 +55,6 @@ matrix: env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 BASE=true language: minimal cache: - ccache: true directories: - $HOME/.ccache @@ -66,7 +62,6 @@ matrix: env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 BASE=true language: minimal cache: - ccache: true directories: - $HOME/.ccache @@ -74,7 +69,6 @@ matrix: env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ BASE=true language: minimal cache: - ccache: true directories: - $HOME/.ccache @@ -82,7 +76,6 @@ matrix: env: GCC_VERSION=8.3.0 OS_TYPE=2 RPI_TYPE=64 BASE=true language: minimal cache: - ccache: true directories: - $HOME/.ccache @@ -90,7 +83,6 @@ matrix: env: GCC_VERSION=6.3.0 OS_TYPE=1 RPI_TYPE=64 BASE=true language: minimal cache: - ccache: true directories: - $HOME/.ccache @@ -107,11 +99,9 @@ before_install: chmod +x utils/SF_deployer; install: -- sudo apt-get -y install -qq gcc g++ gperf flex texinfo ccache pigz gawk gfortran texinfo bison +- sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget; -- sudo /usr/sbin/update-ccache-symlinks; -- echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc; -- source ~/.bashrc && echo $PATH; +- which gcc; script: - while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & @@ -134,7 +124,6 @@ cache: env: global: - CURL_VERSION=7.68.0 - - CCACHE_TEMPDIR=/tmp/.ccache-temp - CCACHE_COMPRESS=1 - CCACHE_DIR=$HOME/.ccache - secure: MI97Ig3BiKpwjGL1Bwl/b9UuZ7ZKnz/IviyZnmGXVUNsovciQZRPg0DttZsc6upEFyLi0q8qc8ZKsWQsLA/0FoDRMiDzfpmiz8oy7C1MugY0AfViQP9PLCoUhltVFwEoFZS0MGR7eKmCedg9SVFIWBNwcGi7K8xqvSZlO6Adv+nxUBYU7QPUkqVVjxKslavDIcRlqDUtQfySkZcmFa/JzarwdYyusC1DuL/RTt8tUbp6MChvBFMZV/d+V69G9TRMkY32xKrSJ3GvQ/cuqN5eSi88e8K3PJP9oDfvcMCr+xF+cP7ztXrEMFmuiGvHAJf5TzeAGlfdqaBAYrNZ+mUuL/d50c7LJvF3PMmLLA0MUBVmyggFGb1l/UA7TARgTkV3VblE9vPFu9mDaQyOMGccFJ+4xwcsAxgI3nXNdmESz0M/bMUR47aIl2bGj/qennZZ6qW8GRId8iuceOYo570KGHdCnWAKKr/75Eds7p8D8u1QUdEjKyYO9EBbkgCJPw4Se+v5fp4Qej7bfBWtFgyadlPzxv3qYoq2Hq5VkmKLbY7cnbM2h+hrNjr8dnjNUIMzbrVbqlX08xKQ0qaa6e83Plm0K2nJ9AGrzIYkFj7Sdw1/XfGMm7inAIGOaPMzhy1V+UaSK/OuW77HW7fEgZwdMVOjSESPCU6uY8t0Bj1GeOE= From 7dcaebf139ce51611fede4d9537c35e821358f72 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sat, 1 Feb 2020 14:55:13 +0530 Subject: [PATCH 31/51] Fixes --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fa5bc0f..e10afe3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -110,13 +110,15 @@ script: - kill %1 after_success: -- bash patches/curl_stfp_patcher; - bash utils/SF_deployer; branches: only: - master +before_cache: + - bash patches/curl_stfp_patcher; + cache: directories: - $HOME/.ccache From dc25d2a9bf2054c65f4e36df883e112d8a12da4f Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sat, 1 Feb 2020 22:07:33 +0530 Subject: [PATCH 32/51] Various Enhancement - added CLI build-scripts for automated builds. - updated travis yaml and disabled base build-scripts. --- .travis.yml | 144 +++++++++++++++++--- build-scripts/CLI/CLITB_32b | 264 ++++++++++++++++++++++++++++++++++++ build-scripts/CLI/CLITB_64b | 230 +++++++++++++++++++++++++++++++ 3 files changed, 620 insertions(+), 18 deletions(-) create mode 100644 build-scripts/CLI/CLITB_32b create mode 100644 build-scripts/CLI/CLITB_64b diff --git a/.travis.yml b/.travis.yml index e10afe3..4942d6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,6 +30,110 @@ language: minimal matrix: include: + - name: "GCC-9.2.0 32-bit Buster Pi[0-1]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=0-1 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-9.2.0 32-bit Buster Pi[2-3]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=2-3 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-9.2.0 32-bit Buster Pi[3+]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=3+ + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-9.2.0 32-bit Stretch Pi[0-1]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-9.2.0 32-bit Stretch Pi[2-3]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-9.2.0 32-bit Stretch Pi[3+]" + env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=3+ + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-8.3.0 32-bit Buster Pi[0-1]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-8.3.0 32-bit Buster Pi[2-3]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-8.3.0 32-bit Buster Pi[3+]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-8.3.0 32-bit Stretch Pi[0-1]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-8.3.0 32-bit Stretch Pi[2-3]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-8.3.0 32-bit Stretch Pi[3+]" + env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-6.3.0 32-bit Stretch Pi[0-1]" + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-6.3.0 32-bit Stretch Pi[2-3]" + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-6.3.0 32-bit Stretch Pi[3+]" + env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-9.2.0 64-bit" + env: GCC_VERSION=9.2.0 OS_TYPE=2 RPI_TYPE=64 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-8.3.0 64-bit" + env: GCC_VERSION=8.3.0 OS_TYPE=1 RPI_TYPE=64 + language: minimal + cache: + directories: + - $HOME/.ccache + - name: "GCC-6.3.0 64-bit" + env: GCC_VERSION=6.3.0 RPI_TYPE=64 - name: "BASE GCC-8.3.0 32-bit Buster Pi[0-1]" env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 BASE=true language: minimal @@ -87,30 +191,34 @@ matrix: - $HOME/.ccache before_install: -- sudo apt-get update -qq; - sudo apt-get install -qq dos2unix -y; - dos2unix build-scripts/CLI/CLIBB_32b; - chmod +x build-scripts/CLI/CLIBB_32b; - dos2unix build-scripts/CLI/CLIBB_64b; - chmod +x build-scripts/CLI/CLIBB_64b; - dos2unix patches/curl_stfp_patcher; - chmod +x patches/curl_stfp_patcher; - dos2unix utils/SF_deployer; - chmod +x utils/SF_deployer; + - sudo apt-get update -qq; + sudo apt-get install -qq dos2unix -y; + dos2unix build-scripts/CLI/CLIBB_32b; + chmod +x build-scripts/CLI/CLIBB_32b; + dos2unix build-scripts/CLI/CLIBB_64b; + chmod +x build-scripts/CLI/CLIBB_64b; + dos2unix build-scripts/CLI/CLITB_32b; + chmod +x build-scripts/CLI/CLITB_32b; + dos2unix build-scripts/CLI/CLITB_64b; + chmod +x build-scripts/CLI/CLITB_64b; + dos2unix patches/curl_stfp_patcher; + chmod +x patches/curl_stfp_patcher; + dos2unix utils/SF_deployer; + chmod +x utils/SF_deployer; install: -- sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison - libncurses-dev autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget; -- which gcc; + - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget; script: -- while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & -- if [ "$RPI_TYPE" != "64" ] && [ "$BASE" = "true" ] ; then bash build-scripts/CLI/CLIBB_32b -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ] && [ "$BASE" = "true" ] ; then bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi -- kill %1 + - while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & + - if [ "$RPI_TYPE" != "64" ] && ( "$BASE" = "true" & "$TRAVIS_PULL_REQUEST_BRANCH" = "base" ); then bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi + - if [ "$RPI_TYPE" = "64" ] && ( "$BASE" = "true" & "$TRAVIS_PULL_REQUEST_BRANCH" = "base" ); then bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi + - if [ "$RPI_TYPE" != "64" ]; then bash build-scripts/CLI/CLITB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi + - if [ "$RPI_TYPE" = "64" ]; then bash build-scripts/CLI/CLITB_64b -g $GCC_VERSION -t $OS_TYPE; fi + - kill %1 after_success: -- bash utils/SF_deployer; + - bash utils/SF_deployer; branches: only: diff --git a/build-scripts/CLI/CLITB_32b b/build-scripts/CLI/CLITB_32b new file mode 100644 index 0000000..052bba4 --- /dev/null +++ b/build-scripts/CLI/CLITB_32b @@ -0,0 +1,264 @@ +#!/bin/bash + + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + + +# This script auto downloads, compiles, and compresses Cross & Native GCC ARM Toolchain binaries +# targeting Raspberry Pi 32-bit Stretch(Debian 9) and Buster(Debian 10) OSes only. + + + +helpfunction() +{ + #helper function that prints custom usage help menu + echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder 32-bit" + echo "" + figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" + echo "" + echo "" + echo "Usage: $0 -g [GCC version] -r [Target Pi type] -o [Target Pi OS type]" + echo -e "\t-g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)" + echo -e "\t-r What's yours Target Raspberry Pi type?: (0-1|2-3|3+)" + echo -e "\t-o What's yours Target Raspberry Pi OS type?: (stretch|buster)" + echo "" + echo "" + exit 1 # Exit script after printing help +} + + + +#input arguments handler +while getopts "g:r:o:" opt +do + case "$opt" in + g ) GCC_VERSION="$OPTARG" ;; + r ) RPI_TYPE="$OPTARG" ;; + o ) RPIOS_TYPE="$OPTARG" ;; + ? ) helpfunction ;; #prints help function for invalid parameter + esac +done +#validates parameters and print usage helper function in case parameters are missing +if [ -z "$GCC_VERSION" ] || [ -z "$RPI_TYPE" ] || [ -z "$RPIOS_TYPE" ] +then + echo "Error: Required parameters are missing!"; + helpfunction +fi + + + +#collect parameters from raspbery pi type +if [ "$RPI_TYPE" = "2-3" ]; then + FOLDER_VERSION=1 + ARCH=armv7-a + FPU=neon-vfpv4; +elif [ "$RPI_TYPE" = "3+" ]; then + FOLDER_VERSION=2 + ARCH=armv8-a + FPU=neon-fp-armv8 +elif [ "$RPI_TYPE" = "0-1" ]; then + FOLDER_VERSION=0 + ARCH=armv6 + FPU=vfp +else + echo "Invalid argument value: $RPI_TYPE" + exit +fi + +#collect dependencies versions from raspberry pi os +if [ "$RPIOS_TYPE" = "stretch" ] || [ "$GCC_VERSION" \< "8.3.0" ]; then + GCCBASE_VERSION=6.3.0 +elif [ "$RPIOS_TYPE" = "buster" ]; then + GCCBASE_VERSION=8.3.0 +else + echo "Invalid argument value: $RPIOS_TYPE" + exit +fi + +#collect build directory if not defined +if [ "$BUILDDIR" = "" ]; then + #select temp directory as default + echo "Build directory is empty, using temp directory!" + BUILDDIR=$(dirname "$(mktemp tmp.XXXXXXXXXX -ut)") +fi + +#collect programming languages if not defined +if [ "$LANGUAGES" = "" ]; then + #select `c,c++,fortran` as default + echo "Building binaries for c,c++,fortran programming languages!" + LANGUAGES=c,c++,fortran +fi + +#pre-defined params +TARGET=arm-linux-gnueabihf +GDB_VERSION=8.3.1 + +#validate env variables +if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi +if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi +if ! [[ "$FOLDER_VERSION" =~ ^(0|1|2)$ ]]; then exit 1 ; fi +if ! [[ "$ARCH" =~ ^(armv6|armv7-a|armv8-a)$ ]]; then exit 1 ; fi +if ! [[ "$FPU" =~ ^(vfp|neon-vfpv4|neon-fp-armv8)$ ]]; then exit 1 ; fi +if [ "$BUILDDIR" = "" ]; then exit 1 ; fi +if [ "$LANGUAGES" = "" ]; then exit 1 ; fi + + +URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/CLI%20Base" + +if [ "$RPIOS_TYPE" = "buster" ]; then + URL="$URL/Buster/GCC%20$GCCBASE_VERSION" + if [ "$RPI_TYPE" = "0-1" ]; then + URL="$URL/Raspberry%20Pi%201%2C%20Zero/" + elif [ "$RPI_TYPE" = "2-3" ]; then + URL="$URL/Raspberry%20Pi%202%2C%203/" + elif [ "$RPI_TYPE" = "3+" ]; then + URL="$URL/Raspberry%20Pi%203A%2B%2C%203B%2B%2C%204/" + else + echo "Missing RPI_TYPE parameter!" + exit 1; + fi +elif [ "$RPIOS_TYPE" = "stretch" ]; then + URL="$URL/Stretch/GCC%20$GCCBASE_VERSION" + if [ "$RPI_TYPE" = "0-1" ]; then + URL="$URL/Raspberry%20Pi%201%2C%20Zero/" + elif [ "$RPI_TYPE" = "2-3" ]; then + URL="$URL/Raspberry%20Pi%202%2C%203/" + elif [ "$RPI_TYPE" = "3+" ]; then + URL="$URL/Raspberry%20Pi%203A%2B%2C%203B%2B%2C%204/" + else + echo "Missing RPI_TYPE parameter!" + exit 1; + fi +else + echo "Missing RPIOS_TYPE parameter!" + exit 1; +fi + + +#download binaries if not found +echo "Downloading and Setting up build directories" + +DOWNLOADDIR=$BUILDDIR/build_toolchains +INSTALLDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc + +mkdir -p "$DOWNLOADDIR" +mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" + +cd "$DOWNLOADDIR" || exit + +if [ ! -d "gcc-$GCCBASE_VERSION" ]; then + if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then + wget -s "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; + fi + tar xf gcc-$GCCBASE_VERSION.tar.gz + mv -v ~/cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR + rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION + rm ./*.tar.* +fi +if [ ! -d "gdb-$GDB_VERSION" ]; then + if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then wget -q https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; fi + tar xf gdb-$GDB_VERSION.tar.xz + cd gdb-$GDB_VERSION || exit + mkdir -p build + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi +if [ ! -d "gcc-$GCC_VERSION" ]; then + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-"$GCC_VERSION"/gcc-"$GCC_VERSION".tar.gz; fi + tar xf gcc-"$GCC_VERSION".tar.gz + cd gcc-"$GCC_VERSION" || exit + mkdir -p build + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' + contrib/download_prerequisites + rm ./*.tar.* + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi + + +echo "Setting up paths..." +PATH=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:$PATH +unset LD_LIBRARY_PATH #patch + +if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib + make -s -j$(nproc) + make -s install DESTDIR="$INSTALLDIR" + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + + echo "Building GCC Native GCC $GCC_VERSION Binaries..." + mkdir -p "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib --program-suffix=-"$GCC_VERSION" + make -s -j$(nproc) + make -s install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit + cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h + + echo "Building Native GDB Binaries..." + cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --program-suffix=-"$GCC_VERSION" + make -s -j$(nproc) + make -s install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi + echo "Done Building Native GDB Binaries..." + + mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" + cd "$HOME" || exit + #compress with maximum possible compression level. + env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + echo "Done Building Native GCC $GCC_VERSION Binaries..." +fi + +cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit +cat gcc/limitx.h gcc/glimits.h gcc/limity.h > $(dirname $($TARGET-gcc -print-libgcc-file-name))/include-fixed/limits.h + +echo "Building Cross GDB Binaries..." +cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi #cleanup +../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi #cleanup +echo "Done Building Cross GDB Binaries..." + +mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" +cd "$HOME" || exit +#compress with maximum possible compression level. +env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +echo "Done Building Cross GCC $GCC_VERSION Binaries..." +rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + +#clean path +PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/build-scripts/CLI/CLITB_64b b/build-scripts/CLI/CLITB_64b new file mode 100644 index 0000000..2e03291 --- /dev/null +++ b/build-scripts/CLI/CLITB_64b @@ -0,0 +1,230 @@ +#!/bin/bash + + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + + +# This script aauto downloads, compiles, and compresses Cross & Native GCC ARM64 Toolchain +# binaries targeting any Raspberry Pi 64-bit (like Pi64) OSes. + + +helpfunction() +{ + #helper function that prints custom usage help menu + echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder 64-bit" + echo "" + figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" + echo "" + echo "" + echo "Usage: $0 -g [GCC version] -t [Target OS type]" + echo -e "\t-g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)" + echo -e "\t-t What's yours Target OS type?: (1|2) [default:1]" + echo "" + echo "" + exit 1 # Exits script after printing help +} + + + +#input arguments handler +while getopts "g:t:" opt +do + case "$opt" in + g ) GCC_VERSION="$OPTARG" ;; + t ) OS_TYPE="$OPTARG" ;; + ? ) helpfunction ;; #prints help function for invalid parameter + esac +done +#validates parameters and print usage helper function in case parameters are missing +if [ -z "$GCC_VERSION" ]; then + echo "Error: Required parameter is missing!"; + helpfunction +elif [ -z "$OS_TYPE" ]; then + OS_TYPE=1 +else + echo "Parameters configured!"; +fi + + +#collect dependencies versions from raspberry pi os +if [ "$OS_TYPE" = "1" ] || [ "$GCC_VERSION" \< "8.3.0" ] ; then + GCCBASE_VERSION=6.3.0 + GLIBC_VERSION=2.24 + BINUTILS_VERSION=2.28 +elif [ "$OS_TYPE" = "2" ]; then + GCCBASE_VERSION=8.3.0 + GLIBC_VERSION=2.28 + BINUTILS_VERSION=2.31 +else + echo "Invalid argument value: $OS_TYPE" + exit +fi + + +#collect build directory if not defined +if [ "$BUILDDIR" = "" ]; then + #select temp directory + echo "Build directory is empty, using temp directory!" + BUILDDIR=$(dirname "$(mktemp tmp.XXXXXXXXXX -ut)") +fi + +#collect programming languages if not defined +if [ "$LANGUAGES" = "" ]; then + #select temp directory + echo "Building binaries for c,c++,fortran programming languages!" + LANGUAGES=c,c++,fortran +fi + + +#pre-defined params +FOLDER_VERSION=64 +KERNEL=kernel7 +ARCH=armv8-a+fp+simd +TARGET=aarch64-linux-gnu +GDB_VERSION=8.3.1 + + +#validate env variables +if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi +if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi +if [ "$ARCH" != "armv8-a+fp+simd" ]; then exit 1 ; fi +if [ "$FOLDER_VERSION" != "64" ]; then exit 1 ; fi +if [ "$BUILDDIR" = "" ]; then exit 1 ; fi +if [ "$LANGUAGES" = "" ]; then exit 1 ; fi + +URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/CLI%20Base" +if [ "$RPI_TYPE" = "64" ]; then URL="$URL/64/GCC%20$GCCBASE_VERSION/"; fi + +echo "Downloading and Setting up build directories" +#setup paths +DOWNLOADDIR=$BUILDDIR/build_toolchains +INSTALLDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION +SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc + +#make dirs +mkdir -p "$DOWNLOADDIR" +mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" + +cd "$DOWNLOADDIR" || exit + +#download binaries if not found +if [ ! -d "gcc-$GCCBASE_VERSION" ]; then + if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then + wget -s "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; + fi + tar xf gcc-$GCCBASE_VERSION.tar.gz + mv -v ~/cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR + rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION + rm ./*.tar.* +fi +if [ ! -d "gdb-$GDB_VERSION" ]; then + if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then + wget -q https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; + fi + tar xf gdb-$GDB_VERSION.tar.xz + cd gdb-$GDB_VERSION || exit + mkdir -p build + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi +if [ ! -d "gcc-$GCC_VERSION" ]; then + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then + wget -q https://ftpmirror.gnu.org/gcc/gcc-"$GCC_VERSION"/gcc-"$GCC_VERSION".tar.gz; + fi + tar xf gcc-"$GCC_VERSION".tar.gz + cd gcc-"$GCC_VERSION" || exit + mkdir -p build + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' + contrib/download_prerequisites + rm ./*.tar.* + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi + + + +echo "Setting up paths..." +PATH=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:$PATH +unset LD_LIBRARY_PATH #patch + +if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib + make -s -j$(nproc) + make -s install DESTDIR="$INSTALLDIR" + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + + echo "Building GCC Native GCC $GCC_VERSION Binaries..." + mkdir -p "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --disable-multilib --program-suffix=-"$GCC_VERSION" + make -s -j$(nproc) + make -s install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi + cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit + cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h + + echo "Building Native GDB Binaries..." + cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit + if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi + ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --program-suffix=-"$GCC_VERSION" + make -s -j$(nproc) + make -s install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi + echo "Done Building Native GDB Binaries..." + + mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" + cd "$HOME" || exit + #compress with maximum possible compression level. + env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_$FOLDER_VERSION.tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + echo "Done Building Native GCC $GCC_VERSION Binaries..." +fi + +cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit +cat gcc/limitx.h gcc/glimits.h gcc/limity.h > $(dirname $($TARGET-gcc -print-libgcc-file-name))/include-fixed/limits.h + +echo "Building Cross GDB Binaries..." +cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi +../configure --prefix= --target=$TARGET --with-arch=$ARCH --with-float=hard +make -s -j$(nproc) +make -s install DESTDIR="$INSTALLDIR" +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi +echo "Done Building Cross GDB Binaries..." + +mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" +cd "$HOME" || exit +#compress with maximum possible compression level. +env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +echo "Done Building Cross GCC $GCC_VERSION Binaries..." +rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + +#clean path +PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file From f2aa809c47b68f78871620ef038b03a40342f2e0 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sat, 1 Feb 2020 22:28:57 +0530 Subject: [PATCH 33/51] Fixes --- .travis.yml | 45 +++++++++++++++++++------------------ build-scripts/CLI/CLITB_32b | 6 ++--- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4942d6a..7a63f47 100644 --- a/.travis.yml +++ b/.travis.yml @@ -191,34 +191,35 @@ matrix: - $HOME/.ccache before_install: - - sudo apt-get update -qq; - sudo apt-get install -qq dos2unix -y; - dos2unix build-scripts/CLI/CLIBB_32b; - chmod +x build-scripts/CLI/CLIBB_32b; - dos2unix build-scripts/CLI/CLIBB_64b; - chmod +x build-scripts/CLI/CLIBB_64b; - dos2unix build-scripts/CLI/CLITB_32b; - chmod +x build-scripts/CLI/CLITB_32b; - dos2unix build-scripts/CLI/CLITB_64b; - chmod +x build-scripts/CLI/CLITB_64b; - dos2unix patches/curl_stfp_patcher; - chmod +x patches/curl_stfp_patcher; - dos2unix utils/SF_deployer; - chmod +x utils/SF_deployer; +- sudo apt-get update -qq; + sudo apt-get install -qq dos2unix -y; + dos2unix build-scripts/CLI/CLIBB_32b; + chmod +x build-scripts/CLI/CLIBB_32b; + dos2unix build-scripts/CLI/CLIBB_64b; + chmod +x build-scripts/CLI/CLIBB_64b; + dos2unix build-scripts/CLI/CLITB_32b; + chmod +x build-scripts/CLI/CLITB_32b; + dos2unix build-scripts/CLI/CLITB_64b; + chmod +x build-scripts/CLI/CLITB_64b; + dos2unix patches/curl_stfp_patcher; + chmod +x patches/curl_stfp_patcher; + dos2unix utils/SF_deployer; + chmod +x utils/SF_deployer; install: - - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget; +- sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison + libncurses-dev autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget; script: - - while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & - - if [ "$RPI_TYPE" != "64" ] && ( "$BASE" = "true" & "$TRAVIS_PULL_REQUEST_BRANCH" = "base" ); then bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi - - if [ "$RPI_TYPE" = "64" ] && ( "$BASE" = "true" & "$TRAVIS_PULL_REQUEST_BRANCH" = "base" ); then bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi - - if [ "$RPI_TYPE" != "64" ]; then bash build-scripts/CLI/CLITB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi - - if [ "$RPI_TYPE" = "64" ]; then bash build-scripts/CLI/CLITB_64b -g $GCC_VERSION -t $OS_TYPE; fi - - kill %1 +- while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & +- if [ "$RPI_TYPE" != "64" ] && ( "$BASE" = "true" & "$TRAVIS_PULL_REQUEST_BRANCH" = "base" ) ; then bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if [ "$RPI_TYPE" = "64" ] && ( "$BASE" = "true" & "$TRAVIS_PULL_REQUEST_BRANCH" = "base" ) ; then bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi +- if [ "$RPI_TYPE" != "64" ] ; then bash build-scripts/CLI/CLITB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi +- if [ "$RPI_TYPE" = "64" ] ; then bash build-scripts/CLI/CLITB_64b -g $GCC_VERSION -t $OS_TYPE; fi +- kill %1 after_success: - - bash utils/SF_deployer; +- bash utils/SF_deployer; branches: only: diff --git a/build-scripts/CLI/CLITB_32b b/build-scripts/CLI/CLITB_32b index 052bba4..56eafb8 100644 --- a/build-scripts/CLI/CLITB_32b +++ b/build-scripts/CLI/CLITB_32b @@ -172,10 +172,8 @@ mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit if [ ! -d "gcc-$GCCBASE_VERSION" ]; then - if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then - wget -s "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; - fi - tar xf gcc-$GCCBASE_VERSION.tar.gz + if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi + tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz mv -v ~/cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION rm ./*.tar.* From d9725d1e8fa8fe8e1a804fdfa79260847399f85b Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sat, 1 Feb 2020 22:34:23 +0530 Subject: [PATCH 34/51] Bug Fixes --- build-scripts/CLI/CLITB_32b | 2 +- build-scripts/CLI/CLITB_64b | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build-scripts/CLI/CLITB_32b b/build-scripts/CLI/CLITB_32b index 56eafb8..2e41e0a 100644 --- a/build-scripts/CLI/CLITB_32b +++ b/build-scripts/CLI/CLITB_32b @@ -174,7 +174,7 @@ cd "$DOWNLOADDIR" || exit if [ ! -d "gcc-$GCCBASE_VERSION" ]; then if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz - mv -v ~/cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR + mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION rm ./*.tar.* fi diff --git a/build-scripts/CLI/CLITB_64b b/build-scripts/CLI/CLITB_64b index 2e03291..eca6b31 100644 --- a/build-scripts/CLI/CLITB_64b +++ b/build-scripts/CLI/CLITB_64b @@ -137,7 +137,7 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then wget -s "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi tar xf gcc-$GCCBASE_VERSION.tar.gz - mv -v ~/cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR + mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION rm ./*.tar.* fi From d58e8a70f01e2057de5476a7fff55d678b73c8e3 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sat, 1 Feb 2020 22:40:29 +0530 Subject: [PATCH 35/51] Fixes --- build-scripts/CLI/CLITB_32b | 1 + build-scripts/CLI/CLITB_64b | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build-scripts/CLI/CLITB_32b b/build-scripts/CLI/CLITB_32b index 2e41e0a..ba50d99 100644 --- a/build-scripts/CLI/CLITB_32b +++ b/build-scripts/CLI/CLITB_32b @@ -167,6 +167,7 @@ INSTALLDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc mkdir -p "$DOWNLOADDIR" +mkdir -p "$INSTALLDIR" mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit diff --git a/build-scripts/CLI/CLITB_64b b/build-scripts/CLI/CLITB_64b index eca6b31..64e255b 100644 --- a/build-scripts/CLI/CLITB_64b +++ b/build-scripts/CLI/CLITB_64b @@ -127,6 +127,7 @@ SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc #make dirs mkdir -p "$DOWNLOADDIR" +mkdir -p "$INSTALLDIR" mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit @@ -136,7 +137,7 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -s "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi - tar xf gcc-$GCCBASE_VERSION.tar.gz + tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION rm ./*.tar.* From ba3359c6cba929bde942d352edfe650021318f0c Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sat, 1 Feb 2020 22:49:34 +0530 Subject: [PATCH 36/51] Fix --- .travis.yml | 3 +-- build-scripts/CLI/CLITB_32b | 2 +- build-scripts/CLI/CLITB_64b | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7a63f47..fd6a6aa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -207,8 +207,7 @@ before_install: chmod +x utils/SF_deployer; install: -- sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison - libncurses-dev autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget; +- sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget; script: - while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & diff --git a/build-scripts/CLI/CLITB_32b b/build-scripts/CLI/CLITB_32b index ba50d99..2ec4a97 100644 --- a/build-scripts/CLI/CLITB_32b +++ b/build-scripts/CLI/CLITB_32b @@ -175,7 +175,7 @@ cd "$DOWNLOADDIR" || exit if [ ! -d "gcc-$GCCBASE_VERSION" ]; then if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz - mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR + mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* $INSTALLDIR rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION rm ./*.tar.* fi diff --git a/build-scripts/CLI/CLITB_64b b/build-scripts/CLI/CLITB_64b index 64e255b..9f24edc 100644 --- a/build-scripts/CLI/CLITB_64b +++ b/build-scripts/CLI/CLITB_64b @@ -138,7 +138,7 @@ if [ ! -d "gcc-$GCCBASE_VERSION" ]; then wget -s "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz - mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* INSTALLDIR + mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* $INSTALLDIR rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION rm ./*.tar.* fi From b5f1a63d68627be10d2835753ed78749cf95dff3 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sun, 2 Feb 2020 00:01:23 +0530 Subject: [PATCH 37/51] New Updates: seperated Native and Cross CLI build-scripts. --- build-scripts/CLI/CLIBB_32b | 2 +- build-scripts/CLI/CLIBB_64b | 2 +- build-scripts/CLI/CLINTB_32b | 229 +++++++++++++++++++++++++++++++++++ build-scripts/CLI/CLINTB_64b | 186 ++++++++++++++++++++++++++++ build-scripts/CLI/CLITB_32b | 30 +---- build-scripts/CLI/CLITB_64b | 42 +------ build-scripts/RTBuilder_32b | 2 +- build-scripts/RTBuilder_64b | 2 +- 8 files changed, 423 insertions(+), 72 deletions(-) create mode 100644 build-scripts/CLI/CLINTB_32b create mode 100644 build-scripts/CLI/CLINTB_64b diff --git a/build-scripts/CLI/CLIBB_32b b/build-scripts/CLI/CLIBB_32b index 69b8a31..93115e3 100644 --- a/build-scripts/CLI/CLIBB_32b +++ b/build-scripts/CLI/CLIBB_32b @@ -141,7 +141,7 @@ INSTALLDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc mkdir -p "$DOWNLOADDIR" -mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" +mkdir -p "$INSTALLDIR" cd "$DOWNLOADDIR" || exit diff --git a/build-scripts/CLI/CLIBB_64b b/build-scripts/CLI/CLIBB_64b index ed857a9..1e2339e 100644 --- a/build-scripts/CLI/CLIBB_64b +++ b/build-scripts/CLI/CLIBB_64b @@ -125,7 +125,7 @@ SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc #make dirs mkdir -p "$DOWNLOADDIR" -mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" +mkdir -p "$INSTALLDIR" cd "$DOWNLOADDIR" || exit #download binaries if not found diff --git a/build-scripts/CLI/CLINTB_32b b/build-scripts/CLI/CLINTB_32b new file mode 100644 index 0000000..4255570 --- /dev/null +++ b/build-scripts/CLI/CLINTB_32b @@ -0,0 +1,229 @@ +#!/bin/bash + + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + + +# This script auto downloads, compiles, and compresses Cross & Native GCC ARM Toolchain binaries +# targeting Raspberry Pi 32-bit Stretch(Debian 9) and Buster(Debian 10) OSes only. + + + +helpfunction() +{ + #helper function that prints custom usage help menu + echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi CLI Native Toolchains Builder 32-bit" + echo "" + figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" + echo "" + echo "" + echo "Usage: $0 -g [GCC version] -r [Target Pi type] -o [Target Pi OS type]" + echo -e "\t-g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)" + echo -e "\t-r What's yours Target Raspberry Pi type?: (0-1|2-3|3+)" + echo -e "\t-o What's yours Target Raspberry Pi OS type?: (stretch|buster)" + echo "" + echo "" + exit 1 # Exit script after printing help +} + + + +#input arguments handler +while getopts "g:r:o:" opt +do + case "$opt" in + g ) GCC_VERSION="$OPTARG" ;; + r ) RPI_TYPE="$OPTARG" ;; + o ) RPIOS_TYPE="$OPTARG" ;; + ? ) helpfunction ;; #prints help function for invalid parameter + esac +done +#validates parameters and print usage helper function in case parameters are missing +if [ -z "$GCC_VERSION" ] || [ -z "$RPI_TYPE" ] || [ -z "$RPIOS_TYPE" ] +then + echo "Error: Required parameters are missing!"; + helpfunction +fi + + + +#collect parameters from raspbery pi type +if [ "$RPI_TYPE" = "2-3" ]; then + FOLDER_VERSION=1 + ARCH=armv7-a + FPU=neon-vfpv4; +elif [ "$RPI_TYPE" = "3+" ]; then + FOLDER_VERSION=2 + ARCH=armv8-a + FPU=neon-fp-armv8 +elif [ "$RPI_TYPE" = "0-1" ]; then + FOLDER_VERSION=0 + ARCH=armv6 + FPU=vfp +else + echo "Invalid argument value: $RPI_TYPE" + exit +fi + +#collect dependencies versions from raspberry pi os +if [ "$RPIOS_TYPE" = "stretch" ] || [ "$GCC_VERSION" \< "8.3.0" ]; then + GCCBASE_VERSION=6.3.0 +elif [ "$RPIOS_TYPE" = "buster" ]; then + GCCBASE_VERSION=8.3.0 +else + echo "Invalid argument value: $RPIOS_TYPE" + exit +fi + +#collect build directory if not defined +if [ "$BUILDDIR" = "" ]; then + #select temp directory as default + echo "Build directory is empty, using temp directory!" + BUILDDIR=$(dirname "$(mktemp tmp.XXXXXXXXXX -ut)") +fi + +#collect programming languages if not defined +if [ "$LANGUAGES" = "" ]; then + #select `c,c++,fortran` as default + echo "Building binaries for c,c++,fortran programming languages!" + LANGUAGES=c,c++,fortran +fi + +#pre-defined params +TARGET=arm-linux-gnueabihf +GDB_VERSION=8.3.1 + +#validate env variables +if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi +if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi +if ! [[ "$FOLDER_VERSION" =~ ^(0|1|2)$ ]]; then exit 1 ; fi +if ! [[ "$ARCH" =~ ^(armv6|armv7-a|armv8-a)$ ]]; then exit 1 ; fi +if ! [[ "$FPU" =~ ^(vfp|neon-vfpv4|neon-fp-armv8)$ ]]; then exit 1 ; fi +if [ "$BUILDDIR" = "" ]; then exit 1 ; fi +if [ "$LANGUAGES" = "" ]; then exit 1 ; fi + + +URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/CLI%20Base" + +if [ "$RPIOS_TYPE" = "buster" ]; then + URL="$URL/Buster/GCC%20$GCCBASE_VERSION" + if [ "$RPI_TYPE" = "0-1" ]; then + URL="$URL/Raspberry%20Pi%201%2C%20Zero/" + elif [ "$RPI_TYPE" = "2-3" ]; then + URL="$URL/Raspberry%20Pi%202%2C%203/" + elif [ "$RPI_TYPE" = "3+" ]; then + URL="$URL/Raspberry%20Pi%203A%2B%2C%203B%2B%2C%204/" + else + echo "Missing RPI_TYPE parameter!" + exit 1; + fi +elif [ "$RPIOS_TYPE" = "stretch" ]; then + URL="$URL/Stretch/GCC%20$GCCBASE_VERSION" + if [ "$RPI_TYPE" = "0-1" ]; then + URL="$URL/Raspberry%20Pi%201%2C%20Zero/" + elif [ "$RPI_TYPE" = "2-3" ]; then + URL="$URL/Raspberry%20Pi%202%2C%203/" + elif [ "$RPI_TYPE" = "3+" ]; then + URL="$URL/Raspberry%20Pi%203A%2B%2C%203B%2B%2C%204/" + else + echo "Missing RPI_TYPE parameter!" + exit 1; + fi +else + echo "Missing RPIOS_TYPE parameter!" + exit 1; +fi + + +#download binaries if not found +echo "Downloading and Setting up build directories" + +DOWNLOADDIR=$BUILDDIR/build_toolchains +mkdir -p "$DOWNLOADDIR" + +cd "$DOWNLOADDIR" || exit + +if [ ! -d "gcc-$GCCBASE_VERSION" ]; then + if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi + tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz + rm ./*.tar.* +fi +if [ ! -d "gdb-$GDB_VERSION" ]; then + if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then wget -q https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; fi + tar xf gdb-$GDB_VERSION.tar.xz + cd gdb-$GDB_VERSION || exit + mkdir -p build + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi +if [ ! -d "gcc-$GCC_VERSION" ]; then + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then wget -q https://ftpmirror.gnu.org/gcc/gcc-"$GCC_VERSION"/gcc-"$GCC_VERSION".tar.gz; fi + tar xf gcc-"$GCC_VERSION".tar.gz + cd gcc-"$GCC_VERSION" || exit + mkdir -p build + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' + contrib/download_prerequisites + rm ./*.tar.* + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi + + +echo "Setting up paths..." +PATH=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:$PATH +unset LD_LIBRARY_PATH #patch + + +echo "Building GCC Native GCC $GCC_VERSION Binaries..." +mkdir -p "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi +../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib --program-suffix=-"$GCC_VERSION" +make -s -j$(nproc) +make -s install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi +cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit +cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h + +echo "Building Native GDB Binaries..." +cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi +../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --program-suffix=-"$GCC_VERSION" +make -s -j$(nproc) +make -s install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi +echo "Done Building Native GDB Binaries..." + +mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" +cd "$HOME" || exit +#compress with maximum possible compression level. +env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +echo "Done Building Native GCC $GCC_VERSION Binaries..." + +#clean path +PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/build-scripts/CLI/CLINTB_64b b/build-scripts/CLI/CLINTB_64b new file mode 100644 index 0000000..f2568d6 --- /dev/null +++ b/build-scripts/CLI/CLINTB_64b @@ -0,0 +1,186 @@ +#!/bin/bash + + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + + +# This script aauto downloads, compiles, and compresses Cross & Native GCC ARM64 Toolchain +# binaries targeting any Raspberry Pi 64-bit (like Pi64) OSes. + + +helpfunction() +{ + #helper function that prints custom usage help menu + echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "CLI Raspberry Pi Native Toolchains Builder 64-bit" + echo "" + figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" + echo "" + echo "" + echo "Usage: $0 -g [GCC version] -t [Target OS type]" + echo -e "\t-g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)" + echo -e "\t-t What's yours Target OS type?: (1|2) [default:1]" + echo "" + echo "" + exit 1 # Exits script after printing help +} + + + +#input arguments handler +while getopts "g:t:" opt +do + case "$opt" in + g ) GCC_VERSION="$OPTARG" ;; + t ) OS_TYPE="$OPTARG" ;; + ? ) helpfunction ;; #prints help function for invalid parameter + esac +done +#validates parameters and print usage helper function in case parameters are missing +if [ -z "$GCC_VERSION" ]; then + echo "Error: Required parameter is missing!"; + helpfunction +elif [ -z "$OS_TYPE" ]; then + OS_TYPE=1 +else + echo "Parameters configured!"; +fi + + +#collect dependencies versions from raspberry pi os +if [ "$OS_TYPE" = "1" ] || [ "$GCC_VERSION" \< "8.3.0" ] ; then + GCCBASE_VERSION=6.3.0 +elif [ "$OS_TYPE" = "2" ]; then + GCCBASE_VERSION=8.3.0 +else + echo "Invalid argument value: $OS_TYPE" + exit +fi + + +#collect build directory if not defined +if [ "$BUILDDIR" = "" ]; then + #select temp directory + echo "Build directory is empty, using temp directory!" + BUILDDIR=$(dirname "$(mktemp tmp.XXXXXXXXXX -ut)") +fi + +#collect programming languages if not defined +if [ "$LANGUAGES" = "" ]; then + #select temp directory + echo "Building binaries for c,c++,fortran programming languages!" + LANGUAGES=c,c++,fortran +fi + + +#pre-defined params +FOLDER_VERSION=64 +ARCH=armv8-a+fp+simd +TARGET=aarch64-linux-gnu +GDB_VERSION=8.3.1 + + +#validate env variables +if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi +if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi +if [ "$ARCH" != "armv8-a+fp+simd" ]; then exit 1 ; fi +if [ "$FOLDER_VERSION" != "64" ]; then exit 1 ; fi +if [ "$BUILDDIR" = "" ]; then exit 1 ; fi +if [ "$LANGUAGES" = "" ]; then exit 1 ; fi + +URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/CLI%20Base" +if [ "$RPI_TYPE" = "64" ]; then URL="$URL/64/GCC%20$GCCBASE_VERSION/"; fi + +echo "Downloading and Setting up build directories" +#setup paths +DOWNLOADDIR=$BUILDDIR/build_toolchains +mkdir -p "$DOWNLOADDIR" + +cd "$DOWNLOADDIR" || exit + +#download binaries if not found +if [ ! -d "gcc-$GCCBASE_VERSION" ]; then + if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -s "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi + tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz + rm ./*.tar.* +fi +if [ ! -d "gdb-$GDB_VERSION" ]; then + if [ ! -f "gdb-$GDB_VERSION.tar.xz" ]; then + wget -q https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz; + fi + tar xf gdb-$GDB_VERSION.tar.xz + cd gdb-$GDB_VERSION || exit + mkdir -p build + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi +if [ ! -d "gcc-$GCC_VERSION" ]; then + if [ ! -f "gcc-$GCC_VERSION.tar.gz" ]; then + wget -q https://ftpmirror.gnu.org/gcc/gcc-"$GCC_VERSION"/gcc-"$GCC_VERSION".tar.gz; + fi + tar xf gcc-"$GCC_VERSION".tar.gz + cd gcc-"$GCC_VERSION" || exit + mkdir -p build + sed -i contrib/download_prerequisites -e '/base_url=/s/ftp/http/' + contrib/download_prerequisites + rm ./*.tar.* + cd "$DOWNLOADDIR" || exit + rm ./*.tar.* +fi + +echo "Setting up paths..." +PATH=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:$PATH +unset LD_LIBRARY_PATH #patch + +echo "Building GCC Native GCC $GCC_VERSION Binaries..." +mkdir -p "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi +../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --disable-multilib --program-suffix=-"$GCC_VERSION" +make -s -j$(nproc) +make -s install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi +cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit +cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h + +echo "Building Native GDB Binaries..." +cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi +../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --program-suffix=-"$GCC_VERSION" +make -s -j$(nproc) +make -s install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi +echo "Done Building Native GDB Binaries..." + +mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" +cd "$HOME" || exit +#compress with maximum possible compression level. +env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_$FOLDER_VERSION.tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +echo "Done Building Native GCC $GCC_VERSION Binaries..." + +#clean path +PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/build-scripts/CLI/CLITB_32b b/build-scripts/CLI/CLITB_32b index 2ec4a97..7f6e243 100644 --- a/build-scripts/CLI/CLITB_32b +++ b/build-scripts/CLI/CLITB_32b @@ -36,7 +36,7 @@ helpfunction() #helper function that prints custom usage help menu echo "" echo "" - figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder 32-bit" + figlet -t -k -f /usr/share/figlet/standard.flf "CLI Raspberry Pi Cross Toolchains Builder 32-bit" echo "" figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" echo "" @@ -168,7 +168,6 @@ SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc mkdir -p "$DOWNLOADDIR" mkdir -p "$INSTALLDIR" -mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit @@ -211,33 +210,6 @@ if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then make -s -j$(nproc) make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi - - echo "Building GCC Native GCC $GCC_VERSION Binaries..." - mkdir -p "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit - if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi - ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib --program-suffix=-"$GCC_VERSION" - make -s -j$(nproc) - make -s install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi - cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit - cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h - - echo "Building Native GDB Binaries..." - cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit - if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi - ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --program-suffix=-"$GCC_VERSION" - make -s -j$(nproc) - make -s install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi - echo "Done Building Native GDB Binaries..." - - mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" - cd "$HOME" || exit - #compress with maximum possible compression level. - env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - echo "Done Building Native GCC $GCC_VERSION Binaries..." fi cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit diff --git a/build-scripts/CLI/CLITB_64b b/build-scripts/CLI/CLITB_64b index 9f24edc..ffb948b 100644 --- a/build-scripts/CLI/CLITB_64b +++ b/build-scripts/CLI/CLITB_64b @@ -35,7 +35,7 @@ helpfunction() #helper function that prints custom usage help menu echo "" echo "" - figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder 64-bit" + figlet -t -k -f /usr/share/figlet/standard.flf "CLI Raspberry Pi Cross Toolchains Builder 64-bit" echo "" figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" echo "" @@ -73,12 +73,8 @@ fi #collect dependencies versions from raspberry pi os if [ "$OS_TYPE" = "1" ] || [ "$GCC_VERSION" \< "8.3.0" ] ; then GCCBASE_VERSION=6.3.0 - GLIBC_VERSION=2.24 - BINUTILS_VERSION=2.28 elif [ "$OS_TYPE" = "2" ]; then GCCBASE_VERSION=8.3.0 - GLIBC_VERSION=2.28 - BINUTILS_VERSION=2.31 else echo "Invalid argument value: $OS_TYPE" exit @@ -102,7 +98,6 @@ fi #pre-defined params FOLDER_VERSION=64 -KERNEL=kernel7 ARCH=armv8-a+fp+simd TARGET=aarch64-linux-gnu GDB_VERSION=8.3.1 @@ -128,15 +123,12 @@ SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc #make dirs mkdir -p "$DOWNLOADDIR" mkdir -p "$INSTALLDIR" -mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" cd "$DOWNLOADDIR" || exit #download binaries if not found if [ ! -d "gcc-$GCCBASE_VERSION" ]; then - if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then - wget -s "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; - fi + if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* $INSTALLDIR rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION @@ -166,12 +158,11 @@ if [ ! -d "gcc-$GCC_VERSION" ]; then rm ./*.tar.* fi - - echo "Setting up paths..." PATH=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:$PATH unset LD_LIBRARY_PATH #patch + if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi @@ -179,33 +170,6 @@ if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then make -s -j$(nproc) make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi - - echo "Building GCC Native GCC $GCC_VERSION Binaries..." - mkdir -p "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build || exit - if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi - ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --enable-languages=$LANGUAGES --with-arch=$ARCH --disable-multilib --program-suffix=-"$GCC_VERSION" - make -s -j$(nproc) - make -s install-strip DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi - cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit - cat gcc/limitx.h gcc/glimits.h gcc/limity.h > "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION/lib/gcc/$TARGET/"$GCC_VERSION"/include-fixed/limits.h - - echo "Building Native GDB Binaries..." - cd "$DOWNLOADDIR"/gdb-$GDB_VERSION/build || exit - if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi - ../configure --prefix= --build="$MACHTYPE" --host=$TARGET --target=$TARGET --with-arch=$ARCH --program-suffix=-"$GCC_VERSION" - make -s -j$(nproc) - make -s install DESTDIR="$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - if [ -n "$(ls -A "$DOWNLOADDIR"/gdb-$GDB_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gdb-$GDB_VERSION/build/*; fi - echo "Done Building Native GDB Binaries..." - - mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" - cd "$HOME" || exit - #compress with maximum possible compression level. - env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_$FOLDER_VERSION.tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION - echo "Done Building Native GCC $GCC_VERSION Binaries..." fi cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index c2fb099..3561bb5 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -145,7 +145,7 @@ INSTALLDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc mkdir -p "$DOWNLOADDIR" -mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" +mkdir -p "$INSTALLDIR" cd "$DOWNLOADDIR" || exit diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index 1e086d9..f1630d5 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -128,7 +128,7 @@ SYSROOTDIR=$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/$TARGET/libc #make dirs mkdir -p "$DOWNLOADDIR" -mkdir -p "$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION" +mkdir -p "$INSTALLDIR" cd "$DOWNLOADDIR" || exit #download binaries if not found From a849bf31f8ec3e5bf28f429103fbfc59f66f1427 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sun, 2 Feb 2020 16:05:26 +0530 Subject: [PATCH 38/51] Major CLI Updates - Removed slow Travis CI with powerful Github Action Workflow. - Added initially Pi[0-1] builder workflow config yaml file. - Renamed builder script. - Other Minor Fixes. --- .github/workflows/builder_zero.yml | 406 ++++++++++++++++++++ .travis.yml | 240 ------------ build-scripts/CLI/{CLITB_32b => CLICTB_32b} | 3 +- build-scripts/CLI/{CLITB_64b => CLICTB_64b} | 2 +- build-scripts/CLI/CLINTB_32b | 3 +- build-scripts/CLI/CLINTB_64b | 3 +- 6 files changed, 410 insertions(+), 247 deletions(-) create mode 100644 .github/workflows/builder_zero.yml delete mode 100644 .travis.yml rename build-scripts/CLI/{CLITB_32b => CLICTB_32b} (97%) rename build-scripts/CLI/{CLITB_64b => CLICTB_64b} (98%) diff --git a/.github/workflows/builder_zero.yml b/.github/workflows/builder_zero.yml new file mode 100644 index 0000000..ce019cc --- /dev/null +++ b/.github/workflows/builder_zero.yml @@ -0,0 +1,406 @@ +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + +name: CLI Builder Pi[0-1] + +on: + # Trigger the workflow on push or pull request, + # but only for the master branch + push: + branches: + - master + paths-ignore: + - '**.md' + pull_request: + branches: + - master + paths-ignore: + - '**.md' + +env: + CURL_VERSION: 7.68.0 + CCACHE_COMPRESS: 1 + CCACHE_DIR: $HOME/.ccache + USER_SFTP: ${{ secrets.USER_SFTP }} + PASSWORD_SFTP: ${{ secrets.PASSWORD_SFTP }} + +jobs: + builder-buster_0: + name: BASE GCC-8.3.0 32-bit Buster Pi[0-1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 8.3.0 + RPIOS_TYPE: buster + RPI_TYPE: 0-1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLIBB_32b + chmod +x build-scripts/CLI/CLIBB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-buster_1: + name: Cross GCC-9.2.0 32-bit Buster Pi[0-1] + needs: builder-buster_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: buster + RPI_TYPE: 0-1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLICTB_32b + chmod +x build-scripts/CLI/CLICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-buster_2: + name: Native GCC-9.2.0 32-bit Buster Pi[0-1] + needs: [builder-buster_0, builder-buster_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: buster + RPI_TYPE: 0-1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLINTB_32b + chmod +x build-scripts/CLI/CLINTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + + builder-stretch_0: + name: BASE GCC-6.3.0 32-bit Stretch Pi[0-1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPIOS_TYPE: stretch + RPI_TYPE: 0-1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLIBB_32b + chmod +x build-scripts/CLI/CLIBB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-stretch_1: + name: Cross GCC-9.2.0 32-bit Stretch Pi[0-1] + needs: builder-stretch_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: stretch + RPI_TYPE: 0-1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLICTB_32b + chmod +x build-scripts/CLI/CLICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-stretch_2: + name: Native GCC-9.2.0 32-bit Stretch Pi[0-1] + needs: [builder-stretch_0, builder-stretch_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: stretch + RPI_TYPE: 0-1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLINTB_32b + chmod +x build-scripts/CLI/CLINTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + + builder-64_0: + name: BASE GCC-6.3.0 64-bit Pi[0-1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPI_TYPE: 64 + OS_TYPE: 1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLIBB_64b + chmod +x build-scripts/CLI/CLIBB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_1: + name: Cross GCC-9.2.0 64-bit Pi[0-1] + needs: builder-stretch_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPI_TYPE: 64 + OS_TYPE: 1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLICTB_64b + chmod +x build-scripts/CLI/CLICTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_64b -g $GCC_VERSION -t $OS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_2: + name: Native GCC-9.2.0 64-bit Pi[0-1] + needs: [builder-stretch_0, builder-stretch_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPI_TYPE: 64 + OS_TYPE: 1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLINTB_64b + chmod +x build-scripts/CLI/CLINTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_64b -g $GCC_VERSION -t $OS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index fd6a6aa..0000000 --- a/.travis.yml +++ /dev/null @@ -1,240 +0,0 @@ -# =============================================== -# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project -# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) -# build-scripts and precompiled standalone toolchains for Raspberry Pi. - - -# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) - - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# =============================================== - - -os: linux - -dist: bionic - -language: minimal - -matrix: - include: - - name: "GCC-9.2.0 32-bit Buster Pi[0-1]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=0-1 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-9.2.0 32-bit Buster Pi[2-3]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=2-3 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-9.2.0 32-bit Buster Pi[3+]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=buster RPI_TYPE=3+ - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-9.2.0 32-bit Stretch Pi[0-1]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-9.2.0 32-bit Stretch Pi[2-3]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-9.2.0 32-bit Stretch Pi[3+]" - env: GCC_VERSION=9.2.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-8.3.0 32-bit Buster Pi[0-1]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-8.3.0 32-bit Buster Pi[2-3]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-8.3.0 32-bit Buster Pi[3+]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-8.3.0 32-bit Stretch Pi[0-1]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-8.3.0 32-bit Stretch Pi[2-3]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-8.3.0 32-bit Stretch Pi[3+]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-6.3.0 32-bit Stretch Pi[0-1]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-6.3.0 32-bit Stretch Pi[2-3]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-6.3.0 32-bit Stretch Pi[3+]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-9.2.0 64-bit" - env: GCC_VERSION=9.2.0 OS_TYPE=2 RPI_TYPE=64 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-8.3.0 64-bit" - env: GCC_VERSION=8.3.0 OS_TYPE=1 RPI_TYPE=64 - language: minimal - cache: - directories: - - $HOME/.ccache - - name: "GCC-6.3.0 64-bit" - env: GCC_VERSION=6.3.0 RPI_TYPE=64 - - name: "BASE GCC-8.3.0 32-bit Buster Pi[0-1]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=0-1 BASE=true - language: minimal - cache: - directories: - - $HOME/.ccache - - - name: "BASE GCC-8.3.0 32-bit Buster Pi[2-3]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=2-3 BASE=true - language: minimal - cache: - directories: - - $HOME/.ccache - - - name: "BASE GCC-8.3.0 32-bit Buster Pi[3+]" - env: GCC_VERSION=8.3.0 RPIOS_TYPE=buster RPI_TYPE=3+ BASE=true - language: minimal - cache: - directories: - - $HOME/.ccache - - - name: "BASE GCC-6.3.0 32-bit Stretch Pi[0-1]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=0-1 BASE=true - language: minimal - cache: - directories: - - $HOME/.ccache - - - name: "BASE GCC-6.3.0 32-bit Stretch Pi[2-3]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=2-3 BASE=true - language: minimal - cache: - directories: - - $HOME/.ccache - - - name: "BASE GCC-6.3.0 32-bit Stretch Pi[3+]" - env: GCC_VERSION=6.3.0 RPIOS_TYPE=stretch RPI_TYPE=3+ BASE=true - language: minimal - cache: - directories: - - $HOME/.ccache - - - name: "BASE GCC-8.3.0 64-bit" - env: GCC_VERSION=8.3.0 OS_TYPE=2 RPI_TYPE=64 BASE=true - language: minimal - cache: - directories: - - $HOME/.ccache - - - name: "BASE GCC-6.3.0 64-bit" - env: GCC_VERSION=6.3.0 OS_TYPE=1 RPI_TYPE=64 BASE=true - language: minimal - cache: - directories: - - $HOME/.ccache - -before_install: -- sudo apt-get update -qq; - sudo apt-get install -qq dos2unix -y; - dos2unix build-scripts/CLI/CLIBB_32b; - chmod +x build-scripts/CLI/CLIBB_32b; - dos2unix build-scripts/CLI/CLIBB_64b; - chmod +x build-scripts/CLI/CLIBB_64b; - dos2unix build-scripts/CLI/CLITB_32b; - chmod +x build-scripts/CLI/CLITB_32b; - dos2unix build-scripts/CLI/CLITB_64b; - chmod +x build-scripts/CLI/CLITB_64b; - dos2unix patches/curl_stfp_patcher; - chmod +x patches/curl_stfp_patcher; - dos2unix utils/SF_deployer; - chmod +x utils/SF_deployer; - -install: -- sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget; - -script: -- while sleep 60; do echo "=====[ $SECONDS seconds still running ]====="; done & -- if [ "$RPI_TYPE" != "64" ] && ( "$BASE" = "true" & "$TRAVIS_PULL_REQUEST_BRANCH" = "base" ) ; then bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ] && ( "$BASE" = "true" & "$TRAVIS_PULL_REQUEST_BRANCH" = "base" ) ; then bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE; fi -- if [ "$RPI_TYPE" != "64" ] ; then bash build-scripts/CLI/CLITB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE; fi -- if [ "$RPI_TYPE" = "64" ] ; then bash build-scripts/CLI/CLITB_64b -g $GCC_VERSION -t $OS_TYPE; fi -- kill %1 - -after_success: -- bash utils/SF_deployer; - -branches: - only: - - master - -before_cache: - - bash patches/curl_stfp_patcher; - -cache: - directories: - - $HOME/.ccache - -env: - global: - - CURL_VERSION=7.68.0 - - CCACHE_COMPRESS=1 - - CCACHE_DIR=$HOME/.ccache - - secure: MI97Ig3BiKpwjGL1Bwl/b9UuZ7ZKnz/IviyZnmGXVUNsovciQZRPg0DttZsc6upEFyLi0q8qc8ZKsWQsLA/0FoDRMiDzfpmiz8oy7C1MugY0AfViQP9PLCoUhltVFwEoFZS0MGR7eKmCedg9SVFIWBNwcGi7K8xqvSZlO6Adv+nxUBYU7QPUkqVVjxKslavDIcRlqDUtQfySkZcmFa/JzarwdYyusC1DuL/RTt8tUbp6MChvBFMZV/d+V69G9TRMkY32xKrSJ3GvQ/cuqN5eSi88e8K3PJP9oDfvcMCr+xF+cP7ztXrEMFmuiGvHAJf5TzeAGlfdqaBAYrNZ+mUuL/d50c7LJvF3PMmLLA0MUBVmyggFGb1l/UA7TARgTkV3VblE9vPFu9mDaQyOMGccFJ+4xwcsAxgI3nXNdmESz0M/bMUR47aIl2bGj/qennZZ6qW8GRId8iuceOYo570KGHdCnWAKKr/75Eds7p8D8u1QUdEjKyYO9EBbkgCJPw4Se+v5fp4Qej7bfBWtFgyadlPzxv3qYoq2Hq5VkmKLbY7cnbM2h+hrNjr8dnjNUIMzbrVbqlX08xKQ0qaa6e83Plm0K2nJ9AGrzIYkFj7Sdw1/XfGMm7inAIGOaPMzhy1V+UaSK/OuW77HW7fEgZwdMVOjSESPCU6uY8t0Bj1GeOE= - - secure: DwYnMsvCduimQQjyOnOj0qTwf2KtILQ+OhFrnKSgnds3fGFoJZp2lMFW6OKHlLkUuvZKDC3O+wxWeRJSU/JCjl/rHduH+10K7U2HhRKW4V876AJ61m+m6u/6v+6YEIB0RBJxKf8p4RdYtCP9Bfqrd46zvZWO8LNb4JzjgvQ1NngqcggTyIS+CVVop0Xz4fty9FHGN82FM5ZU2VwLyQNuOo5bo8Om3uWTXSKw4YfC0CFL2McUmxZaTtuz0653VJsqGAe7IfDYc7HiL4UKBX+K7yPcvpG6MG4ejpzC2Cxovo1BJ1HrWOpYIx5EpDwwRT9slEpuV1opHI3hLWg/dlXrtFn9QJQYyDcV2q6UXKeGSFjFInu1GeqWxD8fv/vm8OcfNgceW+++3AO0C/ZfRimhgLJYc/R4B6In95H8Sqtm1gFmlmtH3aIHIESLaXkhT1eQ8z5gpO9xtNBEqk0M7mZ3uN9ygYGLxMKdhQK4an+jHQQSnumRi3++mY7ST9Ekqq+YmIvGpB93wLyWnt545GkawAxHOrwcHeTLkBRbDDCOUgt4VO0+ng+Tc3u/f9oWZWp8fBMG+PjF1HyZMEU7S7dPWD6KqScbdo7a/zKdU8RZFigb1NMREOlV3v2ku4SO6V/zhegkUOGCWeH1u8F5ddTj74HytK+2qtFc8NUSbCIVtvs= \ No newline at end of file diff --git a/build-scripts/CLI/CLITB_32b b/build-scripts/CLI/CLICTB_32b similarity index 97% rename from build-scripts/CLI/CLITB_32b rename to build-scripts/CLI/CLICTB_32b index 7f6e243..6be2290 100644 --- a/build-scripts/CLI/CLITB_32b +++ b/build-scripts/CLI/CLICTB_32b @@ -209,7 +209,6 @@ if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib make -s -j$(nproc) make -s install DESTDIR="$INSTALLDIR" - if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-"$GCC_VERSION"/build/*; fi fi cd "$DOWNLOADDIR"/gcc-"$GCC_VERSION" || exit @@ -227,7 +226,7 @@ echo "Done Building Cross GDB Binaries..." mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION diff --git a/build-scripts/CLI/CLITB_64b b/build-scripts/CLI/CLICTB_64b similarity index 98% rename from build-scripts/CLI/CLITB_64b rename to build-scripts/CLI/CLICTB_64b index ffb948b..255bc97 100644 --- a/build-scripts/CLI/CLITB_64b +++ b/build-scripts/CLI/CLICTB_64b @@ -187,7 +187,7 @@ echo "Done Building Cross GDB Binaries..." mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION diff --git a/build-scripts/CLI/CLINTB_32b b/build-scripts/CLI/CLINTB_32b index 4255570..1fa6427 100644 --- a/build-scripts/CLI/CLINTB_32b +++ b/build-scripts/CLI/CLINTB_32b @@ -221,8 +221,7 @@ echo "Done Building Native GDB Binaries..." mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION -rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +tar cf - native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Native GCC $GCC_VERSION Binaries..." #clean path diff --git a/build-scripts/CLI/CLINTB_64b b/build-scripts/CLI/CLINTB_64b index f2568d6..4a83a2f 100644 --- a/build-scripts/CLI/CLINTB_64b +++ b/build-scripts/CLI/CLINTB_64b @@ -178,8 +178,7 @@ echo "Done Building Native GDB Binaries..." mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_$FOLDER_VERSION.tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION -rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +tar cf - native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Native GCC $GCC_VERSION Binaries..." #clean path From d96b25a6666990fab065822f3ff9d3fb1778a02f Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sun, 2 Feb 2020 16:12:52 +0530 Subject: [PATCH 39/51] Minor typo fixed --- .github/workflows/builder_zero.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/builder_zero.yml b/.github/workflows/builder_zero.yml index ce019cc..6af984c 100644 --- a/.github/workflows/builder_zero.yml +++ b/.github/workflows/builder_zero.yml @@ -66,7 +66,7 @@ jobs: chmod +x utils/SF_deployer if: success() - name: install - run: | + run: | sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget sudo /usr/sbin/update-ccache-symlinks echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc @@ -106,7 +106,7 @@ jobs: chmod +x utils/SF_deployer if: success() - name: install - run: | + run: | sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget sudo /usr/sbin/update-ccache-symlinks echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc @@ -146,7 +146,7 @@ jobs: chmod +x utils/SF_deployer if: success() - name: install - run: | + run: | sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget sudo /usr/sbin/update-ccache-symlinks echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc @@ -186,7 +186,7 @@ jobs: chmod +x utils/SF_deployer if: success() - name: install - run: | + run: | sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget sudo /usr/sbin/update-ccache-symlinks echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc @@ -226,7 +226,7 @@ jobs: chmod +x utils/SF_deployer if: success() - name: install - run: | + run: | sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget sudo /usr/sbin/update-ccache-symlinks echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc @@ -266,7 +266,7 @@ jobs: chmod +x utils/SF_deployer if: success() - name: install - run: | + run: | sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget sudo /usr/sbin/update-ccache-symlinks echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc @@ -306,7 +306,7 @@ jobs: chmod +x utils/SF_deployer if: success() - name: install - run: | + run: | sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget sudo /usr/sbin/update-ccache-symlinks echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc @@ -346,7 +346,7 @@ jobs: chmod +x utils/SF_deployer if: success() - name: install - run: | + run: | sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget sudo /usr/sbin/update-ccache-symlinks echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc @@ -386,7 +386,7 @@ jobs: chmod +x utils/SF_deployer if: success() - name: install - run: | + run: | sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget sudo /usr/sbin/update-ccache-symlinks echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc From 4b59960125631db9c7f79af3de0bb9f6cd7e84d9 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sun, 2 Feb 2020 16:20:18 +0530 Subject: [PATCH 40/51] Fixed missing definations in yaml --- .github/workflows/builder_zero.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/builder_zero.yml b/.github/workflows/builder_zero.yml index 6af984c..606b94f 100644 --- a/.github/workflows/builder_zero.yml +++ b/.github/workflows/builder_zero.yml @@ -326,7 +326,7 @@ jobs: if: success() builder-64_1: name: Cross GCC-9.2.0 64-bit Pi[0-1] - needs: builder-stretch_0 + needs: builder-64_0 runs-on: ubuntu-latest env: GCC_VERSION: 9.2.0 @@ -366,7 +366,7 @@ jobs: if: success() builder-64_2: name: Native GCC-9.2.0 64-bit Pi[0-1] - needs: [builder-stretch_0, builder-stretch_1] + needs: [builder-64_0, builder-64_1] runs-on: ubuntu-latest env: GCC_VERSION: 9.2.0 From eedabcd9a4fb01daad43f5d20e91bc27e66070ef Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sun, 2 Feb 2020 18:48:30 +0530 Subject: [PATCH 41/51] Minor bugfixes and Added all Pi workflows --- .github/workflows/builder_one.yml | 406 +++++++++++++++++++++++++++++ .github/workflows/builder_two.yml | 406 +++++++++++++++++++++++++++++ .github/workflows/builder_zero.yml | 6 +- build-scripts/CLI/CLINTB_32b | 3 +- build-scripts/CLI/CLINTB_64b | 4 +- 5 files changed, 818 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/builder_one.yml create mode 100644 .github/workflows/builder_two.yml diff --git a/.github/workflows/builder_one.yml b/.github/workflows/builder_one.yml new file mode 100644 index 0000000..5555a20 --- /dev/null +++ b/.github/workflows/builder_one.yml @@ -0,0 +1,406 @@ +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + +name: CLI Builder Pi[2-3] + +on: + # Trigger the workflow on push or pull request, + # but only for the master branch + push: + branches: + - master + paths-ignore: + - '**.md' + pull_request: + branches: + - master + paths-ignore: + - '**.md' + +env: + CURL_VERSION: 7.68.0 + CCACHE_COMPRESS: 1 + CCACHE_DIR: $HOME/.ccache + USER_SFTP: ${{ secrets.USER_SFTP }} + PASSWORD_SFTP: ${{ secrets.PASSWORD_SFTP }} + +jobs: + builder-buster_0: + name: BASE GCC-8.3.0 32-bit Buster Pi[2-3] + runs-on: ubuntu-latest + env: + GCC_VERSION: 8.3.0 + RPIOS_TYPE: buster + RPI_TYPE: 2-3 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLIBB_32b + chmod +x build-scripts/CLI/CLIBB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-buster_1: + name: Cross GCC-9.2.0 32-bit Buster Pi[2-3] + needs: builder-buster_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: buster + RPI_TYPE: 2-3 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLICTB_32b + chmod +x build-scripts/CLI/CLICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-buster_2: + name: Native GCC-9.2.0 32-bit Buster Pi[2-3] + needs: [builder-buster_0, builder-buster_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: buster + RPI_TYPE: 2-3 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLINTB_32b + chmod +x build-scripts/CLI/CLINTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + + builder-stretch_0: + name: BASE GCC-6.3.0 32-bit Stretch Pi[2-3] + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPIOS_TYPE: stretch + RPI_TYPE: 2-3 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLIBB_32b + chmod +x build-scripts/CLI/CLIBB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-stretch_1: + name: Cross GCC-9.2.0 32-bit Stretch Pi[2-3] + needs: builder-stretch_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: stretch + RPI_TYPE: 2-3 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLICTB_32b + chmod +x build-scripts/CLI/CLICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-stretch_2: + name: Native GCC-9.2.0 32-bit Stretch Pi[2-3] + needs: [builder-stretch_0, builder-stretch_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: stretch + RPI_TYPE: 2-3 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLINTB_32b + chmod +x build-scripts/CLI/CLINTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + + builder-64_0: + name: BASE GCC-6.3.0 64-bit Pi[2-3] + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPI_TYPE: 64 + OS_TYPE: 1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLIBB_64b + chmod +x build-scripts/CLI/CLIBB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_1: + name: Cross GCC-9.2.0 64-bit Pi[2-3] + needs: builder-64_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPI_TYPE: 64 + OS_TYPE: 1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLICTB_64b + chmod +x build-scripts/CLI/CLICTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_64b -g $GCC_VERSION -t $OS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_2: + name: Native GCC-9.2.0 64-bit Pi[2-3] + needs: [builder-64_0, builder-64_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPI_TYPE: 64 + OS_TYPE: 1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLINTB_64b + chmod +x build-scripts/CLI/CLINTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLINTB_64b -g $GCC_VERSION -t $OS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() \ No newline at end of file diff --git a/.github/workflows/builder_two.yml b/.github/workflows/builder_two.yml new file mode 100644 index 0000000..1a9f784 --- /dev/null +++ b/.github/workflows/builder_two.yml @@ -0,0 +1,406 @@ +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + +name: CLI Builder Pi[3+] + +on: + # Trigger the workflow on push or pull request, + # but only for the master branch + push: + branches: + - master + paths-ignore: + - '**.md' + pull_request: + branches: + - master + paths-ignore: + - '**.md' + +env: + CURL_VERSION: 7.68.0 + CCACHE_COMPRESS: 1 + CCACHE_DIR: $HOME/.ccache + USER_SFTP: ${{ secrets.USER_SFTP }} + PASSWORD_SFTP: ${{ secrets.PASSWORD_SFTP }} + +jobs: + builder-buster_0: + name: BASE GCC-8.3.0 32-bit Buster Pi[3+] + runs-on: ubuntu-latest + env: + GCC_VERSION: 8.3.0 + RPIOS_TYPE: buster + RPI_TYPE: 3+ + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLIBB_32b + chmod +x build-scripts/CLI/CLIBB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-buster_1: + name: Cross GCC-9.2.0 32-bit Buster Pi[3+] + needs: builder-buster_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: buster + RPI_TYPE: 3+ + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLICTB_32b + chmod +x build-scripts/CLI/CLICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-buster_2: + name: Native GCC-9.2.0 32-bit Buster Pi[3+] + needs: [builder-buster_0, builder-buster_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: buster + RPI_TYPE: 3+ + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLINTB_32b + chmod +x build-scripts/CLI/CLINTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + + builder-stretch_0: + name: BASE GCC-6.3.0 32-bit Stretch Pi[3+] + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPIOS_TYPE: stretch + RPI_TYPE: 3+ + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLIBB_32b + chmod +x build-scripts/CLI/CLIBB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-stretch_1: + name: Cross GCC-9.2.0 32-bit Stretch Pi[3+] + needs: builder-stretch_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: stretch + RPI_TYPE: 3+ + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLICTB_32b + chmod +x build-scripts/CLI/CLICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-stretch_2: + name: Native GCC-9.2.0 32-bit Stretch Pi[3+] + needs: [builder-stretch_0, builder-stretch_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPIOS_TYPE: stretch + RPI_TYPE: 3+ + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLINTB_32b + chmod +x build-scripts/CLI/CLINTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + + builder-64_0: + name: BASE GCC-6.3.0 64-bit Pi[3+] + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPI_TYPE: 64 + OS_TYPE: 1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLIBB_64b + chmod +x build-scripts/CLI/CLIBB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_1: + name: Cross GCC-9.2.0 64-bit Pi[3+] + needs: builder-64_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPI_TYPE: 64 + OS_TYPE: 1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLICTB_64b + chmod +x build-scripts/CLI/CLICTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLICTB_64b -g $GCC_VERSION -t $OS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_2: + name: Native GCC-9.2.0 64-bit Pi[3+] + needs: [builder-64_0, builder-64_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPI_TYPE: 64 + OS_TYPE: 1 + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CLI/CLINTB_64b + chmod +x build-scripts/CLI/CLINTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CLI/CLINTB_64b -g $GCC_VERSION -t $OS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_deployer + shell: bash + if: success() \ No newline at end of file diff --git a/.github/workflows/builder_zero.yml b/.github/workflows/builder_zero.yml index 606b94f..1dad8e9 100644 --- a/.github/workflows/builder_zero.yml +++ b/.github/workflows/builder_zero.yml @@ -153,7 +153,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -273,7 +273,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -393,7 +393,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_64b -g $GCC_VERSION -t $OS_TYPE + run: bash build-scripts/CLI/CLINTB_64b -g $GCC_VERSION -t $OS_TYPE shell: bash if: success() - name: before_script diff --git a/build-scripts/CLI/CLINTB_32b b/build-scripts/CLI/CLINTB_32b index 1fa6427..eb0fd9b 100644 --- a/build-scripts/CLI/CLINTB_32b +++ b/build-scripts/CLI/CLINTB_32b @@ -126,8 +126,7 @@ if ! [[ "$FPU" =~ ^(vfp|neon-vfpv4|neon-fp-armv8)$ ]]; then exit 1 ; fi if [ "$BUILDDIR" = "" ]; then exit 1 ; fi if [ "$LANGUAGES" = "" ]; then exit 1 ; fi - -URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/CLI%20Base" +URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains" if [ "$RPIOS_TYPE" = "buster" ]; then URL="$URL/Buster/GCC%20$GCCBASE_VERSION" diff --git a/build-scripts/CLI/CLINTB_64b b/build-scripts/CLI/CLINTB_64b index 4a83a2f..e4fd443 100644 --- a/build-scripts/CLI/CLINTB_64b +++ b/build-scripts/CLI/CLINTB_64b @@ -111,8 +111,8 @@ if [ "$FOLDER_VERSION" != "64" ]; then exit 1 ; fi if [ "$BUILDDIR" = "" ]; then exit 1 ; fi if [ "$LANGUAGES" = "" ]; then exit 1 ; fi -URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/CLI%20Base" -if [ "$RPI_TYPE" = "64" ]; then URL="$URL/64/GCC%20$GCCBASE_VERSION/"; fi +URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains" +if [ "$RPI_TYPE" = "64" ]; then URL="$URL/GCC%20$GCCBASE_VERSION/"; fi echo "Downloading and Setting up build directories" #setup paths From 6f2ca9d1ff66f0e271be6fa94a1b672ff8338cf8 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sun, 2 Feb 2020 21:31:58 +0530 Subject: [PATCH 42/51] Various BugFixes --- build-scripts/CLI/CLICTB_32b | 4 ++-- build-scripts/CLI/CLICTB_64b | 4 ++-- build-scripts/CLI/CLINTB_32b | 22 ++++++---------------- build-scripts/CLI/CLINTB_64b | 21 +++++---------------- 4 files changed, 15 insertions(+), 36 deletions(-) diff --git a/build-scripts/CLI/CLICTB_32b b/build-scripts/CLI/CLICTB_32b index 6be2290..4b5c864 100644 --- a/build-scripts/CLI/CLICTB_32b +++ b/build-scripts/CLI/CLICTB_32b @@ -171,8 +171,8 @@ mkdir -p "$INSTALLDIR" cd "$DOWNLOADDIR" || exit -if [ ! -d "gcc-$GCCBASE_VERSION" ]; then - if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi +if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then + wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* $INSTALLDIR rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION diff --git a/build-scripts/CLI/CLICTB_64b b/build-scripts/CLI/CLICTB_64b index 255bc97..dd4eb8f 100644 --- a/build-scripts/CLI/CLICTB_64b +++ b/build-scripts/CLI/CLICTB_64b @@ -127,8 +127,8 @@ mkdir -p "$INSTALLDIR" cd "$DOWNLOADDIR" || exit #download binaries if not found -if [ ! -d "gcc-$GCCBASE_VERSION" ]; then - if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi +if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then + wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz mv -v cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION/* $INSTALLDIR rm -rf cross-pi-gcc-$GCCBASE_VERSION-$FOLDER_VERSION diff --git a/build-scripts/CLI/CLINTB_32b b/build-scripts/CLI/CLINTB_32b index eb0fd9b..3d5d0a5 100644 --- a/build-scripts/CLI/CLINTB_32b +++ b/build-scripts/CLI/CLINTB_32b @@ -89,16 +89,6 @@ else exit fi -#collect dependencies versions from raspberry pi os -if [ "$RPIOS_TYPE" = "stretch" ] || [ "$GCC_VERSION" \< "8.3.0" ]; then - GCCBASE_VERSION=6.3.0 -elif [ "$RPIOS_TYPE" = "buster" ]; then - GCCBASE_VERSION=8.3.0 -else - echo "Invalid argument value: $RPIOS_TYPE" - exit -fi - #collect build directory if not defined if [ "$BUILDDIR" = "" ]; then #select temp directory as default @@ -119,7 +109,6 @@ GDB_VERSION=8.3.1 #validate env variables if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi -if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi if ! [[ "$FOLDER_VERSION" =~ ^(0|1|2)$ ]]; then exit 1 ; fi if ! [[ "$ARCH" =~ ^(armv6|armv7-a|armv8-a)$ ]]; then exit 1 ; fi if ! [[ "$FPU" =~ ^(vfp|neon-vfpv4|neon-fp-armv8)$ ]]; then exit 1 ; fi @@ -129,7 +118,7 @@ if [ "$LANGUAGES" = "" ]; then exit 1 ; fi URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains" if [ "$RPIOS_TYPE" = "buster" ]; then - URL="$URL/Buster/GCC%20$GCCBASE_VERSION" + URL="$URL/Buster/GCC%20$GCC_VERSION" if [ "$RPI_TYPE" = "0-1" ]; then URL="$URL/Raspberry%20Pi%201%2C%20Zero/" elif [ "$RPI_TYPE" = "2-3" ]; then @@ -141,7 +130,7 @@ if [ "$RPIOS_TYPE" = "buster" ]; then exit 1; fi elif [ "$RPIOS_TYPE" = "stretch" ]; then - URL="$URL/Stretch/GCC%20$GCCBASE_VERSION" + URL="$URL/Stretch/GCC%20$GCC_VERSION" if [ "$RPI_TYPE" = "0-1" ]; then URL="$URL/Raspberry%20Pi%201%2C%20Zero/" elif [ "$RPI_TYPE" = "2-3" ]; then @@ -166,9 +155,10 @@ mkdir -p "$DOWNLOADDIR" cd "$DOWNLOADDIR" || exit -if [ ! -d "gcc-$GCCBASE_VERSION" ]; then - if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -q "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi - tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz +if [ ! -f "cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then + wget -s "${URL}cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" + tar xf cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz + mv cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION $BUILDDIR rm ./*.tar.* fi if [ ! -d "gdb-$GDB_VERSION" ]; then diff --git a/build-scripts/CLI/CLINTB_64b b/build-scripts/CLI/CLINTB_64b index e4fd443..933a221 100644 --- a/build-scripts/CLI/CLINTB_64b +++ b/build-scripts/CLI/CLINTB_64b @@ -70,17 +70,6 @@ else fi -#collect dependencies versions from raspberry pi os -if [ "$OS_TYPE" = "1" ] || [ "$GCC_VERSION" \< "8.3.0" ] ; then - GCCBASE_VERSION=6.3.0 -elif [ "$OS_TYPE" = "2" ]; then - GCCBASE_VERSION=8.3.0 -else - echo "Invalid argument value: $OS_TYPE" - exit -fi - - #collect build directory if not defined if [ "$BUILDDIR" = "" ]; then #select temp directory @@ -105,14 +94,13 @@ GDB_VERSION=8.3.1 #validate env variables if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi -if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi if [ "$ARCH" != "armv8-a+fp+simd" ]; then exit 1 ; fi if [ "$FOLDER_VERSION" != "64" ]; then exit 1 ; fi if [ "$BUILDDIR" = "" ]; then exit 1 ; fi if [ "$LANGUAGES" = "" ]; then exit 1 ; fi URL="https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains" -if [ "$RPI_TYPE" = "64" ]; then URL="$URL/GCC%20$GCCBASE_VERSION/"; fi +if [ "$RPI_TYPE" = "64" ]; then URL="$URL/GCC%20$GCC_VERSION/"; fi echo "Downloading and Setting up build directories" #setup paths @@ -122,9 +110,10 @@ mkdir -p "$DOWNLOADDIR" cd "$DOWNLOADDIR" || exit #download binaries if not found -if [ ! -d "gcc-$GCCBASE_VERSION" ]; then - if [ ! -f "cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz" ]; then wget -s "${URL}cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz"; fi - tar xf cross-gcc-$GCCBASE_VERSION-pi_$RPI_TYPE.tar.gz +if [ ! -f "cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then + wget -s "${URL}cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" + tar xf cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz + mv cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION $BUILDDIR rm ./*.tar.* fi if [ ! -d "gdb-$GDB_VERSION" ]; then From 96f1efaecece8793a45ce1767501eee5e36354f5 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Sun, 2 Feb 2020 23:11:38 +0530 Subject: [PATCH 43/51] Fixed Typo --- build-scripts/CLI/CLINTB_32b | 2 +- build-scripts/CLI/CLINTB_64b | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build-scripts/CLI/CLINTB_32b b/build-scripts/CLI/CLINTB_32b index 3d5d0a5..6aea30b 100644 --- a/build-scripts/CLI/CLINTB_32b +++ b/build-scripts/CLI/CLINTB_32b @@ -156,7 +156,7 @@ mkdir -p "$DOWNLOADDIR" cd "$DOWNLOADDIR" || exit if [ ! -f "cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then - wget -s "${URL}cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" + wget -q "${URL}cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" tar xf cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz mv cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION $BUILDDIR rm ./*.tar.* diff --git a/build-scripts/CLI/CLINTB_64b b/build-scripts/CLI/CLINTB_64b index 933a221..457248b 100644 --- a/build-scripts/CLI/CLINTB_64b +++ b/build-scripts/CLI/CLINTB_64b @@ -111,7 +111,7 @@ cd "$DOWNLOADDIR" || exit #download binaries if not found if [ ! -f "cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" ]; then - wget -s "${URL}cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" + wget -q "${URL}cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz" tar xf cross-gcc-$GCC_VERSION-pi_$RPI_TYPE.tar.gz mv cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION $BUILDDIR rm ./*.tar.* From 7fd28701f61896f9e9ad16b80e528d1fc247ce20 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Tue, 4 Feb 2020 21:58:24 +0530 Subject: [PATCH 44/51] Major enhancements and Bug Fixes - Fixed typos and missing definitions in build-scripts. - Removed Obsolete Toolchain Binaries. - Removed redundant 9.1.0 and 8.3.0 builds from toolchains. - Added new GitHub CI workflow `builder_64.yml` for 64-bit toolchain builds. - Replaced GZIP with PIGZ as TAR backend for parallel compressed builds. - Refractored code and replaces `CLI` with `CI`. - Added new bash utility script `SF_docs_deployer` for auto deploying docs to SourceForge Server - Added new `docs` directory for storing SourceForge readme doc files. - Revamped `README.md` with better readability. - Added necessary updated information to docs. - Removed redundant information from docs. - Added new logos and badges. - Added descriptive and beautiful diagrams. --- .../{builder_zero.yml => builder_0_1.yml} | 214 +++++-------- .../{builder_one.yml => builder_2_3.yml} | 208 +++++-------- .../{builder_two.yml => builder_3_plus.yml} | 208 +++++-------- .github/workflows/builder_64.yml | 281 ++++++++++++++++++ README.md | 212 ++++++++----- build-scripts/{CLI/CLIBB_32b => CI/CIBB_32b} | 21 +- build-scripts/{CLI/CLIBB_64b => CI/CIBB_64b} | 21 +- .../{CLI/CLICTB_32b => CI/CICTB_32b} | 0 .../{CLI/CLICTB_64b => CI/CICTB_64b} | 0 .../{CLI/CLINTB_32b => CI/CINTB_32b} | 0 .../{CLI/CLINTB_64b => CI/CINTB_64b} | 0 build-scripts/CI/README.md | 107 +++++++ build-scripts/README.md | 105 +++---- build-scripts/RTBuilder_32b | 4 +- build-scripts/RTBuilder_64b | 4 +- docs/base-gcc.md | 198 ++++++++++++ docs/cross-gcc-buster.md | 199 +++++++++++++ docs/cross-gcc-stretch.md | 198 ++++++++++++ docs/cross-gcc.md | 198 ++++++++++++ docs/cross-gcc64.md | 198 ++++++++++++ docs/native-gcc-buster.md | 198 ++++++++++++ docs/native-gcc-stretch.md | 199 +++++++++++++ docs/native-gcc.md | 199 +++++++++++++ docs/native-gcc64.md | 198 ++++++++++++ patches/README.md | 51 +--- utils/README.md | 48 +-- utils/SF_deployer | 2 +- utils/SF_docs_deployer | 92 ++++++ 28 files changed, 2694 insertions(+), 669 deletions(-) rename .github/workflows/{builder_zero.yml => builder_0_1.yml} (63%) rename .github/workflows/{builder_one.yml => builder_2_3.yml} (64%) rename .github/workflows/{builder_two.yml => builder_3_plus.yml} (64%) create mode 100644 .github/workflows/builder_64.yml rename build-scripts/{CLI/CLIBB_32b => CI/CIBB_32b} (96%) rename build-scripts/{CLI/CLIBB_64b => CI/CIBB_64b} (95%) rename build-scripts/{CLI/CLICTB_32b => CI/CICTB_32b} (100%) rename build-scripts/{CLI/CLICTB_64b => CI/CICTB_64b} (100%) rename build-scripts/{CLI/CLINTB_32b => CI/CINTB_32b} (100%) rename build-scripts/{CLI/CLINTB_64b => CI/CINTB_64b} (100%) create mode 100644 build-scripts/CI/README.md create mode 100644 docs/base-gcc.md create mode 100644 docs/cross-gcc-buster.md create mode 100644 docs/cross-gcc-stretch.md create mode 100644 docs/cross-gcc.md create mode 100644 docs/cross-gcc64.md create mode 100644 docs/native-gcc-buster.md create mode 100644 docs/native-gcc-stretch.md create mode 100644 docs/native-gcc.md create mode 100644 docs/native-gcc64.md create mode 100644 utils/SF_docs_deployer diff --git a/.github/workflows/builder_zero.yml b/.github/workflows/builder_0_1.yml similarity index 63% rename from .github/workflows/builder_zero.yml rename to .github/workflows/builder_0_1.yml index 1dad8e9..3a0088c 100644 --- a/.github/workflows/builder_zero.yml +++ b/.github/workflows/builder_0_1.yml @@ -21,7 +21,7 @@ # along with this program. If not, see . # =============================================== -name: CLI Builder Pi[0-1] +name: CI Builder Pi[0-1] on: # Trigger the workflow on push or pull request, @@ -51,19 +51,23 @@ jobs: env: GCC_VERSION: 8.3.0 RPIOS_TYPE: buster - RPI_TYPE: 0-1 + RPI_TYPE: 0-1 + COMPILER_TYPE: CROSS + BASE: true steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLIBB_32b - chmod +x build-scripts/CLI/CLIBB_32b + dos2unix build-scripts/CI/CIBB_32b + chmod +x build-scripts/CI/CIBB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -73,7 +77,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -81,6 +85,12 @@ jobs: shell: bash if: success() - name: after_success + run: | + cp docs/base-gcc.md $HOME/README.md + bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -91,19 +101,22 @@ jobs: env: GCC_VERSION: 9.2.0 RPIOS_TYPE: buster - RPI_TYPE: 0-1 + RPI_TYPE: 0-1 + COMPILER_TYPE: CROSS steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLICTB_32b - chmod +x build-scripts/CLI/CLICTB_32b + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -113,7 +126,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -121,6 +134,12 @@ jobs: shell: bash if: success() - name: after_success + run: | + cp docs/cross-gcc.md $HOME/root/README.md + bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -131,19 +150,22 @@ jobs: env: GCC_VERSION: 9.2.0 RPIOS_TYPE: buster - RPI_TYPE: 0-1 + RPI_TYPE: 0-1 + COMPILER_TYPE: NATIVE steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLINTB_32b - chmod +x build-scripts/CLI/CLINTB_32b + dos2unix build-scripts/CI/CINTB_32b + chmod +x build-scripts/CI/CINTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -153,7 +175,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -161,6 +183,10 @@ jobs: shell: bash if: success() - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -171,19 +197,23 @@ jobs: env: GCC_VERSION: 6.3.0 RPIOS_TYPE: stretch - RPI_TYPE: 0-1 + RPI_TYPE: 0-1 + COMPILER_TYPE: CROSS + BASE: true steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLIBB_32b - chmod +x build-scripts/CLI/CLIBB_32b + dos2unix build-scripts/CI/CIBB_32b + chmod +x build-scripts/CI/CIBB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -193,7 +223,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -201,6 +231,12 @@ jobs: shell: bash if: success() - name: after_success + run: | + cp docs/native-gcc.md $HOME/root/README.md + bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -211,19 +247,22 @@ jobs: env: GCC_VERSION: 9.2.0 RPIOS_TYPE: stretch - RPI_TYPE: 0-1 + RPI_TYPE: 0-1 + COMPILER_TYPE: CROSS steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLICTB_32b - chmod +x build-scripts/CLI/CLICTB_32b + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -233,7 +272,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -241,6 +280,10 @@ jobs: shell: bash if: success() - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -252,98 +295,21 @@ jobs: GCC_VERSION: 9.2.0 RPIOS_TYPE: stretch RPI_TYPE: 0-1 + COMPILER_TYPE: NATIVE steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLINTB_32b - chmod +x build-scripts/CLI/CLINTB_32b - dos2unix patches/curl_stfp_patcher - chmod +x patches/curl_stfp_patcher - dos2unix utils/SF_deployer - chmod +x utils/SF_deployer - if: success() - - name: install - run: | - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget - sudo /usr/sbin/update-ccache-symlinks - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc - source ~/.bashrc && echo $PATH - if: success() - - name: script - run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE - shell: bash - if: success() - - name: before_script - run: bash patches/curl_stfp_patcher - shell: bash - if: success() - - name: after_success - run: bash utils/SF_deployer - shell: bash - if: success() - - builder-64_0: - name: BASE GCC-6.3.0 64-bit Pi[0-1] - runs-on: ubuntu-latest - env: - GCC_VERSION: 6.3.0 - RPI_TYPE: 64 - OS_TYPE: 1 - steps: - - uses: actions/checkout@v2 - - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLIBB_64b - chmod +x build-scripts/CLI/CLIBB_64b - dos2unix patches/curl_stfp_patcher - chmod +x patches/curl_stfp_patcher - dos2unix utils/SF_deployer - chmod +x utils/SF_deployer - if: success() - - name: install - run: | - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget - sudo /usr/sbin/update-ccache-symlinks - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc - source ~/.bashrc && echo $PATH - if: success() - - name: script - run: bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE - shell: bash - if: success() - - name: before_script - run: bash patches/curl_stfp_patcher - shell: bash - if: success() - - name: after_success - run: bash utils/SF_deployer - shell: bash - if: success() - builder-64_1: - name: Cross GCC-9.2.0 64-bit Pi[0-1] - needs: builder-64_0 - runs-on: ubuntu-latest - env: - GCC_VERSION: 9.2.0 - RPI_TYPE: 64 - OS_TYPE: 1 - steps: - - uses: actions/checkout@v2 - - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLICTB_64b - chmod +x build-scripts/CLI/CLICTB_64b + dos2unix build-scripts/CI/CINTB_32b + chmod +x build-scripts/CI/CINTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -353,7 +319,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_64b -g $GCC_VERSION -t $OS_TYPE + run: bash build-scripts/CI/CINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -361,46 +327,10 @@ jobs: shell: bash if: success() - name: after_success - run: bash utils/SF_deployer + run: bash utils/SF_docs_deployer shell: bash if: success() - builder-64_2: - name: Native GCC-9.2.0 64-bit Pi[0-1] - needs: [builder-64_0, builder-64_1] - runs-on: ubuntu-latest - env: - GCC_VERSION: 9.2.0 - RPI_TYPE: 64 - OS_TYPE: 1 - steps: - - uses: actions/checkout@v2 - - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLINTB_64b - chmod +x build-scripts/CLI/CLINTB_64b - dos2unix patches/curl_stfp_patcher - chmod +x patches/curl_stfp_patcher - dos2unix utils/SF_deployer - chmod +x utils/SF_deployer - if: success() - - name: install - run: | - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget - sudo /usr/sbin/update-ccache-symlinks - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc - source ~/.bashrc && echo $PATH - if: success() - - name: script - run: bash build-scripts/CLI/CLINTB_64b -g $GCC_VERSION -t $OS_TYPE - shell: bash - if: success() - - name: before_script - run: bash patches/curl_stfp_patcher - shell: bash - if: success() - - name: after_success + - name: deploy run: bash utils/SF_deployer shell: bash if: success() \ No newline at end of file diff --git a/.github/workflows/builder_one.yml b/.github/workflows/builder_2_3.yml similarity index 64% rename from .github/workflows/builder_one.yml rename to .github/workflows/builder_2_3.yml index 5555a20..019c7e1 100644 --- a/.github/workflows/builder_one.yml +++ b/.github/workflows/builder_2_3.yml @@ -21,7 +21,7 @@ # along with this program. If not, see . # =============================================== -name: CLI Builder Pi[2-3] +name: CI Builder Pi[2-3] on: # Trigger the workflow on push or pull request, @@ -51,19 +51,23 @@ jobs: env: GCC_VERSION: 8.3.0 RPIOS_TYPE: buster - RPI_TYPE: 2-3 + RPI_TYPE: 2-3 + COMPILER_TYPE: CROSS + BASE: true steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLIBB_32b - chmod +x build-scripts/CLI/CLIBB_32b + dos2unix build-scripts/CI/CIBB_32b + chmod +x build-scripts/CI/CIBB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -73,7 +77,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -81,6 +85,10 @@ jobs: shell: bash if: success() - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -91,19 +99,22 @@ jobs: env: GCC_VERSION: 9.2.0 RPIOS_TYPE: buster - RPI_TYPE: 2-3 + RPI_TYPE: 2-3 + COMPILER_TYPE: CROSS steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLICTB_32b - chmod +x build-scripts/CLI/CLICTB_32b + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -113,7 +124,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -121,6 +132,12 @@ jobs: shell: bash if: success() - name: after_success + run: | + cp docs/cross-gcc-buster.md $HOME/README.md + bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -132,18 +149,21 @@ jobs: GCC_VERSION: 9.2.0 RPIOS_TYPE: buster RPI_TYPE: 2-3 + COMPILER_TYPE: NATIVE steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLINTB_32b - chmod +x build-scripts/CLI/CLINTB_32b + dos2unix build-scripts/CI/CINTB_32b + chmod +x build-scripts/CI/CINTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -153,7 +173,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -161,6 +181,10 @@ jobs: shell: bash if: success() - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -171,19 +195,23 @@ jobs: env: GCC_VERSION: 6.3.0 RPIOS_TYPE: stretch - RPI_TYPE: 2-3 + RPI_TYPE: 2-3 + COMPILER_TYPE: CROSS + BASE: true steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLIBB_32b - chmod +x build-scripts/CLI/CLIBB_32b + dos2unix build-scripts/CI/CIBB_32b + chmod +x build-scripts/CI/CIBB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -193,7 +221,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -201,6 +229,10 @@ jobs: shell: bash if: success() - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -212,18 +244,21 @@ jobs: GCC_VERSION: 9.2.0 RPIOS_TYPE: stretch RPI_TYPE: 2-3 + COMPILER_TYPE: CROSS steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLICTB_32b - chmod +x build-scripts/CLI/CLICTB_32b + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -233,7 +268,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -241,6 +276,12 @@ jobs: shell: bash if: success() - name: after_success + run: | + cp docs/cross-gcc-stretch.md $HOME/README.md + bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -252,58 +293,21 @@ jobs: GCC_VERSION: 9.2.0 RPIOS_TYPE: stretch RPI_TYPE: 2-3 + COMPILER_TYPE: NATIVE steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLINTB_32b - chmod +x build-scripts/CLI/CLINTB_32b - dos2unix patches/curl_stfp_patcher - chmod +x patches/curl_stfp_patcher - dos2unix utils/SF_deployer - chmod +x utils/SF_deployer - if: success() - - name: install - run: | - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget - sudo /usr/sbin/update-ccache-symlinks - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc - source ~/.bashrc && echo $PATH - if: success() - - name: script - run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE - shell: bash - if: success() - - name: before_script - run: bash patches/curl_stfp_patcher - shell: bash - if: success() - - name: after_success - run: bash utils/SF_deployer - shell: bash - if: success() - - builder-64_0: - name: BASE GCC-6.3.0 64-bit Pi[2-3] - runs-on: ubuntu-latest - env: - GCC_VERSION: 6.3.0 - RPI_TYPE: 64 - OS_TYPE: 1 - steps: - - uses: actions/checkout@v2 - - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLIBB_64b - chmod +x build-scripts/CLI/CLIBB_64b + dos2unix build-scripts/CI/CINTB_32b + chmod +x build-scripts/CI/CINTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -313,7 +317,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE + run: bash build-scripts/CI/CINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -321,86 +325,10 @@ jobs: shell: bash if: success() - name: after_success - run: bash utils/SF_deployer + run: bash utils/SF_docs_deployer shell: bash if: success() - builder-64_1: - name: Cross GCC-9.2.0 64-bit Pi[2-3] - needs: builder-64_0 - runs-on: ubuntu-latest - env: - GCC_VERSION: 9.2.0 - RPI_TYPE: 64 - OS_TYPE: 1 - steps: - - uses: actions/checkout@v2 - - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLICTB_64b - chmod +x build-scripts/CLI/CLICTB_64b - dos2unix patches/curl_stfp_patcher - chmod +x patches/curl_stfp_patcher - dos2unix utils/SF_deployer - chmod +x utils/SF_deployer - if: success() - - name: install - run: | - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget - sudo /usr/sbin/update-ccache-symlinks - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc - source ~/.bashrc && echo $PATH - if: success() - - name: script - run: bash build-scripts/CLI/CLICTB_64b -g $GCC_VERSION -t $OS_TYPE - shell: bash - if: success() - - name: before_script - run: bash patches/curl_stfp_patcher - shell: bash - if: success() - - name: after_success - run: bash utils/SF_deployer - shell: bash - if: success() - builder-64_2: - name: Native GCC-9.2.0 64-bit Pi[2-3] - needs: [builder-64_0, builder-64_1] - runs-on: ubuntu-latest - env: - GCC_VERSION: 9.2.0 - RPI_TYPE: 64 - OS_TYPE: 1 - steps: - - uses: actions/checkout@v2 - - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLINTB_64b - chmod +x build-scripts/CLI/CLINTB_64b - dos2unix patches/curl_stfp_patcher - chmod +x patches/curl_stfp_patcher - dos2unix utils/SF_deployer - chmod +x utils/SF_deployer - if: success() - - name: install - run: | - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget - sudo /usr/sbin/update-ccache-symlinks - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc - source ~/.bashrc && echo $PATH - if: success() - - name: script - run: bash build-scripts/CLI/CLINTB_64b -g $GCC_VERSION -t $OS_TYPE - shell: bash - if: success() - - name: before_script - run: bash patches/curl_stfp_patcher - shell: bash - if: success() - - name: after_success + - name: deploy run: bash utils/SF_deployer shell: bash if: success() \ No newline at end of file diff --git a/.github/workflows/builder_two.yml b/.github/workflows/builder_3_plus.yml similarity index 64% rename from .github/workflows/builder_two.yml rename to .github/workflows/builder_3_plus.yml index 1a9f784..1e68da2 100644 --- a/.github/workflows/builder_two.yml +++ b/.github/workflows/builder_3_plus.yml @@ -21,7 +21,7 @@ # along with this program. If not, see . # =============================================== -name: CLI Builder Pi[3+] +name: CI Builder Pi[3+] on: # Trigger the workflow on push or pull request, @@ -51,19 +51,23 @@ jobs: env: GCC_VERSION: 8.3.0 RPIOS_TYPE: buster - RPI_TYPE: 3+ + RPI_TYPE: 3+ + COMPILER_TYPE: CROSS + BASE: true steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLIBB_32b - chmod +x build-scripts/CLI/CLIBB_32b + dos2unix build-scripts/CI/CIBB_32b + chmod +x build-scripts/CI/CIBB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -73,7 +77,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -81,6 +85,10 @@ jobs: shell: bash if: success() - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -91,19 +99,22 @@ jobs: env: GCC_VERSION: 9.2.0 RPIOS_TYPE: buster - RPI_TYPE: 3+ + RPI_TYPE: 3+ + COMPILER_TYPE: CROSS steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLICTB_32b - chmod +x build-scripts/CLI/CLICTB_32b + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -113,7 +124,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -121,6 +132,10 @@ jobs: shell: bash if: success() - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -132,18 +147,21 @@ jobs: GCC_VERSION: 9.2.0 RPIOS_TYPE: buster RPI_TYPE: 3+ + COMPILER_TYPE: NATIVE steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLINTB_32b - chmod +x build-scripts/CLI/CLINTB_32b + dos2unix build-scripts/CI/CINTB_32b + chmod +x build-scripts/CI/CINTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -153,7 +171,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -161,6 +179,12 @@ jobs: shell: bash if: success() - name: after_success + run: | + cp docs/native-gcc-buster.md $HOME/README.md + bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -171,19 +195,23 @@ jobs: env: GCC_VERSION: 6.3.0 RPIOS_TYPE: stretch - RPI_TYPE: 3+ + RPI_TYPE: 3+ + COMPILER_TYPE: CROSS + BASE: true steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLIBB_32b - chmod +x build-scripts/CLI/CLIBB_32b + dos2unix build-scripts/CI/CIBB_32b + chmod +x build-scripts/CI/CIBB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -193,7 +221,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -201,6 +229,10 @@ jobs: shell: bash if: success() - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -211,19 +243,22 @@ jobs: env: GCC_VERSION: 9.2.0 RPIOS_TYPE: stretch - RPI_TYPE: 3+ + RPI_TYPE: 3+ + COMPILER_TYPE: CROSS steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLICTB_32b - chmod +x build-scripts/CLI/CLICTB_32b + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -233,7 +268,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -241,6 +276,10 @@ jobs: shell: bash if: success() - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy run: bash utils/SF_deployer shell: bash if: success() @@ -252,98 +291,21 @@ jobs: GCC_VERSION: 9.2.0 RPIOS_TYPE: stretch RPI_TYPE: 3+ + COMPILER_TYPE: NATIVE steps: - uses: actions/checkout@v2 - name: before_install run: | sudo apt-get update -qq sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLINTB_32b - chmod +x build-scripts/CLI/CLINTB_32b - dos2unix patches/curl_stfp_patcher - chmod +x patches/curl_stfp_patcher - dos2unix utils/SF_deployer - chmod +x utils/SF_deployer - if: success() - - name: install - run: | - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget - sudo /usr/sbin/update-ccache-symlinks - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc - source ~/.bashrc && echo $PATH - if: success() - - name: script - run: bash build-scripts/CLI/CLINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE - shell: bash - if: success() - - name: before_script - run: bash patches/curl_stfp_patcher - shell: bash - if: success() - - name: after_success - run: bash utils/SF_deployer - shell: bash - if: success() - - builder-64_0: - name: BASE GCC-6.3.0 64-bit Pi[3+] - runs-on: ubuntu-latest - env: - GCC_VERSION: 6.3.0 - RPI_TYPE: 64 - OS_TYPE: 1 - steps: - - uses: actions/checkout@v2 - - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLIBB_64b - chmod +x build-scripts/CLI/CLIBB_64b - dos2unix patches/curl_stfp_patcher - chmod +x patches/curl_stfp_patcher - dos2unix utils/SF_deployer - chmod +x utils/SF_deployer - if: success() - - name: install - run: | - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget - sudo /usr/sbin/update-ccache-symlinks - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc - source ~/.bashrc && echo $PATH - if: success() - - name: script - run: bash build-scripts/CLI/CLIBB_64b -g $GCC_VERSION -t $OS_TYPE - shell: bash - if: success() - - name: before_script - run: bash patches/curl_stfp_patcher - shell: bash - if: success() - - name: after_success - run: bash utils/SF_deployer - shell: bash - if: success() - builder-64_1: - name: Cross GCC-9.2.0 64-bit Pi[3+] - needs: builder-64_0 - runs-on: ubuntu-latest - env: - GCC_VERSION: 9.2.0 - RPI_TYPE: 64 - OS_TYPE: 1 - steps: - - uses: actions/checkout@v2 - - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLICTB_64b - chmod +x build-scripts/CLI/CLICTB_64b + dos2unix build-scripts/CI/CINTB_32b + chmod +x build-scripts/CI/CINTB_32b dos2unix patches/curl_stfp_patcher chmod +x patches/curl_stfp_patcher dos2unix utils/SF_deployer chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer if: success() - name: install run: | @@ -353,7 +315,7 @@ jobs: source ~/.bashrc && echo $PATH if: success() - name: script - run: bash build-scripts/CLI/CLICTB_64b -g $GCC_VERSION -t $OS_TYPE + run: bash build-scripts/CI/CINTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash if: success() - name: before_script @@ -361,46 +323,12 @@ jobs: shell: bash if: success() - name: after_success - run: bash utils/SF_deployer - shell: bash - if: success() - builder-64_2: - name: Native GCC-9.2.0 64-bit Pi[3+] - needs: [builder-64_0, builder-64_1] - runs-on: ubuntu-latest - env: - GCC_VERSION: 9.2.0 - RPI_TYPE: 64 - OS_TYPE: 1 - steps: - - uses: actions/checkout@v2 - - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq dos2unix -y - dos2unix build-scripts/CLI/CLINTB_64b - chmod +x build-scripts/CLI/CLINTB_64b - dos2unix patches/curl_stfp_patcher - chmod +x patches/curl_stfp_patcher - dos2unix utils/SF_deployer - chmod +x utils/SF_deployer - if: success() - - name: install run: | - sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget - sudo /usr/sbin/update-ccache-symlinks - echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc - source ~/.bashrc && echo $PATH - if: success() - - name: script - run: bash build-scripts/CLI/CLINTB_64b -g $GCC_VERSION -t $OS_TYPE - shell: bash - if: success() - - name: before_script - run: bash patches/curl_stfp_patcher + cp docs/native-gcc-stretch.md $HOME/README.md + bash utils/SF_docs_deployer shell: bash if: success() - - name: after_success + - name: deploy run: bash utils/SF_deployer shell: bash if: success() \ No newline at end of file diff --git a/.github/workflows/builder_64.yml b/.github/workflows/builder_64.yml new file mode 100644 index 0000000..3c29aac --- /dev/null +++ b/.github/workflows/builder_64.yml @@ -0,0 +1,281 @@ +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + +name: CI Builder Pi[64] + +on: + # Trigger the workflow on push or pull request, + # but only for the master branch + push: + branches: + - master + paths-ignore: + - '**.md' + pull_request: + branches: + - master + paths-ignore: + - '**.md' + +env: + CURL_VERSION: 7.68.0 + CCACHE_COMPRESS: 1 + CCACHE_DIR: $HOME/.ccache + USER_SFTP: ${{ secrets.USER_SFTP }} + PASSWORD_SFTP: ${{ secrets.PASSWORD_SFTP }} + +jobs: + builder-64_0: + name: BASE GCC-6.3.0 Pi[64] + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPI_TYPE: 64 + COMPILER_TYPE: CROSS + BASE: true + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CIBB_64b + chmod +x build-scripts/CI/CIBB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CIBB_64b -g $GCC_VERSION + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_1: + name: Cross GCC-9.2.0 Pi[64] + needs: builder-64_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPI_TYPE: 64 + COMPILER_TYPE: CROSS + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CICTB_64b + chmod +x build-scripts/CI/CICTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CICTB_64b -g $GCC_VERSION + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: | + cp docs/cross-gcc64.md $HOME/root/README.md + bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_1_1: + name: Cross GCC-8.3.0 Pi[64] + needs: builder-64_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 8.3.0 + RPI_TYPE: 64 + COMPILER_TYPE: CROSS + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CICTB_64b + chmod +x build-scripts/CI/CICTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CICTB_64b -g $GCC_VERSION + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_2: + name: Native GCC-9.2.0 Pi[64] + needs: [builder-64_0, builder-64_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 9.2.0 + RPI_TYPE: 64 + COMPILER_TYPE: NATIVE + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CINTB_64b + chmod +x build-scripts/CI/CINTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CINTB_64b -g $GCC_VERSION + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: | + cp docs/native-gcc64.md $HOME/root/README.md + bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() + builder-64_2_2: + name: Native GCC-8.3.0 Pi[64] + needs: [builder-64_0, builder-64_1_1] + runs-on: ubuntu-latest + env: + GCC_VERSION: 8.3.0 + RPI_TYPE: 64 + COMPILER_TYPE: NATIVE + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CINTB_64b + chmod +x build-scripts/CI/CINTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CINTB_64b -g $GCC_VERSION + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: after_success + run: bash utils/SF_docs_deployer + shell: bash + if: success() + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() \ No newline at end of file diff --git a/README.md b/README.md index fb9947d..1b0581a 100644 --- a/README.md +++ b/README.md @@ -24,32 +24,43 @@ along with this program. If not, see . --> -
-GCC Pi Logo +
+Raspberry Pi Toolchains Logo -[![Build Status](https://img.shields.io/travis/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/abhiTronix/raspberry-pi-cross-compilers) -[![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) -[![Downloads](https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://sourceforge.net/projects/raspberry-pi-cross-compilers) + **Latest automated Build-scripts and CI maintained Precompiled Standalone (ARM/ARM64) Toolchains for Raspberry Pi** -[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W8WTYO) +![CI Builder Pi[0-1]](https://github.com/abhiTronix/raspberry-pi-cross-compilers/workflows/CI%20Builder%20Pi%5B0-1%5D/badge.svg) +![CI Builder Pi[2-3]](https://github.com/abhiTronix/raspberry-pi-cross-compilers/workflows/CI%20Builder%20Pi%5B2-3%5D/badge.svg) +![CI Builder Pi[3+]](https://github.com/abhiTronix/raspberry-pi-cross-compilers/workflows/CI%20Builder%20Pi%5B3+%5D/badge.svg) +![CI Builder Pi[64]](https://github.com/abhiTronix/raspberry-pi-cross-compilers/workflows/CI%20Builder%20Pi%5B64%5D/badge.svg) + + +[![Open Source Love png1](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](https://github.com/abhiTronix/raspberry-pi-cross-compilers) +[![License][license-badge]][license] +[![made-with-bash](https://img.shields.io/badge/Made%20with-Bash-1f425f.svg?style=flat&logo=github)](https://www.gnu.org/software/bash) +[![Downloads][downloads-badge]][downloads] + +[![ko-fi][kofi-badge]][kofi] - ***Latest GCC Cross & Native automated Build-scripts and Precompiled Standalone (ARM/ARM64) Toolchains for Raspberry Pi***
  ## Table of Contents + * [**TL'DR**](#tldr) -* [**Key Feature Points**](#key-feature-points) -* [**Precompiled Toolchains: Easy-to-Use**](#precompiled-toolchains-easy-to-use) - * [**A. Toolchains description table**](#a-toolchains-description-table) - * [**B. Toolchains Supported Languages**](#b-toolchains-supported-languages) - * [**C. Identify Binaries by Name**](#c-identify-binaries-by-name) - * [**D. Toolchains Download**](#d-toolchains-download) +* [**New-Release SneekPeak: v3.0**](#new-release-sneekpeak-v30) +* **Precompiled Toolchains: Easy-to-Use** + * [**A. Automated Toolchain Builder Workflow**](#a-automated-toolchain-builder-workflow) + * [**B. Toolchain Binaries description table**](#b-toolchain-binaries-description-table) + * [**C. Identifying Toolchain Binaries by Name**](#c-identifying-toolchain-binaries-by-name) + * [**D. Toolchain Binaries Downloads**](#d-toolchain-binaries-downloads) * [**E. Toolchain Setup Documentation**](#e-toolchain-setup-documentation) -* [**For Developers: Do It Yourself**](#for-developers-do-it-yourself) -* [**Support this Project :heart:**](#support-this-project) -* [**Additional Useful Information**](#additional-useful-information) + * [**F. Supported Toolchains Programming Languages**](#f-supported-toolchains-programming-languages) +* **For Developers: Do It Yourself** + * [**Build-Scripts**](#scroll-build-scripts) +* [**Supporting this Project :heart:**](#supporting-this-project) +* [**Additional Information**](#additional-information) * [**Supported ARM Devices**](#supported-arm-devices) * [**Optimization Flags Involved**](#optimization-flags-involved) * [**Citing**](#citing) @@ -63,24 +74,24 @@ along with this program. If not, see . **What is this project?** -> _This project provides latest [**Raspberry Pi hardware optimized**](#optimization-flags-involved) GCC Cross Compiler & Native (ARM & ARM64) [automated Build-Scripts](#for-developers-do-it-yourself) and [Precompiled standalone Toolchains binaries](#precompiled-toolchains-easy-to-use), that will save you tons of time & thereby helps you get quickly started with software development on Pi._ +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ **Who will benefit from the project?** -> _This project is for everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use GCC toolchains for their Raspberry Pi project(s) with minimum effort._ +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._   -### Key Features +### New-Release SneekPeak: v3.0 -- *Automated CLI maintained GCC standalone ARM/ARM64 toolchains.* +- *Automated CI maintained GCC standalone ARM/ARM64 toolchains.* - *Latest [**GCC 9.2.0**](https://gcc.gnu.org/gcc-9/) toolchains available.* - *Hardcoded paths free both Cross & Native **Raspbian Buster (Debian 10)** toolchains available.* - *Separate binaries for each Raspberry Pi variant (including latest Compute modules and Raspberry Pi 4).* - *Tar Compressed binaries with maximum possible compression.* - *Exclusive **ARM64|AARCH64** Binaries for Raspberry Pi 64-Bit OS flavors.* -- *Open-sourced Toolchain build-scripts are available.* +- *Open-sourced Toolchains build-scripts are also available.* - *Latest [**GDB Debugger v8.3.1**](https://www.gnu.org/software/gdb/download/ANNOUNCEMENT) included in all binaries.* @@ -89,85 +100,99 @@ along with this program. If not, see .   -# Precompiled Toolchains: Easy-to-Use +# Banner -***This project uses CLI to auto-generate various easy-to-use precompiled Compressed GCC Cross & Native standalone ARM/ARM64 toolchains which are discussed as follows:*** +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. -### A. Toolchains description table: -Here's a reference table for various precompiled Toolchains available in this project that are targeting specific OS only: +### A. Automated Toolchain Builder Workflow: -* **Reference:** - * **Host OS:** on which the toolchain is executed/used. - * **Target OS:** for which the toolchain generates code. +

Workflow

-| Toolchains | Host OS | Target OS | Status | Precompiled GCC versions available | -|----------|--------|-------|--------|------| -| **Cross-Compiler Toolchains (Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | -| **Cross-Compiler Toolchains (Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | -| **Native Compiler Toolchains (Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 8.3.0, 9.2.0 | -| **Native Compiler Toolchains (Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | -| **64-bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | -| **64-bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | -| **Exclusive Toolchains** | None | None | None | None | -| **Obsolete Compiler Toolchains** | Not supported | Not supported | No longer supported | 7.4.0, 8.2.0 | -   -### B. Toolchains Supported Languages: -- C++ -- Fortran -- C -- Any other language support can be [compiled manually](#for-developers-do-it-yourself). +### B. Toolchain Binaries description table: -  +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** -### C. Identify Binaries by Name: +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. -You can easily identify each pre-compiled toolchain binary by its name as follows: +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + -

Binary Description

  +### C. Identifying Toolchain Binaries by Name: -### D. Toolchains Download +You can easily identify each pre-compiled toolchain binary by its name as follows: + +

Binary Description

+ + +### D. Toolchain Binaries Downloads: -_Compressed pre-compiled GCC Toolchain binaries can be easily be downloaded from the project's [**SourceForge Repository**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/) or by clicking links given in the following table:_ +**[TAR][tar]-[PIGZ][pigz] Compressed** pre-compiled GCC Toolchain binaries can be easily be downloaded from the project's [**SourceForge Repository**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/) or by clicking links given in the following table: +| Toolchains Binaries | Status | GCC versions | +| ---------- | -------- | ------ | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | Stable/Production | [6.3.0][cc-stretch-630], [9.2.0][cc-stretch-920] | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | Stable/Production | [8.3.0][cc-buster-830], [9.2.0][cc-buster-920] | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Stable/Production | [9.2.0][nc-stretch-920] | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Stable/Production | [9.2.0][nc-buster-920] | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | Stable/Production | [6.3.0][cc-64-630], [8.3.0][cc-64-830], [9.2.0][cc-64-920] | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | Stable/Production | [8.3.0][nc-64-830], [9.2.0][nc-64-920] | +| **Exclusive/Experimental Toolchains** | Beta/Experimental | None | -| Toolchains | GCC download links | -|----------|------| -| **Cross-Compiler Toolchains** | **[6.3.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/GCC%206.3.0/), [8.3.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/GCC%208.3.0/), [9.1.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/GCC%209.1.0/), [9.2.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/GCC%209.2.0/)** | -| **Native Compiler Toolchains** | **[8.3.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/GCC%208.3.0/), [9.1.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/GCC%209.1.0/), [9.2.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/GCC%209.2.0/)** | -| **64-bit Cross-Compiler Toolchains** | **[6.3.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/), [8.3.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/), [9.1.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.1.0/), [9.2.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/)** | -| **64-bit Native-Compiler Toolchains** | **[8.3.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/), [9.1.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.1.0/), [9.2.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/)** | -| **Exclusive Toolchains (Cross-Compiler)** | **[8.3.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Exclusive%20%20Toolchains/Raspbian%20Buster%20Cross-Compiler%20Toolchains/GCC%208.3.0/)** | -| **Obsolete Compiler Toolchains** | **[7.4.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Obslete%20Binaries/GCC%207.4.0/), [8.2.0](https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Obslete%20Binaries/GCC%208.2.0/)** | -***To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree.*** +**Tip::bulb:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._   -### E. Toolchain Setup Documentation +### E. Toolchain Setup Documentation: These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: -* #### [WIKI-Documentation (en-english)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +  + +### F. Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts).     -# For Developers: Do It Yourself +# Banner + +Open source is awesome :heart: + +- This project now provides user-friendly open-sourced bash build-scripts that auto-generates Compressed Cross & Native GCC ARM/ARM64 Toolchain binaries targeting Raspberry Pi 32-bit & 64-bit OSes. -_Open source is awesome, thereby, This project now provides user-friendly opensourced build-scripts that auto-generates & compiles Cross & Native GCC ARM/ARM64 Toolchain binaries targeting Raspberry Pi 32-bit Stretch (Debian 9) & Buster (Debian 10) and any Raspberry Pi 64-bit (like Pi64) OSes. These build-scripts are used by Automated CLI environments to generate various precompiled GCC ARM/ARM64 toolchains as discussed above. But you can also use these scripts to manually compile any latest GCC toolchains yourself through your terminal. **You can find complete related info here:**_ +- If you need additional language support or need to compile another suitable GCC version toolchains for your Raspberry Pi, then you can use these scripts to manually compile any GCC toolchains by running suitable build-scripts yourself through your system terminal. + +- **You can find complete information about these build-scripts here:** ### :scroll: [Build-Scripts](/build-scripts) @@ -177,8 +202,9 @@ _Open source is awesome, thereby, This project now provides user-friendly openso   -# Support this Project -***If these binaries helped you big time, please consider supporting it through any size donations. Thank you :heart:.*** +# Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you :heart:.** [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix)  @@ -188,24 +214,25 @@ _Open source is awesome, thereby, This project now provides user-friendly openso   -# Additional Useful Information +# Additional Information ### Supported ARM Devices: + - All Raspberry Pi hardware/versions/models are currently supported. - Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. ### Optimization Flags Involved: -These toolchains are built with following LTO flags, thereby you can take advantage of your Raspberry Pi's CPU specific features with these LTO flags: +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** -***Important :bulb: : The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported!*** +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! -| Board | LTO Link Optimization Flags | +| Raspberry Pi Board | Link Time Optimization Flags | |---|---| -| Raspberry Pi - **Zero/W/WH & 1 Model A/B/A+/B+** | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | -| Raspberry Pi - **2&3 Model A/B** | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | -| Raspberry Pi - **3/4 Model A+/B+ & Compute 3/3-lite/3+(32-Bit)** | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | -| Raspberry Pi - **3/4 Model A+/B+ & Compute 3/3-lite/3+(64-Bit)** | `-march=armv8-a+fp+simd` | +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` |   @@ -231,13 +258,44 @@ These toolchains are built with following LTO flags, thereby you can take advant **Copyright © 2020 abhiTronix** -This Project source-code and its precompiled binaries are licensed under the [**GPLv3**](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) license. +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license.   # Acknowledgments -- https://gcc.gnu.org/ for providing the latest source code. -- https://www.raspberrypi.org/ for providing the latest kernel and docs. -- https://sourceforge.net for allowing me to publish these binaries. \ No newline at end of file +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=flat&logo=gnu +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/build-scripts/CLI/CLIBB_32b b/build-scripts/CI/CIBB_32b similarity index 96% rename from build-scripts/CLI/CLIBB_32b rename to build-scripts/CI/CIBB_32b index 93115e3..150273d 100644 --- a/build-scripts/CLI/CLIBB_32b +++ b/build-scripts/CI/CIBB_32b @@ -35,10 +35,18 @@ helpfunction() { #helper function that prints custom usage help menu echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi CLI Toolchains Base Builder 32-bit" + echo "" + figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" + echo "" + echo "" echo "Usage: $0 -g [GCC version] -r [Target Pi type] -o [Target Pi OS type]" echo -e "\t-g GCC base version?: (6.3.0|8.3.0)" echo -e "\t-r What's yours Raspberry Pi type?: (0-1|2-3|3+)" echo -e "\t-o What's yours Raspberry Pi OS type?: (stretch|buster)" + echo "" + echo "" exit 1 # Exit script after printing help } @@ -124,15 +132,6 @@ if ! [[ "$FPU" =~ ^(vfp|neon-vfpv4|neon-fp-armv8)$ ]]; then exit 1 ; fi if [ "$BUILDDIR" = "" ]; then exit 1 ; fi if [ "$LANGUAGES" = "" ]; then exit 1 ; fi - -if [ "$CI" != "true" ]; then - echo "" - echo "" - figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" - echo "" - echo "" -fi - #download binaries if not found echo "Downloading and Setting up build directories" @@ -206,7 +205,7 @@ make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi -echo "Building Cross GCC $GCC_VERSION Binaries..." +echo "Building Cross GCC $GCC_VERSION BASE Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --disable-multilib @@ -235,7 +234,7 @@ mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz -echo "Done Building Cross GCC $GCC_VERSION Binaries..." +echo "Done Building Cross GCC $GCC_VERSION BASE Binaries..." #clean path PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/build-scripts/CLI/CLIBB_64b b/build-scripts/CI/CIBB_64b similarity index 95% rename from build-scripts/CLI/CLIBB_64b rename to build-scripts/CI/CIBB_64b index 1e2339e..5e29860 100644 --- a/build-scripts/CLI/CLIBB_64b +++ b/build-scripts/CI/CIBB_64b @@ -34,9 +34,17 @@ helpfunction() { #helper function that prints custom usage help menu echo "" + echo "" + figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi CLI Toolchains Base Builder 64-bit" + echo "" + figlet -t -k -f /usr/share/figlet/term.flf "Copyright (c) 2020 abhiTronix" + echo "" + echo "" echo "Usage: $0 -g [GCC version] -t [OS Type]" echo -e "\t-g GCC base version?: (6.3.0|8.3.0)" echo -e "\t-t What's yours Raspberry Pi OS type?: (1|2) [default:1]" + echo "" + echo "" exit 1 # Exits script after printing help } @@ -108,15 +116,6 @@ if [ "$BUILDDIR" = "" ]; then exit 1 ; fi if [ "$LANGUAGES" = "" ]; then exit 1 ; fi -if [ "$CI" != "true" ]; then - echo "" - echo "" - figlet -t -k -f /usr/share/figlet/standard.flf "Raspberry Pi Toolchains Builder" - echo "" - echo "" -fi - - echo "Downloading and Setting up build directories" #setup paths DOWNLOADDIR=$BUILDDIR/build_toolchains @@ -195,7 +194,7 @@ make -s install DESTDIR="$INSTALLDIR" if [ -n "$(ls -A "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/binutils-$BINUTILS_VERSION/build/*; fi -echo "Building Cross GCC $GCC_VERSION Binaries..." +echo "Building Cross GCC $GCC_VERSION BASE Binaries..." if [ -n "$(ls -A "$DOWNLOADDIR"/gcc-$GCC_VERSION/build)" ]; then rm -rf "$DOWNLOADDIR"/gcc-$GCC_VERSION/build/*; fi cd "$DOWNLOADDIR"/gcc-$GCC_VERSION/build || exit ../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot="$SYSROOTDIR" --with-arch=$ARCH --disable-multilib @@ -225,7 +224,7 @@ mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz -echo "Done Building Cross GCC $GCC_VERSION Binaries..." +echo "Done Building Cross GCC $GCC_VERSION BASE Binaries..." #clean path PATH=$(echo "$PATH" | sed -e 's;:\?$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin;;' -e 's;$BUILDDIR/cross-pi-gcc-$GCC_VERSION-$FOLDER_VERSION/bin:\?;;') \ No newline at end of file diff --git a/build-scripts/CLI/CLICTB_32b b/build-scripts/CI/CICTB_32b similarity index 100% rename from build-scripts/CLI/CLICTB_32b rename to build-scripts/CI/CICTB_32b diff --git a/build-scripts/CLI/CLICTB_64b b/build-scripts/CI/CICTB_64b similarity index 100% rename from build-scripts/CLI/CLICTB_64b rename to build-scripts/CI/CICTB_64b diff --git a/build-scripts/CLI/CLINTB_32b b/build-scripts/CI/CINTB_32b similarity index 100% rename from build-scripts/CLI/CLINTB_32b rename to build-scripts/CI/CINTB_32b diff --git a/build-scripts/CLI/CLINTB_64b b/build-scripts/CI/CINTB_64b similarity index 100% rename from build-scripts/CLI/CLINTB_64b rename to build-scripts/CI/CINTB_64b diff --git a/build-scripts/CI/README.md b/build-scripts/CI/README.md new file mode 100644 index 0000000..6cef290 --- /dev/null +++ b/build-scripts/CI/README.md @@ -0,0 +1,107 @@ + + +# Banner + +This project now utilizes powerful **Github Actions** CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries by using these CI bash Build-Scripts. These CI Build-Scripts are derived from previous user-friendly build-scripts but further divided into smaller jobs to aid better build times with CI. + + +## Automated Toolchain Builder Workflow: + +A generalized workflow used to generate and deploy these CI maintained toolchains are as follows: + +

Workflow

+ + +## Build-Script Description: + + +### A. `CIBB_32b`: Raspberry Pi Toolchains CI Base Builder 32-bit + +* This build-script is used in CI to generates Compressed Intermediate/Incomplete Base Bundles targeting Raspberry Pi 32-bit OSes. +* These Intermediate/Incomplete Base Bundles are then used to compile actual 32-bit Cross-Compiler Toolchains binaries. + +### B. `CIBB_64b`: Raspberry Pi Toolchains CI Base Builder 64-bit + +* This build-script is used in CI to generates Compressed Intermediate/Incomplete Base Bundles targeting Raspberry Pi 64-bit OSes. +* These Intermediate/Incomplete Base Bundles are then used to compile actual 64-bit Cross-Compiler Toolchains binaries. + +### C. `CICTB_32b`: Raspberry Pi Toolchains CI Cross-Compiler Builder 32-bit + +* This build-script is used in CI to generate Compressed Cross ARM Toolchain binaries targeting Raspberry Pi 32-bit Stretch(Debian 9) & Buster(Debian 10) OSes from Base Bundles. + +### D. `CICTB_64b`: Raspberry Pi Toolchains CI Cross-Compiler Builder 64-bit + +* This build-script is used in CI to generate Compressed Cross ARM64 Toolchain binaries targeting Raspberry Pi 64-bit OSes from Base Bundles. + +### E. `CINTB_32b`: Raspberry Pi Toolchains CI Native-Compiler Builder 32-bit + +* This build-script is used in CI to generate Compressed Native ARM Toolchain binaries targeting Raspberry Pi 32-bit Stretch(Debian 9) & Buster(Debian 10) OSes from respective Cross-Compiler Toolchain Binaries builds. + + +### F. `CINTB_64b`: Raspberry Pi Toolchains CI Native-Compiler Builder 64-bit + +* This build-script is used in CI to generate Compressed Native ARM64 Toolchain binaries targeting Raspberry Pi 64-bit OSes from respective Cross-Compiler Toolchain Binaries builds. + + +  + +### Supported Programming Languages: + +These CI build-scripts only support specific Programming Languages, those are as follows: + +- C++ +- Fortran +- C + +  + + +## Supported GCC Versions: + +These CI build-scripts only support newer GCC versions, those are as follows: + +- 6.3.0 +- 8.3.0 +- 9.2.0 + + +  + +## Supporting this Project +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you :heart:.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix)  + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star :star:](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +  + + +## License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) license. \ No newline at end of file diff --git a/build-scripts/README.md b/build-scripts/README.md index 970aade..9a14430 100644 --- a/build-scripts/README.md +++ b/build-scripts/README.md @@ -23,32 +23,19 @@ along with this program. If not, see . =============================================== --> +# Banner -
-GCC Pi Logo +### Open source is awesome [![Open Source Love png1](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](https://github.com/abhiTronix/raspberry-pi-cross-compilers) -[![Build Status](https://img.shields.io/travis/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/abhiTronix/raspberry-pi-cross-compilers) -[![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) -[![Downloads](https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://sourceforge.net/projects/raspberry-pi-cross-compilers) +This project now provides user-friendly open-sourced bash build-scripts that auto-generates Compressed Cross & Native GCC ARM/ARM64 Toolchain binaries targeting Raspberry Pi 32-bit & 64-bit OSes. If you need additional language support or need to compile another suitable GCC version toolchains for your Raspberry Pi, then you can manually compile any GCC toolchains by running suitable build-scripts yourself through your system terminal. -[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W8WTYO) +### RTBuilder_32b: Raspberry Pi Toolchains Builder 32-bit - **Latest automated GCC Cross Compiler & Native (ARM & ARM64) build-scripts and precompiled standalone toolchains for Raspberry Pi** -
+* This script auto-generates Compressed Cross & Native GCC ARM Toolchain binaries targeting Raspberry Pi 32-bit Stretch(Debian 9) & Buster(Debian 10) OSes. -  - -## Build Scripts - -_These are user-friendly scripts that auto-generates Compressed Cross & Native GCC ARM/ARM64 Toolchain binaries targeting Raspberry Pi 32-bit Stretch(Debian 9) & Buster(Debian 10) and any Raspberry Pi 64-bit(like Pi64) OSes. These build-scripts are used by Automated CLI environments to generate various precompiled GCC ARM/ARM64 toolchains. But you can also use these scripts to manually compile any latest GCC toolchains yourself through your terminal._ - -### `RTBuilder_32b`: Raspberry Pi Toolchains Builder 32-bit - -* _This script auto-generates Compressed Cross & Native GCC ARM Toolchain binaries targeting Raspberry Pi 32-bit Stretch(Debian 9) & Buster(Debian 10) OSes._ +### RTBuilder_64b: Raspberry Pi Toolchains Builder 64-bit -### `RTBuilder_64b`: Raspberry Pi Toolchains Builder 64-bit - -* _This script auto-generates Compressed Cross & Native GCC ARM64 Toolchain binaries targeting any Raspberry Pi 64-bit (like Pi64) OSes._ +* This script auto-generates Compressed Cross & Native GCC ARM64 Toolchain binaries targeting any Raspberry Pi 64-bit (like Pi64) OSes. @@ -56,7 +43,9 @@ _These are user-friendly scripts that auto-generates Compressed Cross & Native G ## Usage -***:warning: These scripts are Linux specific only.*** +You can run these bash scripts to manually compile any GCC toolchains version through your system terminal: + +***:warning: These scripts are Linux-system specific only.*** 1. **Update environment & Install prerequisites:** @@ -66,7 +55,7 @@ _These are user-friendly scripts that auto-generates Compressed Cross & Native G # install prerequisites sudo apt-get -y install gcc g++ gperf flex texinfo gawk gfortran texinfo bison \ - build-essential openssl unzip wget git \ + build-essential openssl unzip wget git pigz \ libncurses-dev autoconf automake tar figlet ``` @@ -82,6 +71,10 @@ _These are user-friendly scripts that auto-generates Compressed Cross & Native G # Perpend ccache into the PATH echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + # Added related env variables + export CCACHE_COMPRESS=1 + export CCACHE_DIR=$HOME/.ccache + # Source .bashrc to test the new PATH source ~/.bashrc && echo $PATH @@ -97,62 +90,62 @@ _These are user-friendly scripts that auto-generates Compressed Cross & Native G 3. **Run scripts:** - * ### `RTBuilder_32b`: Raspberry Pi Toolchains Builder 32-bit + ### `RTBuilder_32b`: Raspberry Pi Toolchains Builder 32-bit - * **Usage parameters:** This script requires a few command-line parameters, just run `./RTBuilder_32b` on terminal: - - ```bash - Usage: ./RTBuilder_32b -g [GCC version] -r [Target Pi type] -o [Target Pi OS type] - -g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0) - -r What's yours Raspberry Pi type?: (0-1|2-3|3+) - -o What's yours Raspberry Pi OS type?: (stretch|buster) + * **Usage parameters:** This script requires a few command-line parameters, just run `./RTBuilder_32b` on terminal: + + ```bash + Usage: ./RTBuilder_32b -g [GCC version] -r [Target Pi type] -o [Target Pi OS type] + -g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0) + -r What's yours Raspberry Pi type?: (0-1|2-3|3+) + -o What's yours Raspberry Pi OS type?: (stretch|buster) - ``` + ``` - * **Usage:** Just pass _targeted [GCC version](#supported-gcc-versions)_ to `-g` parameter, _targeted raspberry pi type_ to `-r` parameter, and _targeted raspberry pi OS type_ to `-o` parameter of this script: + * **Usage:** Just pass _targeted [GCC version](#supported-gcc-versions)_ to `-g` parameter, _targeted raspberry pi type_ to `-r` parameter, and _targeted raspberry pi OS type_ to `-o` parameter of this script: - ***:warning: You cannot compile GCC version less than GCC 8.3.0 for Buster OS, otherwise script will automatically switch for Stretch OS.*** + ***:warning: You must NOT compile GCC version less than GCC 8.3.0 for Buster OS, otherwise script will automatically switch to build for Stretch OS.*** - ```bash - chmod +x RTBuilder_32b - ./RTBuilder_32b -g "9.2.0" -r "2-3" -o "buster" + ```bash + chmod +x RTBuilder_32b + ./RTBuilder_32b -g "9.2.0" -r "2-3" -o "buster" - ``` + ``` - *This will take some time _(approximately 55mins)_, so grab a coffee :coffee:. On returning you will find `native-gcc-{GCC_VERSION}-pi_{PI_TYPE}.tar.gz` and `cross-gcc-{GCC_VERSION}-pi_{PI_TYPE}.tar.gz` at your `$HOME` directory.* + *This will take some time _(approximately 55mins on 8cores)_, so grab a coffee :coffee:. On returning you will find `native-gcc-{GCC_VERSION}-pi_{PI_TYPE}.tar.gz` and `cross-gcc-{GCC_VERSION}-pi_{PI_TYPE}.tar.gz` at your `$HOME` directory.* - * ### `RTBuilder_64b`: Raspberry Pi Toolchains Builder 64-bit + ### `RTBuilder_64b`: Raspberry Pi Toolchains Builder 64-bit - * **Usage parameters:** This script requires few command-line parameters, just run `./RTBuilder_64b`: - - ```bash - Usage: ./RTBuilder_64b -g [GCC version] -t [OS Type] - -g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0) - -t What's yours Raspberry Pi OS type?: (1|2) [default:1] + * **Usage parameters:** This script requires few command-line parameters, just run `./RTBuilder_64b`: + + ```bash + Usage: ./RTBuilder_64b -g [GCC version] -t [OS Type] + -g GCC version you want to compile?: (7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0) + -t What's yours Raspberry Pi OS type?: (1|2) [default:1] - ``` + ``` - * **Usage:** Just pass _targeted [GCC version](#supported-gcc-versions)_ to `-g` parameter of this script: + * **Usage:** Just pass _targeted [GCC version](#supported-gcc-versions)_ to `-g` parameter of this script: - ```bash - chmod +x RTBuilder_64b - ./RTBuilder_64b -g "9.2.0" + ```bash + chmod +x RTBuilder_64b + ./RTBuilder_64b -g "9.2.0" - ``` + ``` - *This will take some time _(approximately 55mins)_, so grab a coffee :coffee:. On returning you will find `native-gcc-{GCC_VERSION}-pi_64.tar.gz` and `cross-gcc-{GCC_VERSION}-pi_64.tar.gz` at your `$HOME` directory.* + *This will take some time _(approximately 55mins on 8cores)_, so grab a coffee :coffee:. On returning you will find `native-gcc-{GCC_VERSION}-pi_64.tar.gz` and `cross-gcc-{GCC_VERSION}-pi_64.tar.gz` at your `$HOME` directory.*   -## Custom Builds: +## Additional Environment Variables: These scripts provide a few additional environment variables to tweak Toolchain Builds: @@ -173,11 +166,11 @@ These scripts provide a few additional environment variables to tweak Toolchain   -### Supported GCC Versions: +## Supported GCC Versions: -These scripts only support specific GCC versions, those are as follows: +These scripts only support newer GCC versions, those are as follows: -***:warning: You cannot compile GCC version less than GCC 8.3.0 for Buster OS, otherwise script will automatically switch for Stretch OS.*** +***:warning: You must NOT compile GCC version less than GCC 8.3.0 for Buster OS, otherwise script will automatically switch to build for Stretch OS.*** - 7.1.0 - 7.2.0 diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index 3561bb5..fd7b847 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -287,7 +287,7 @@ if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. - env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + tar cf - native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION echo "Done Building Native GCC $GCC_VERSION Binaries..." fi @@ -307,7 +307,7 @@ echo "Done Building Cross GDB Binaries..." mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index f1630d5..fef9074 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -280,7 +280,7 @@ if [ "$GCC_VERSION" != "$GCCBASE_VERSION" ]; then mv "$BUILDDIR"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. - env GZIP=-9 tar cvzf native-gcc-"$GCC_VERSION"-pi_$FOLDER_VERSION.tar.gz native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION + tar cf - native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > native-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz rm -rf "$HOME"/native-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION echo "Done Building Native GCC $GCC_VERSION Binaries..." fi @@ -300,7 +300,7 @@ echo "Done Building Cross GDB Binaries..." mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -env GZIP=-9 tar cvzf cross-gcc-"$GCC_VERSION"-pi_"$FOLDER_VERSION".tar.gz cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION diff --git a/docs/base-gcc.md b/docs/base-gcc.md new file mode 100644 index 0000000..cb9d66f --- /dev/null +++ b/docs/base-gcc.md @@ -0,0 +1,198 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/docs/cross-gcc-buster.md b/docs/cross-gcc-buster.md new file mode 100644 index 0000000..9022c05 --- /dev/null +++ b/docs/cross-gcc-buster.md @@ -0,0 +1,199 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/docs/cross-gcc-stretch.md b/docs/cross-gcc-stretch.md new file mode 100644 index 0000000..dd2cc14 --- /dev/null +++ b/docs/cross-gcc-stretch.md @@ -0,0 +1,198 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/docs/cross-gcc.md b/docs/cross-gcc.md new file mode 100644 index 0000000..e78295e --- /dev/null +++ b/docs/cross-gcc.md @@ -0,0 +1,198 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/docs/cross-gcc64.md b/docs/cross-gcc64.md new file mode 100644 index 0000000..f9b4ed1 --- /dev/null +++ b/docs/cross-gcc64.md @@ -0,0 +1,198 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/docs/native-gcc-buster.md b/docs/native-gcc-buster.md new file mode 100644 index 0000000..5b1bd53 --- /dev/null +++ b/docs/native-gcc-buster.md @@ -0,0 +1,198 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/docs/native-gcc-stretch.md b/docs/native-gcc-stretch.md new file mode 100644 index 0000000..29b9010 --- /dev/null +++ b/docs/native-gcc-stretch.md @@ -0,0 +1,199 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/docs/native-gcc.md b/docs/native-gcc.md new file mode 100644 index 0000000..afb95ba --- /dev/null +++ b/docs/native-gcc.md @@ -0,0 +1,199 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/docs/native-gcc64.md b/docs/native-gcc64.md new file mode 100644 index 0000000..81be7d9 --- /dev/null +++ b/docs/native-gcc64.md @@ -0,0 +1,198 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file diff --git a/patches/README.md b/patches/README.md index 00e6143..c86dd70 100644 --- a/patches/README.md +++ b/patches/README.md @@ -23,57 +23,16 @@ along with this program. If not, see . =============================================== --> -
-GCC Pi Logo +# Banner -[![Build Status](https://img.shields.io/travis/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/abhiTronix/raspberry-pi-cross-compilers) -[![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) -[![Downloads](https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://sourceforge.net/projects/raspberry-pi-cross-compilers) +These scripts are used to patch any faults in Automated **Github Actions** CI(Continuous Integration) enviroments in this Project. -[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W8WTYO) +### A. `curl_stfp_patcher`: CURL SFTP patcher - **Latest automated GCC Cross Compiler & Native (ARM & ARM64) build-scripts and precompiled standalone toolchains for Raspberry Pi** -
+ _This script patches system `curl` libs to enable the native SFTP support._ -  -## Tool Scripts - -_These are helper scripts to facilitate various CLI jobs in this Project._ - -* #### `SF_deployer`: SourceForge deployer - - _This script auto-deploys CLI compiled Cross & Native GCC Toolchain binaries to SourceForge secured servers._ - - -  - -## Support this Project -***If these binaries helped you big time, please consider supporting it through any size donations. Thank you :heart:.*** - -[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix)  - -***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star :star:](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** - -  - -## Citing - -**Here is a Bibtex entry you can use to cite this project in a publication:** - -```tex -@misc{raspberry-pi-cross-compilers, - Title = {Raspberry Pi Toolchains}, - Author = {Abhishek Thakur}, - howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} - } -``` - - -  - - -## License +### License **Copyright © 2020 abhiTronix** diff --git a/utils/README.md b/utils/README.md index 8108a9b..98fb397 100644 --- a/utils/README.md +++ b/utils/README.md @@ -23,59 +23,25 @@ along with this program. If not, see . =============================================== --> +# Banner -
-GCC Pi Logo +These are helper bash scripts to facilitate various **Github Actions** CI(Continuous Integration) jobs in this Project: -[![Build Status](https://img.shields.io/travis/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/abhiTronix/raspberry-pi-cross-compilers) -[![License](https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE) -[![Downloads](https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC)](https://sourceforge.net/projects/raspberry-pi-cross-compilers) -[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W8WTYO) +### A. `SF_deployer`: SourceForge deployer - **Latest automated GCC Cross Compiler & Native (ARM & ARM64) build-scripts and precompiled standalone toolchains for Raspberry Pi** -
+_This script auto-deploys CI built Compressed Cross & Native GCC Toolchain binaries to SourceForge secured servers._ -  - -## Patch Scripts - -_These scripts are used to patch any faults in Automated CLI enviroments in this Project._ - -* #### `curl_stfp_patcher`: CURL SFTP patcher - - _This script patches `curl` libs to enables native SFTP support._ - - -  -## Support this Project -***If these binaries helped you big time, please consider supporting it through any size donations. Thank you :heart:.*** +### B. `SF_docs_deployer`: SourceForge Docs deployer -[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix)  +_This script auto-deploys Toolchain specific `README.md` to SourceForge server for achieving better readability for each binary._ -***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star :star:](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.***   -## Citing - -**Here is a Bibtex entry you can use to cite this project in a publication:** - -```tex -@misc{raspberry-pi-cross-compilers, - Title = {Raspberry Pi Toolchains}, - Author = {Abhishek Thakur}, - howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} - } -``` - - -  - - -## License +### License **Copyright © 2020 abhiTronix** diff --git a/utils/SF_deployer b/utils/SF_deployer index 7496ebe..1403695 100644 --- a/utils/SF_deployer +++ b/utils/SF_deployer @@ -25,7 +25,7 @@ -# This script auto-deploys CLI compiled Cross & Native GCC Toolchain binaries to Sourceforge secured server +# This script auto-deploys CI compiled Cross & Native GCC Toolchain binaries to Sourceforge secured server #Deploy Cross-compiler Toolchain binaries diff --git a/utils/SF_docs_deployer b/utils/SF_docs_deployer new file mode 100644 index 0000000..42ca6f1 --- /dev/null +++ b/utils/SF_docs_deployer @@ -0,0 +1,92 @@ +#!/bin/bash + +# =============================================== +# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project +# provides latest automated GCC Cross Compiler & Native (ARM & ARM64) +# build-scripts and precompiled standalone toolchains for Raspberry Pi. + + +# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) + + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# =============================================== + + +# This script auto-deploys Toolchain specific README.md to Sourceforge secured server + + +# deploy root folder docs +if [ -f "$HOME/README.md" ] && [ "$BASE" = "true" ]; then + FOLDER="CLI Base" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/README.md" --ftp-create-dirs + exit 0 +fi + +if [ -f "$HOME/root/README.md" ]; then + if [ "$RPI_TYPE" = "64" ]; then + FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/root/README.md" --ftp-create-dirs + else + if [ "$COMPILER_TYPE" = "CROSS" ]; then + FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/root/README.md" --ftp-create-dirs + elif [ "$COMPILER_TYPE" = "NATIVE" ]; then + FOLDER="Raspberry Pi GCC Native-Compiler Toolchains" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/root/README.md" --ftp-create-dirs + else + exit 0 + fi + fi +fi + +if ! [ -f "$HOME/README.md" ]; then exit 0; fi + +# deploy Toolchain specific folder docs +if [ "$COMPILER_TYPE" = "CROSS" ]; then + if [ "$RPI_TYPE" = "64" ]; then + FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains/Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains" + + if [ "$FOLDER" != "" ]; then + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/README.md" --ftp-create-dirs + fi + else + if [ "$RPIOS_TYPE" = "buster" ]; then + FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Buster" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/README.md" --ftp-create-dirs + elif [ "$RPIOS_TYPE" = "stretch" ]; then + FOLDER="Raspberry Pi GCC Cross-Compiler Toolchains/Stretch" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/README.md" --ftp-create-dirs + else + exit 1 + fi + fi +elif [ "$COMPILER_TYPE" = "NATIVE" ]; then + if [ "$RPI_TYPE" = "64" ]; then + FOLDER="Bonus Raspberry Pi GCC 64-Bit Toolchains/Raspberry Pi GCC 64-Bit Native-Compiler Toolchains" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/README.md" --ftp-create-dirs + else + if [ "$RPIOS_TYPE" = "buster" ]; then + FOLDER="Raspberry Pi GCC Native-Compiler Toolchains/Buster" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/README.md" --ftp-create-dirs + elif [ "$RPIOS_TYPE" = "stretch" ]; then + FOLDER="Raspberry Pi GCC Native-Compiler Toolchains/Stretch" + curl -k "sftp://frs.sourceforge.net/home/pfs/project/raspberry-pi-cross-compilers/$FOLDER/" -u "$USER_SFTP":"$PASSWORD_SFTP" -T "$HOME/README.md" --ftp-create-dirs + else + exit 1 + fi + fi +else + exit 1 +fi \ No newline at end of file From c58de534685a86767df38a426305ee0ebdce4672 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Wed, 5 Feb 2020 07:27:09 +0530 Subject: [PATCH 45/51] BugFixes --- .github/workflows/builder_0_1.yml | 2 ++ .github/workflows/builder_64.yml | 2 ++ build-scripts/README.md | 12 +++++++++++- docs/base-gcc.md | 2 +- docs/cross-gcc-buster.md | 3 +-- docs/cross-gcc-stretch.md | 2 +- docs/cross-gcc.md | 2 +- docs/cross-gcc64.md | 2 +- docs/native-gcc-buster.md | 2 +- docs/native-gcc-stretch.md | 2 +- docs/native-gcc.md | 3 +-- docs/native-gcc64.md | 2 +- 12 files changed, 24 insertions(+), 12 deletions(-) diff --git a/.github/workflows/builder_0_1.yml b/.github/workflows/builder_0_1.yml index 3a0088c..28e20f9 100644 --- a/.github/workflows/builder_0_1.yml +++ b/.github/workflows/builder_0_1.yml @@ -135,6 +135,7 @@ jobs: if: success() - name: after_success run: | + mkdir -p $HOME/root cp docs/cross-gcc.md $HOME/root/README.md bash utils/SF_docs_deployer shell: bash @@ -232,6 +233,7 @@ jobs: if: success() - name: after_success run: | + mkdir -p $HOME/root cp docs/native-gcc.md $HOME/root/README.md bash utils/SF_docs_deployer shell: bash diff --git a/.github/workflows/builder_64.yml b/.github/workflows/builder_64.yml index 3c29aac..07fecb5 100644 --- a/.github/workflows/builder_64.yml +++ b/.github/workflows/builder_64.yml @@ -131,6 +131,7 @@ jobs: if: success() - name: after_success run: | + mkdir -p $HOME/root cp docs/cross-gcc64.md $HOME/root/README.md bash utils/SF_docs_deployer shell: bash @@ -225,6 +226,7 @@ jobs: if: success() - name: after_success run: | + mkdir -p $HOME/root cp docs/native-gcc64.md $HOME/root/README.md bash utils/SF_docs_deployer shell: bash diff --git a/build-scripts/README.md b/build-scripts/README.md index 9a14430..ce0ae68 100644 --- a/build-scripts/README.md +++ b/build-scripts/README.md @@ -45,7 +45,17 @@ This project now provides user-friendly open-sourced bash build-scripts that aut You can run these bash scripts to manually compile any GCC toolchains version through your system terminal: -***:warning: These scripts are Linux-system specific only.*** + +----- + +**Important :warning:** + +* For downloading artifacts these build-scripts requires an active Internet connection. + +* These build-scripts are Linux-system specific only. + +----- + 1. **Update environment & Install prerequisites:** diff --git a/docs/base-gcc.md b/docs/base-gcc.md index cb9d66f..a409ce3 100644 --- a/docs/base-gcc.md +++ b/docs/base-gcc.md @@ -77,7 +77,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou | **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | -**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ ------------------------- diff --git a/docs/cross-gcc-buster.md b/docs/cross-gcc-buster.md index 9022c05..469b231 100644 --- a/docs/cross-gcc-buster.md +++ b/docs/cross-gcc-buster.md @@ -77,8 +77,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou | **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | - -**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ ------------------------- diff --git a/docs/cross-gcc-stretch.md b/docs/cross-gcc-stretch.md index dd2cc14..c9e7767 100644 --- a/docs/cross-gcc-stretch.md +++ b/docs/cross-gcc-stretch.md @@ -77,7 +77,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou | **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | -**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ ------------------------- diff --git a/docs/cross-gcc.md b/docs/cross-gcc.md index e78295e..102d457 100644 --- a/docs/cross-gcc.md +++ b/docs/cross-gcc.md @@ -77,7 +77,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou | **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | -**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ ------------------------- diff --git a/docs/cross-gcc64.md b/docs/cross-gcc64.md index f9b4ed1..17567d3 100644 --- a/docs/cross-gcc64.md +++ b/docs/cross-gcc64.md @@ -77,7 +77,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou | **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | -**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ ------------------------- diff --git a/docs/native-gcc-buster.md b/docs/native-gcc-buster.md index 5b1bd53..45a1097 100644 --- a/docs/native-gcc-buster.md +++ b/docs/native-gcc-buster.md @@ -77,7 +77,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou | **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | -**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ ------------------------- diff --git a/docs/native-gcc-stretch.md b/docs/native-gcc-stretch.md index 29b9010..0b9454c 100644 --- a/docs/native-gcc-stretch.md +++ b/docs/native-gcc-stretch.md @@ -78,7 +78,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou -**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ ------------------------- diff --git a/docs/native-gcc.md b/docs/native-gcc.md index afb95ba..ec95b6d 100644 --- a/docs/native-gcc.md +++ b/docs/native-gcc.md @@ -78,8 +78,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou -**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ - +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ ------------------------- diff --git a/docs/native-gcc64.md b/docs/native-gcc64.md index 81be7d9..c17cc6d 100644 --- a/docs/native-gcc64.md +++ b/docs/native-gcc64.md @@ -77,7 +77,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou | **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | -**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree._ +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ ------------------------- From 8356684a21e16494c495fc1d12cb05ece53bcdb8 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Wed, 5 Feb 2020 08:29:23 +0530 Subject: [PATCH 46/51] Fixes --- .github/workflows/builder_0_1.yml | 10 +++++----- build-scripts/README.md | 2 +- build-scripts/RTBuilder_32b | 2 +- build-scripts/RTBuilder_64b | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/builder_0_1.yml b/.github/workflows/builder_0_1.yml index 28e20f9..d6cb0bf 100644 --- a/.github/workflows/builder_0_1.yml +++ b/.github/workflows/builder_0_1.yml @@ -184,7 +184,10 @@ jobs: shell: bash if: success() - name: after_success - run: bash utils/SF_docs_deployer + run: | + mkdir -p $HOME/root + cp docs/native-gcc.md $HOME/root/README.md + bash utils/SF_docs_deployer shell: bash if: success() - name: deploy @@ -232,10 +235,7 @@ jobs: shell: bash if: success() - name: after_success - run: | - mkdir -p $HOME/root - cp docs/native-gcc.md $HOME/root/README.md - bash utils/SF_docs_deployer + run: bash utils/SF_docs_deployer shell: bash if: success() - name: deploy diff --git a/build-scripts/README.md b/build-scripts/README.md index ce0ae68..1144402 100644 --- a/build-scripts/README.md +++ b/build-scripts/README.md @@ -52,7 +52,7 @@ You can run these bash scripts to manually compile any GCC toolchains version th * For downloading artifacts these build-scripts requires an active Internet connection. -* These build-scripts are Linux-system specific only. +* These build-scripts supports Linux-machines only. ----- diff --git a/build-scripts/RTBuilder_32b b/build-scripts/RTBuilder_32b index fd7b847..40394cb 100755 --- a/build-scripts/RTBuilder_32b +++ b/build-scripts/RTBuilder_32b @@ -307,7 +307,7 @@ echo "Done Building Cross GDB Binaries..." mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION diff --git a/build-scripts/RTBuilder_64b b/build-scripts/RTBuilder_64b index fef9074..13b3c1f 100755 --- a/build-scripts/RTBuilder_64b +++ b/build-scripts/RTBuilder_64b @@ -300,7 +300,7 @@ echo "Done Building Cross GDB Binaries..." mv "$BUILDDIR"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION "$HOME" cd "$HOME" || exit #compress with maximum possible compression level. -tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 -p 32 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz +tar cf - cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION | pigz -9 > cross-gcc-"$GCC_VERSION"-pi_"$RPI_TYPE".tar.gz echo "Done Building Cross GCC $GCC_VERSION Binaries..." rm -rf "$HOME"/cross-pi-gcc-"$GCC_VERSION"-$FOLDER_VERSION From 906a023192a2c8d63b8bc430679c995907484295 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Wed, 5 Feb 2020 08:54:15 +0530 Subject: [PATCH 47/51] BugFixes and Cleanup --- .github/workflows/builder_0_1.yml | 94 +++++++++++++++++++++--- .github/workflows/builder_2_3.yml | 102 ++++++++++++++++++++++----- .github/workflows/builder_3_plus.yml | 94 ++++++++++++++++++++---- .github/workflows/builder_64.yml | 56 +++++++++++---- 4 files changed, 295 insertions(+), 51 deletions(-) diff --git a/.github/workflows/builder_0_1.yml b/.github/workflows/builder_0_1.yml index d6cb0bf..13c146c 100644 --- a/.github/workflows/builder_0_1.yml +++ b/.github/workflows/builder_0_1.yml @@ -144,6 +144,49 @@ jobs: run: bash utils/SF_deployer shell: bash if: success() + builder-buster_1_1: + name: Cross GCC-8.3.0 32-bit Buster Pi[0-1] + needs: builder-buster_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 8.3.0 + RPIOS_TYPE: buster + RPI_TYPE: 0-1 + COMPILER_TYPE: CROSS + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() builder-buster_2: name: Native GCC-9.2.0 32-bit Buster Pi[0-1] needs: [builder-buster_0, builder-buster_1] @@ -234,10 +277,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash @@ -281,8 +320,47 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() + builder-stretch_1_1: + name: Cross GCC-6.3.0 32-bit Stretch Pi[0-1] + needs: builder-stretch_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPIOS_TYPE: stretch + RPI_TYPE: 0-1 + COMPILER_TYPE: CROSS + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher shell: bash if: success() - name: deploy @@ -328,10 +406,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash diff --git a/.github/workflows/builder_2_3.yml b/.github/workflows/builder_2_3.yml index 019c7e1..c273c54 100644 --- a/.github/workflows/builder_2_3.yml +++ b/.github/workflows/builder_2_3.yml @@ -84,10 +84,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash @@ -141,6 +137,49 @@ jobs: run: bash utils/SF_deployer shell: bash if: success() + builder-buster_1_1: + name: Cross GCC-8.3.0 32-bit Buster Pi[2-3] + needs: builder-buster_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 8.3.0 + RPIOS_TYPE: buster + RPI_TYPE: 2-3 + COMPILER_TYPE: CROSS + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() builder-buster_2: name: Native GCC-9.2.0 32-bit Buster Pi[2-3] needs: [builder-buster_0, builder-buster_1] @@ -180,10 +219,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash @@ -228,10 +263,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash @@ -285,6 +316,49 @@ jobs: run: bash utils/SF_deployer shell: bash if: success() + builder-stretch_1_1: + name: Cross GCC-6.3.0 32-bit Stretch Pi[2-3] + needs: builder-stretch_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPIOS_TYPE: stretch + RPI_TYPE: 2-3 + COMPILER_TYPE: CROSS + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() builder-stretch_2: name: Native GCC-9.2.0 32-bit Stretch Pi[2-3] needs: [builder-stretch_0, builder-stretch_1] @@ -324,10 +398,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash diff --git a/.github/workflows/builder_3_plus.yml b/.github/workflows/builder_3_plus.yml index 1e68da2..7d6d5fc 100644 --- a/.github/workflows/builder_3_plus.yml +++ b/.github/workflows/builder_3_plus.yml @@ -84,10 +84,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash @@ -131,8 +127,47 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() + builder-buster_1_1: + name: Cross GCC-8.3.0 32-bit Buster Pi[3+] + needs: builder-buster_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 8.3.0 + RPIOS_TYPE: buster + RPI_TYPE: 3+ + COMPILER_TYPE: CROSS + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher shell: bash if: success() - name: deploy @@ -228,10 +263,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash @@ -275,8 +306,47 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() + builder-stretch_1_1: + name: Cross GCC-6.3.0 32-bit Stretch Pi[3+] + needs: builder-stretch_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPIOS_TYPE: stretch + RPI_TYPE: 3+ + COMPILER_TYPE: CROSS + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CICTB_32b + chmod +x build-scripts/CI/CICTB_32b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CICTB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher shell: bash if: success() - name: deploy diff --git a/.github/workflows/builder_64.yml b/.github/workflows/builder_64.yml index 07fecb5..db1f135 100644 --- a/.github/workflows/builder_64.yml +++ b/.github/workflows/builder_64.yml @@ -83,10 +83,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash @@ -140,6 +136,48 @@ jobs: run: bash utils/SF_deployer shell: bash if: success() + builder-64_1_0: + name: Cross GCC-6.3.0 Pi[64] + needs: builder-64_0 + runs-on: ubuntu-latest + env: + GCC_VERSION: 6.3.0 + RPI_TYPE: 64 + COMPILER_TYPE: CROSS + steps: + - uses: actions/checkout@v2 + - name: before_install + run: | + sudo apt-get update -qq + sudo apt-get install -qq dos2unix -y + dos2unix build-scripts/CI/CICTB_64b + chmod +x build-scripts/CI/CICTB_64b + dos2unix patches/curl_stfp_patcher + chmod +x patches/curl_stfp_patcher + dos2unix utils/SF_deployer + chmod +x utils/SF_deployer + dos2unix utils/SF_docs_deployer + chmod +x utils/SF_docs_deployer + if: success() + - name: install + run: | + sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget + sudo /usr/sbin/update-ccache-symlinks + echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc + source ~/.bashrc && echo $PATH + if: success() + - name: script + run: bash build-scripts/CI/CICTB_64b -g $GCC_VERSION + shell: bash + if: success() + - name: before_script + run: bash patches/curl_stfp_patcher + shell: bash + if: success() + - name: deploy + run: bash utils/SF_deployer + shell: bash + if: success() builder-64_1_1: name: Cross GCC-8.3.0 Pi[64] needs: builder-64_0 @@ -178,10 +216,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash @@ -235,7 +269,7 @@ jobs: run: bash utils/SF_deployer shell: bash if: success() - builder-64_2_2: + builder-64_2_1: name: Native GCC-8.3.0 Pi[64] needs: [builder-64_0, builder-64_1_1] runs-on: ubuntu-latest @@ -273,10 +307,6 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() - - name: after_success - run: bash utils/SF_docs_deployer - shell: bash - if: success() - name: deploy run: bash utils/SF_deployer shell: bash From ce82b35ed0672cefbebc1b15250a71dfefe59cc0 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Wed, 5 Feb 2020 09:47:09 +0530 Subject: [PATCH 48/51] Removed GCC version limit from CI --- build-scripts/CI/CICTB_32b | 1 - build-scripts/CI/CICTB_64b | 1 - build-scripts/CI/CINTB_32b | 1 - build-scripts/CI/CINTB_64b | 1 - 4 files changed, 4 deletions(-) diff --git a/build-scripts/CI/CICTB_32b b/build-scripts/CI/CICTB_32b index 4b5c864..24e2eed 100644 --- a/build-scripts/CI/CICTB_32b +++ b/build-scripts/CI/CICTB_32b @@ -118,7 +118,6 @@ TARGET=arm-linux-gnueabihf GDB_VERSION=8.3.1 #validate env variables -if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi if ! [[ "$FOLDER_VERSION" =~ ^(0|1|2)$ ]]; then exit 1 ; fi if ! [[ "$ARCH" =~ ^(armv6|armv7-a|armv8-a)$ ]]; then exit 1 ; fi diff --git a/build-scripts/CI/CICTB_64b b/build-scripts/CI/CICTB_64b index dd4eb8f..b6ddff0 100644 --- a/build-scripts/CI/CICTB_64b +++ b/build-scripts/CI/CICTB_64b @@ -104,7 +104,6 @@ GDB_VERSION=8.3.1 #validate env variables -if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi if ! [[ "$GCCBASE_VERSION" =~ ^(6.3.0|8.3.0)$ ]]; then exit 1 ; fi if [ "$ARCH" != "armv8-a+fp+simd" ]; then exit 1 ; fi if [ "$FOLDER_VERSION" != "64" ]; then exit 1 ; fi diff --git a/build-scripts/CI/CINTB_32b b/build-scripts/CI/CINTB_32b index 6aea30b..fab7282 100644 --- a/build-scripts/CI/CINTB_32b +++ b/build-scripts/CI/CINTB_32b @@ -108,7 +108,6 @@ TARGET=arm-linux-gnueabihf GDB_VERSION=8.3.1 #validate env variables -if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi if ! [[ "$FOLDER_VERSION" =~ ^(0|1|2)$ ]]; then exit 1 ; fi if ! [[ "$ARCH" =~ ^(armv6|armv7-a|armv8-a)$ ]]; then exit 1 ; fi if ! [[ "$FPU" =~ ^(vfp|neon-vfpv4|neon-fp-armv8)$ ]]; then exit 1 ; fi diff --git a/build-scripts/CI/CINTB_64b b/build-scripts/CI/CINTB_64b index 457248b..e7089b3 100644 --- a/build-scripts/CI/CINTB_64b +++ b/build-scripts/CI/CINTB_64b @@ -93,7 +93,6 @@ GDB_VERSION=8.3.1 #validate env variables -if ! [[ "$GCC_VERSION" =~ ^(7.1.0|7.2.0|7.3.0|7.4.0|7.5.0|8.1.0|8.2.0|8.3.0|9.1.0|9.2.0)$ ]]; then exit 1 ; fi if [ "$ARCH" != "armv8-a+fp+simd" ]; then exit 1 ; fi if [ "$FOLDER_VERSION" != "64" ]; then exit 1 ; fi if [ "$BUILDDIR" = "" ]; then exit 1 ; fi From 9e2027453d8eb602f29d060700f576e745d22db9 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Wed, 5 Feb 2020 14:37:47 +0530 Subject: [PATCH 49/51] Limited Jobs and Fixed & added new SF README.md doc file --- .github/workflows/builder_0_1.yml | 21 +-- .github/workflows/builder_2_3.yml | 20 +-- .github/workflows/builder_3_plus.yml | 20 +-- .github/workflows/builder_64.yml | 31 +++-- docs/gcc64.md | 198 +++++++++++++++++++++++++++ 5 files changed, 254 insertions(+), 36 deletions(-) create mode 100644 docs/gcc64.md diff --git a/.github/workflows/builder_0_1.yml b/.github/workflows/builder_0_1.yml index 13c146c..632adb3 100644 --- a/.github/workflows/builder_0_1.yml +++ b/.github/workflows/builder_0_1.yml @@ -34,8 +34,11 @@ on: pull_request: branches: - master - paths-ignore: - - '**.md' + release: + branches: + - master + + env: CURL_VERSION: 7.68.0 @@ -54,6 +57,7 @@ jobs: RPI_TYPE: 0-1 COMPILER_TYPE: CROSS BASE: true + if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -143,7 +147,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-buster_1_1: name: Cross GCC-8.3.0 32-bit Buster Pi[0-1] needs: builder-buster_0 @@ -186,7 +190,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-buster_2: name: Native GCC-9.2.0 32-bit Buster Pi[0-1] needs: [builder-buster_0, builder-buster_1] @@ -236,7 +240,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-stretch_0: name: BASE GCC-6.3.0 32-bit Stretch Pi[0-1] @@ -247,6 +251,7 @@ jobs: RPI_TYPE: 0-1 COMPILER_TYPE: CROSS BASE: true + if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -323,7 +328,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-stretch_1_1: name: Cross GCC-6.3.0 32-bit Stretch Pi[0-1] needs: builder-stretch_0 @@ -366,7 +371,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-stretch_2: name: Native GCC-9.2.0 32-bit Stretch Pi[0-1] needs: [builder-stretch_0, builder-stretch_1] @@ -409,4 +414,4 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() \ No newline at end of file + if: github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file diff --git a/.github/workflows/builder_2_3.yml b/.github/workflows/builder_2_3.yml index c273c54..637afcb 100644 --- a/.github/workflows/builder_2_3.yml +++ b/.github/workflows/builder_2_3.yml @@ -34,8 +34,10 @@ on: pull_request: branches: - master - paths-ignore: - - '**.md' + release: + branches: + - master + env: CURL_VERSION: 7.68.0 @@ -54,6 +56,7 @@ jobs: RPI_TYPE: 2-3 COMPILER_TYPE: CROSS BASE: true + if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -136,7 +139,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-buster_1_1: name: Cross GCC-8.3.0 32-bit Buster Pi[2-3] needs: builder-buster_0 @@ -179,7 +182,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-buster_2: name: Native GCC-9.2.0 32-bit Buster Pi[2-3] needs: [builder-buster_0, builder-buster_1] @@ -222,7 +225,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-stretch_0: name: BASE GCC-6.3.0 32-bit Stretch Pi[2-3] @@ -233,6 +236,7 @@ jobs: RPI_TYPE: 2-3 COMPILER_TYPE: CROSS BASE: true + if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -315,7 +319,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-stretch_1_1: name: Cross GCC-6.3.0 32-bit Stretch Pi[2-3] needs: builder-stretch_0 @@ -358,7 +362,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-stretch_2: name: Native GCC-9.2.0 32-bit Stretch Pi[2-3] needs: [builder-stretch_0, builder-stretch_1] @@ -401,4 +405,4 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() \ No newline at end of file + if: github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file diff --git a/.github/workflows/builder_3_plus.yml b/.github/workflows/builder_3_plus.yml index 7d6d5fc..ad88405 100644 --- a/.github/workflows/builder_3_plus.yml +++ b/.github/workflows/builder_3_plus.yml @@ -34,8 +34,10 @@ on: pull_request: branches: - master - paths-ignore: - - '**.md' + release: + branches: + - master + env: CURL_VERSION: 7.68.0 @@ -54,6 +56,7 @@ jobs: RPI_TYPE: 3+ COMPILER_TYPE: CROSS BASE: true + if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -130,7 +133,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-buster_1_1: name: Cross GCC-8.3.0 32-bit Buster Pi[3+] needs: builder-buster_0 @@ -173,7 +176,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-buster_2: name: Native GCC-9.2.0 32-bit Buster Pi[3+] needs: [builder-buster_0, builder-buster_1] @@ -222,7 +225,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-stretch_0: name: BASE GCC-6.3.0 32-bit Stretch Pi[3+] @@ -233,6 +236,7 @@ jobs: RPI_TYPE: 3+ COMPILER_TYPE: CROSS BASE: true + if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -309,7 +313,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-stretch_1_1: name: Cross GCC-6.3.0 32-bit Stretch Pi[3+] needs: builder-stretch_0 @@ -352,7 +356,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-stretch_2: name: Native GCC-9.2.0 32-bit Stretch Pi[3+] needs: [builder-stretch_0, builder-stretch_1] @@ -401,4 +405,4 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() \ No newline at end of file + if: github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file diff --git a/.github/workflows/builder_64.yml b/.github/workflows/builder_64.yml index db1f135..5c6333b 100644 --- a/.github/workflows/builder_64.yml +++ b/.github/workflows/builder_64.yml @@ -34,8 +34,9 @@ on: pull_request: branches: - master - paths-ignore: - - '**.md' + release: + branches: + - master env: CURL_VERSION: 7.68.0 @@ -48,6 +49,7 @@ jobs: builder-64_0: name: BASE GCC-6.3.0 Pi[64] runs-on: ubuntu-latest + if: github.event_name == 'pull_request' && github.head_ref == 'base' env: GCC_VERSION: 6.3.0 RPI_TYPE: 64 @@ -83,10 +85,17 @@ jobs: run: bash patches/curl_stfp_patcher shell: bash if: success() + - name: after_success + run: | + mkdir -p $HOME/root + cp docs/gcc64.md $HOME/root/README.md + bash utils/SF_docs_deployer + shell: bash + if: success() - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-64_1: name: Cross GCC-9.2.0 Pi[64] needs: builder-64_0 @@ -127,15 +136,14 @@ jobs: if: success() - name: after_success run: | - mkdir -p $HOME/root - cp docs/cross-gcc64.md $HOME/root/README.md + cp docs/cross-gcc64.md $HOME/README.md bash utils/SF_docs_deployer shell: bash if: success() - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-64_1_0: name: Cross GCC-6.3.0 Pi[64] needs: builder-64_0 @@ -177,7 +185,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-64_1_1: name: Cross GCC-8.3.0 Pi[64] needs: builder-64_0 @@ -219,7 +227,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-64_2: name: Native GCC-9.2.0 Pi[64] needs: [builder-64_0, builder-64_1] @@ -260,15 +268,14 @@ jobs: if: success() - name: after_success run: | - mkdir -p $HOME/root - cp docs/native-gcc64.md $HOME/root/README.md + cp docs/native-gcc64.md $HOME/README.md bash utils/SF_docs_deployer shell: bash if: success() - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: github.event_name == 'release' && github.event.action == 'published' builder-64_2_1: name: Native GCC-8.3.0 Pi[64] needs: [builder-64_0, builder-64_1_1] @@ -310,4 +317,4 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() \ No newline at end of file + if: github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file diff --git a/docs/gcc64.md b/docs/gcc64.md new file mode 100644 index 0000000..7fd0b8c --- /dev/null +++ b/docs/gcc64.md @@ -0,0 +1,198 @@ + + + +

Description

+ +**You can easily identify each pre-compiled toolchain binary by its name as follows:** + +

Binary Description

+ +------------------------- + + +### TL'DR + +**What is this project?** + +> _This project provides the latest, automated, CI maintained, precompiled [**Raspberry Pi CPU optimized**](#optimization-flags-involved) GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is [**fastest to setup**](#e-toolchain-setup-documentation) and saves you tons of time and thereby helps you to get quickly started with software development with Pi._ + +**Who will benefit from the project?** + +> _This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s)._ + + + +------------------------- + +

Raspberry Pi Toolchains Logo

+ +This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. + +

Workflow

+ + +------------------------- + +## Toolchain Binaries description table: + +**Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** + +* **References:** + * **Host OS:** on which the toolchain is executed/used. + * **Target OS:** for which the toolchain generates code. + +
+ +| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | +| ---------- | -------- | ------- | -------- | --------------------------------- | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | +| **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC Native-Compiler Toolchains(Buster)** | Raspbian Buster OS (Debian Version 10) only | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 9.2.0 | +| **Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains** | any x64/x86 Linux machine | any x64 Raspberry Pi OS(like Pi64) | Stable/Production | 6.3.0, 8.3.0, 9.2.0 | +| **Raspberry Pi GCC 64-Bit Native-Compiler Toolchains** | any x64 Raspberry Pi OS(like Pi64) | any x64 Raspbian OS(like Pi64) | Stable/Production | 8.3.0, 9.2.0 | +| **Exclusive/Experimental Toolchains** | None | None | Beta/Experimental | None | + + +**Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ + + +------------------------- + + +## Toolchain Setup Documentation: + +These precompiled toolchains setup requires just three easy steps - **Downloading, Extracting and Linking**: + +* #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) + +------------------------- + +## Supported Toolchains Programming Languages: +- C++ +- Fortran +- C +- Any other language support can be easily [compiled](#scroll-build-scripts). + +------------------------- + + +## Supporting this Project + +**If these binaries helped you big time, please consider supporting it through any size donations. Thank you.** + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal&style=for-the-badge)](https://paypal.me/AbhiTronix) + +***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** + +------------------------- + + +# Additional Information + +### Supported ARM Devices: + +- All Raspberry Pi hardware/versions/models are currently supported. +- Any other ARM Device(such as android, IoT) with similar Hardware architecture(see [Optimization Flags](#optimization-flags-involved)) should also work. + +### Optimization Flags Involved: + +**These toolchains are built with these following system-specific LTO _(Link Time Optimization)_ flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:** + +**Important:** The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported! + +| Raspberry Pi Board | Link Time Optimization Flags | +|---|---| +| Raspberry Pi - *Zero/W/WH & 1 Model A/B/A+/B+* | `-march=armv6 -mfloat-abi=hard -mfpu=vfp` | +| Raspberry Pi - *2 & 3 Model A/B* | `-march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit)* | `-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8` | +| Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | + + +------------------------- + + +## Citing + +**Here is a Bibtex entry you can use to cite this project in a publication:** + +```bibtex +@misc{raspberry-pi-cross-compilers, + Title = {Raspberry Pi Toolchains}, + Author = {Abhishek Thakur}, + howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}} + } +``` + + +------------------------- + + +## Copyright License + +**Copyright © 2020 abhiTronix** + +This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. + +------------------------- + + +## Acknowledgments + +Thank you, + +- [GNU project][gnu] for providing the latest source code. +- [Raspberry Pi project][pi-project] for providing the latest kernel and docs. +- [GitHub Actions][git-action] for making it easier to automate Toolchain Builder workflows. +- [Sourceforge project][sf-project] for allowing me to publish these binaries. + + + +[downloads-badge]:https://img.shields.io/sourceforge/dt/raspberry-pi-cross-compilers?style=for-the-badge&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAYFBMVEVHcEz/OwDzfCD0fCDzfCDzfR/zfCD9fiHzfCD0fCDzfCD0fSDzeyDzfB/zfCDzfCDzfCD/WgPzfCDxfx7wfCH0fCDzfCDzfCDzfB/zfCDzfCD0fCDzfCDyfCD1fCDzfCAr6LXeAAAAH3RSTlMAAXuI/oNpCPhIlYq2oYC37wN2IRDO5sI926lfUycyJgWG0gAABKZJREFUeAHt3P9Os0gUxvEzOhZobUvL71r73P9dbkzfJcW3wPCcnRzN8v1b48cjhWEmUdbW1tbW1tbWPrr8WVUrP7cXjJSXv88MZL/Q7IvfZ8aL/MzOGG+3mlfzal7N/0vzpq43Yt5hkfkN8Dj8OvNXh19mJtTmZnM1YTZXE2ZzNWE2VxNmczVhNlcTZls1YT4Tr2HWZpfDUk2Yp9E4/FDz9De8/FCzuK2BmjBbqgmzvZow26t5M6+2N9ur3wgzobYw82p7860g1MbmA9JMvneaVJubpUKvNpr1tPlVntQBSFti1kbmHo2cuK4NzVIDgK+Sv9X7KbWpucS9vRBqI7Nrcc9fCbWFeXBAV5eE2sbsKvzJb4VQW5jlhj7fEmoLszyYfOUItYH50+Ohq8RX683yjscqF1+tN18xLBOlOr75VNYY1ohOHd8s7h3fu8nTTryaN4ceLPqtqNTxzZnHX+WJRh3fXOR40lV4dXxzUuFZF6HV8c1ywbN8mtDq+OYzRroKqY5vbj1G2gqrjm0uaozVCa2Oa3ZHjPfJq2Oa5YyJNsKrI875M8V4fi/R1LxZXIOpOtGoI5nlA5P5sv/COluq9i9xzGWO6Vr50wbdiZs1b57eMwj4JLbAh3Cz5s3EoAePl9Kjc/rrWm+WM2byzePe5FXUs9abXYe5avm3I9Do7yF6c4vZfPKwKeILRn2WQa+0uXfMVjz+sIOo1TvludUpx3yt3HMbAJ3Tqs8YrzrJfDcE1N/nNv2voFFPzelN5nMvmM+fB8/OnSjVuXY52yCgtwG6EqX6gPEaJ/PVCGg7QPtSRnMharenFsJ9JUK6DK5pZKKc9dQ5mZ9XtwjpOFymHGQiF1/9gZCa4Q32ImI66/MitLvcDwhkMne6YLyNXv2GkHpl169FJitrjPehVbvdInTi8VUqc+0Cll+8eo+Qum8f25PmvSIVQs2je0spMx0nb/qEmkDncq8JnPQV470nolXvMN3gL1p4fOVTmS5LQ8y8+oCgisHVUevMjJp4uPhMRFxS416jN6vULYLaDd6R9nqzSl16hFSXj8dIZ71Zp64QVJMdeg1atXnYUrXbYnFpojPrZ33F4t6VZv2skxxL+9Ca9bPeY2FpqTXrZ33DwrZ6s37WDRblP/Vm/awzLOoSwUzM+ogFpZ+sWT/ribOt6XZRzMSsXxBcl0QxE7M+NQgsvfHmoF7D1UWNsDaMOZb6lvMXNG/WqtsQ9dYRZmP1jjHHVRdVwM46YY6qduUeE3UtY46o7gk1RvK7hDTHVyebp2x/4Z7d0dU9u8K36h27rouv7vvcvPfzzqvXNhHSHF89rLxl12vWFk793s33NqkmIswGasJspObNdmrebKfmzXZq3myn5s02at58JM282tbMq+3NvJo326l5s52aN9upebOdmjdbqlmzrZozG6uvjNla3RFmc3XqCLO1emttJv7JUZMQZiM1b7ZT82Z7dVMSZiM1b7ZR25uJzuirCLOVmjdbqlmzrZozW6tTHI3NRGUp1mYi5+zNfKt5Na9m+/g9c8tcmVubiTJzM1HhKbP9QuRZfm9vnqgsnvUfk9fW1tbW1tb+AZhQydEXZaX4AAAAAElFTkSuQmCC +[license-badge]:https://img.shields.io/github/license/abhiTronix/raspberry-pi-cross-compilers.svg?style=for-the-badge +[kofi-badge]:https://www.ko-fi.com/img/githubbutton_sm.svg + +[downloads]:https://sourceforge.net/projects/raspberry-pi-cross-compilers +[license]:https://github.com/abhiTronix/raspberry-pi-cross-compilers/blob/master/LICENSE +[kofi]:https://ko-fi.com/W7W8WTYO +[gnu]:https://gcc.gnu.org/ +[pi-project]:https://www.raspberrypi.org/ +[sf-project]:https://sourceforge.net +[git-action]:https://github.com/features/actions +[tar]:https://www.gnu.org/software/tar/ +[pigz]:https://zlib.net/pigz/ + +[cc-stretch-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ +[cc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.2.0/ +[cc-buster-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ +[cc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.2.0/ +[nc-stretch-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Stretch/ +[nc-buster-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Native-Compiler%20Toolchains/Buster/ +[cc-64-630]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%206.3.0/ +[cc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%208.3.0/ +[cc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/GCC%209.2.0/ +[nc-64-830]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%208.3.0/ +[nc-64-920]:https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Native-Compiler%20Toolchains/GCC%209.2.0/ \ No newline at end of file From 028868842d2f4f857be486bea747191aa2c84853 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Wed, 5 Feb 2020 14:49:36 +0530 Subject: [PATCH 50/51] BugFixes --- .github/workflows/builder_0_1.yml | 22 ++++++++++------------ .github/workflows/builder_2_3.yml | 22 ++++++++++------------ .github/workflows/builder_3_plus.yml | 23 ++++++++++------------- .github/workflows/builder_64.yml | 15 +++++++-------- 4 files changed, 37 insertions(+), 45 deletions(-) diff --git a/.github/workflows/builder_0_1.yml b/.github/workflows/builder_0_1.yml index 632adb3..0561b17 100644 --- a/.github/workflows/builder_0_1.yml +++ b/.github/workflows/builder_0_1.yml @@ -57,7 +57,6 @@ jobs: RPI_TYPE: 0-1 COMPILER_TYPE: CROSS BASE: true - if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -83,7 +82,7 @@ jobs: - name: script run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' - name: before_script run: bash patches/curl_stfp_patcher shell: bash @@ -97,7 +96,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' builder-buster_1: name: Cross GCC-9.2.0 32-bit Buster Pi[0-1] needs: builder-buster_0 @@ -147,7 +146,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-buster_1_1: name: Cross GCC-8.3.0 32-bit Buster Pi[0-1] needs: builder-buster_0 @@ -190,7 +189,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-buster_2: name: Native GCC-9.2.0 32-bit Buster Pi[0-1] needs: [builder-buster_0, builder-buster_1] @@ -240,7 +239,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-stretch_0: name: BASE GCC-6.3.0 32-bit Stretch Pi[0-1] @@ -251,7 +250,6 @@ jobs: RPI_TYPE: 0-1 COMPILER_TYPE: CROSS BASE: true - if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -277,7 +275,7 @@ jobs: - name: script run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' - name: before_script run: bash patches/curl_stfp_patcher shell: bash @@ -285,7 +283,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' builder-stretch_1: name: Cross GCC-9.2.0 32-bit Stretch Pi[0-1] needs: builder-stretch_0 @@ -328,7 +326,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-stretch_1_1: name: Cross GCC-6.3.0 32-bit Stretch Pi[0-1] needs: builder-stretch_0 @@ -371,7 +369,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-stretch_2: name: Native GCC-9.2.0 32-bit Stretch Pi[0-1] needs: [builder-stretch_0, builder-stretch_1] @@ -414,4 +412,4 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file + if: success() && github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file diff --git a/.github/workflows/builder_2_3.yml b/.github/workflows/builder_2_3.yml index 637afcb..dbd1159 100644 --- a/.github/workflows/builder_2_3.yml +++ b/.github/workflows/builder_2_3.yml @@ -56,7 +56,6 @@ jobs: RPI_TYPE: 2-3 COMPILER_TYPE: CROSS BASE: true - if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -82,7 +81,7 @@ jobs: - name: script run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' - name: before_script run: bash patches/curl_stfp_patcher shell: bash @@ -90,7 +89,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' builder-buster_1: name: Cross GCC-9.2.0 32-bit Buster Pi[2-3] needs: builder-buster_0 @@ -139,7 +138,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-buster_1_1: name: Cross GCC-8.3.0 32-bit Buster Pi[2-3] needs: builder-buster_0 @@ -182,7 +181,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-buster_2: name: Native GCC-9.2.0 32-bit Buster Pi[2-3] needs: [builder-buster_0, builder-buster_1] @@ -225,7 +224,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-stretch_0: name: BASE GCC-6.3.0 32-bit Stretch Pi[2-3] @@ -236,7 +235,6 @@ jobs: RPI_TYPE: 2-3 COMPILER_TYPE: CROSS BASE: true - if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -262,7 +260,7 @@ jobs: - name: script run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' - name: before_script run: bash patches/curl_stfp_patcher shell: bash @@ -270,7 +268,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' builder-stretch_1: name: Cross GCC-9.2.0 32-bit Stretch Pi[2-3] needs: builder-stretch_0 @@ -319,7 +317,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-stretch_1_1: name: Cross GCC-6.3.0 32-bit Stretch Pi[2-3] needs: builder-stretch_0 @@ -362,7 +360,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-stretch_2: name: Native GCC-9.2.0 32-bit Stretch Pi[2-3] needs: [builder-stretch_0, builder-stretch_1] @@ -405,4 +403,4 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file + if: success() && github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file diff --git a/.github/workflows/builder_3_plus.yml b/.github/workflows/builder_3_plus.yml index ad88405..2893b4c 100644 --- a/.github/workflows/builder_3_plus.yml +++ b/.github/workflows/builder_3_plus.yml @@ -38,7 +38,6 @@ on: branches: - master - env: CURL_VERSION: 7.68.0 CCACHE_COMPRESS: 1 @@ -56,7 +55,6 @@ jobs: RPI_TYPE: 3+ COMPILER_TYPE: CROSS BASE: true - if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -82,7 +80,7 @@ jobs: - name: script run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' - name: before_script run: bash patches/curl_stfp_patcher shell: bash @@ -90,7 +88,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' builder-buster_1: name: Cross GCC-9.2.0 32-bit Buster Pi[3+] needs: builder-buster_0 @@ -133,7 +131,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-buster_1_1: name: Cross GCC-8.3.0 32-bit Buster Pi[3+] needs: builder-buster_0 @@ -176,7 +174,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-buster_2: name: Native GCC-9.2.0 32-bit Buster Pi[3+] needs: [builder-buster_0, builder-buster_1] @@ -225,7 +223,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-stretch_0: name: BASE GCC-6.3.0 32-bit Stretch Pi[3+] @@ -236,7 +234,6 @@ jobs: RPI_TYPE: 3+ COMPILER_TYPE: CROSS BASE: true - if: github.event_name == 'pull_request' && github.head_ref == 'base' steps: - uses: actions/checkout@v2 - name: before_install @@ -262,7 +259,7 @@ jobs: - name: script run: bash build-scripts/CI/CIBB_32b -g $GCC_VERSION -r $RPI_TYPE -o $RPIOS_TYPE shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' - name: before_script run: bash patches/curl_stfp_patcher shell: bash @@ -270,7 +267,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' builder-stretch_1: name: Cross GCC-9.2.0 32-bit Stretch Pi[3+] needs: builder-stretch_0 @@ -313,7 +310,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-stretch_1_1: name: Cross GCC-6.3.0 32-bit Stretch Pi[3+] needs: builder-stretch_0 @@ -356,7 +353,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-stretch_2: name: Native GCC-9.2.0 32-bit Stretch Pi[3+] needs: [builder-stretch_0, builder-stretch_1] @@ -405,4 +402,4 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file + if: success() && github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file diff --git a/.github/workflows/builder_64.yml b/.github/workflows/builder_64.yml index 5c6333b..bf1ac4b 100644 --- a/.github/workflows/builder_64.yml +++ b/.github/workflows/builder_64.yml @@ -49,7 +49,6 @@ jobs: builder-64_0: name: BASE GCC-6.3.0 Pi[64] runs-on: ubuntu-latest - if: github.event_name == 'pull_request' && github.head_ref == 'base' env: GCC_VERSION: 6.3.0 RPI_TYPE: 64 @@ -80,7 +79,7 @@ jobs: - name: script run: bash build-scripts/CI/CIBB_64b -g $GCC_VERSION shell: bash - if: success() + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' - name: before_script run: bash patches/curl_stfp_patcher shell: bash @@ -95,7 +94,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'pull_request' && github.head_ref == 'base' builder-64_1: name: Cross GCC-9.2.0 Pi[64] needs: builder-64_0 @@ -143,7 +142,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-64_1_0: name: Cross GCC-6.3.0 Pi[64] needs: builder-64_0 @@ -185,7 +184,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-64_1_1: name: Cross GCC-8.3.0 Pi[64] needs: builder-64_0 @@ -227,7 +226,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-64_2: name: Native GCC-9.2.0 Pi[64] needs: [builder-64_0, builder-64_1] @@ -275,7 +274,7 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' + if: success() && github.event_name == 'release' && github.event.action == 'published' builder-64_2_1: name: Native GCC-8.3.0 Pi[64] needs: [builder-64_0, builder-64_1_1] @@ -317,4 +316,4 @@ jobs: - name: deploy run: bash utils/SF_deployer shell: bash - if: github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file + if: success() && github.event_name == 'release' && github.event.action == 'published' \ No newline at end of file From c58bbac3e322bbf8e904dab5ff4c1af132bd4e91 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Wed, 5 Feb 2020 20:52:52 +0530 Subject: [PATCH 51/51] Removed redundant info. --- docs/base-gcc.md | 52 ++++++++++++++++++++++++++++++-------- docs/cross-gcc-buster.md | 50 ++++++++++++++++++++++++++++-------- docs/cross-gcc-stretch.md | 50 ++++++++++++++++++++++++++++-------- docs/cross-gcc.md | 50 ++++++++++++++++++++++++++++-------- docs/cross-gcc64.md | 50 ++++++++++++++++++++++++++++-------- docs/gcc64.md | 50 ++++++++++++++++++++++++++++-------- docs/native-gcc-buster.md | 49 ++++++++++++++++++++++++++++------- docs/native-gcc-stretch.md | 50 ++++++++++++++++++++++++++++-------- docs/native-gcc.md | 52 ++++++++++++++++++++++++++++++-------- docs/native-gcc64.md | 50 ++++++++++++++++++++++++++++-------- 10 files changed, 402 insertions(+), 101 deletions(-) diff --git a/docs/base-gcc.md b/docs/base-gcc.md index a409ce3..6c3a3fa 100644 --- a/docs/base-gcc.md +++ b/docs/base-gcc.md @@ -24,13 +24,7 @@ along with this program. If not, see . --> -

Description

- -**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- +

Description

### TL'DR @@ -45,8 +39,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +52,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +69,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -80,8 +82,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -89,16 +95,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -108,8 +122,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -132,7 +150,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -148,7 +170,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -157,7 +183,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments diff --git a/docs/cross-gcc-buster.md b/docs/cross-gcc-buster.md index 469b231..e094c51 100644 --- a/docs/cross-gcc-buster.md +++ b/docs/cross-gcc-buster.md @@ -26,12 +26,6 @@ along with this program. If not, see .

Description

-**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- - ### TL'DR @@ -45,8 +39,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +52,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +69,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -80,8 +82,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -89,16 +95,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -108,8 +122,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -132,7 +150,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -148,7 +170,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -157,7 +183,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments diff --git a/docs/cross-gcc-stretch.md b/docs/cross-gcc-stretch.md index c9e7767..8ebff79 100644 --- a/docs/cross-gcc-stretch.md +++ b/docs/cross-gcc-stretch.md @@ -26,12 +26,6 @@ along with this program. If not, see .

Description

-**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- - ### TL'DR @@ -45,8 +39,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +52,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +69,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -80,8 +82,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -89,16 +95,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -108,8 +122,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -132,7 +150,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -148,7 +170,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -157,7 +183,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments diff --git a/docs/cross-gcc.md b/docs/cross-gcc.md index 102d457..05a2d05 100644 --- a/docs/cross-gcc.md +++ b/docs/cross-gcc.md @@ -26,12 +26,6 @@ along with this program. If not, see .

Description

-**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- - ### TL'DR @@ -45,8 +39,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +52,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +69,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -80,8 +82,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -89,16 +95,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -108,8 +122,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -132,7 +150,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -148,7 +170,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -157,7 +183,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments diff --git a/docs/cross-gcc64.md b/docs/cross-gcc64.md index 17567d3..dad0534 100644 --- a/docs/cross-gcc64.md +++ b/docs/cross-gcc64.md @@ -26,12 +26,6 @@ along with this program. If not, see .

Description

-**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- - ### TL'DR @@ -45,8 +39,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +52,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +69,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -80,8 +82,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -89,16 +95,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -108,8 +122,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -132,7 +150,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -148,7 +170,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -157,7 +183,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments diff --git a/docs/gcc64.md b/docs/gcc64.md index 7fd0b8c..91ec1ce 100644 --- a/docs/gcc64.md +++ b/docs/gcc64.md @@ -26,12 +26,6 @@ along with this program. If not, see .

Description

-**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- - ### TL'DR @@ -45,8 +39,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +52,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +69,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -80,8 +82,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -89,16 +95,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -108,8 +122,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -132,7 +150,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -148,7 +170,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -157,7 +183,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments diff --git a/docs/native-gcc-buster.md b/docs/native-gcc-buster.md index 45a1097..4eb3205 100644 --- a/docs/native-gcc-buster.md +++ b/docs/native-gcc-buster.md @@ -26,11 +26,6 @@ along with this program. If not, see .

Description

-**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- ### TL'DR @@ -45,8 +40,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +53,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +70,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -80,8 +83,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -89,16 +96,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -108,8 +123,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -132,7 +151,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -148,7 +171,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -157,7 +184,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments diff --git a/docs/native-gcc-stretch.md b/docs/native-gcc-stretch.md index 0b9454c..e6102c9 100644 --- a/docs/native-gcc-stretch.md +++ b/docs/native-gcc-stretch.md @@ -26,12 +26,6 @@ along with this program. If not, see .

Description

-**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- - ### TL'DR @@ -45,8 +39,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +52,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +69,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -81,8 +83,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -90,16 +96,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -109,8 +123,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -133,7 +151,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -149,7 +171,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -158,7 +184,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments diff --git a/docs/native-gcc.md b/docs/native-gcc.md index ec95b6d..96e2b22 100644 --- a/docs/native-gcc.md +++ b/docs/native-gcc.md @@ -26,13 +26,6 @@ along with this program. If not, see .

Description

-**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- - - ### TL'DR **What is this project?** @@ -45,8 +38,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +51,13 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ + ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +69,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -80,8 +82,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -89,16 +95,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -108,8 +122,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -132,7 +150,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -148,7 +170,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -157,7 +183,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments diff --git a/docs/native-gcc64.md b/docs/native-gcc64.md index c17cc6d..869ac50 100644 --- a/docs/native-gcc64.md +++ b/docs/native-gcc64.md @@ -26,12 +26,6 @@ along with this program. If not, see .

Description

-**You can easily identify each pre-compiled toolchain binary by its name as follows:** - -

Binary Description

- -------------------------- - ### TL'DR @@ -45,8 +39,12 @@ along with this program. If not, see . +
+ ------------------------- +
+

Raspberry Pi Toolchains Logo

This project now utilizes powerful [**Github Actions**][git-action] CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository. @@ -54,8 +52,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou

Workflow

+
+ ------------------------- +
+ ## Toolchain Binaries description table: **Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:** @@ -67,7 +69,7 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou
| Toolchains | Host OS | Target OS | Current Status | Precompiled GCC versions available | -| ---------- | -------- | ------- | -------- | --------------------------------- | +| ---------- | -------- | ------- | -------- | ------------------------ | | **Raspberry Pi GCC Cross-Compiler Toolchains(Stretch)** | any x64/x86 Linux machine | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 6.3.0, 9.2.0 | | **Raspberry Pi GCC Cross-Compiler Toolchains(Buster)** | any x64/x86 Linux machine | Raspbian Buster OS (Debian Version 10) only | Stable/Production | 8.3.0, 9.2.0 | | **Raspberry Pi GCC Native-Compiler Toolchains(Stretch)** | Raspbian Stretch OS (Debian Version 9) only | Raspbian Stretch OS (Debian Version 9) only | Stable/Production | 9.2.0 | @@ -80,8 +82,12 @@ This project now utilizes powerful [**Github Actions**][git-action] CI(Continuou **Tip:** _To get the location of each Binary of this project on SourceForge, you can also check out [this Reference Tree](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Toolchain-Binaries-Reference-Tree#toolchain-binaries-reference-tree)._ +
+ ------------------------- +
+ ## Toolchain Setup Documentation: @@ -89,16 +95,24 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin * #### [WIKI-Documentation (en-English)](https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki) +
+ ------------------------- +
+ ## Supported Toolchains Programming Languages: - C++ - Fortran - C - Any other language support can be easily [compiled](#scroll-build-scripts). +
+ ------------------------- +
+ ## Supporting this Project @@ -108,8 +122,12 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ***You can also share your [**thoughts**](https://sourceforge.net/projects/raspberry-pi-cross-compilers/reviews) or just drop a [star](https://github.com/abhiTronix/raspberry-pi-cross-compilers/stargazers). Thank you.*** +
+ ------------------------- +
+ # Additional Information @@ -132,7 +150,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin | Raspberry Pi - *3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit)* | `-march=armv8-a+fp+simd` | -------------------------- +
+ +------------------------- + +
## Citing @@ -148,7 +170,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin ``` -------------------------- +
+ +------------------------- + +
## Copyright License @@ -157,7 +183,11 @@ These precompiled toolchains setup requires just three easy steps - **Downloadin This Project source-code and its precompiled binaries are licensed under the [**GPLv3**][license] license. -------------------------- +
+ +------------------------- + +
## Acknowledgments