Commit a975e3a4 authored by Ed Reel's avatar Ed Reel Committed by Chris Thurber

Add gcc8 package (#3127)

Remove gcc package

Update gcc7 from 7.3.0-3 to 7.4.0

Change dependency to gcc8 in buildessential

Update install.sh to use gcc8

Replace xz package with xzutils

Update postinstall message in install.sh

Add pre-built binaries for gcc7 and gcc8
parent 8db06664
......@@ -43,13 +43,13 @@ for dir in "${CREW_CONFIG_PATH}/meta" "${CREW_DEST_DIR}" "${CREW_PACKAGES_PATH}"
done
# prepare url and sha256
# install only gcc7, ruby, libiconv, git and libssh2 (order matters)
# install only gcc8, ruby, libiconv, git and libssh2 (order matters)
urls=()
sha256s=()
case "${ARCH}" in
"aarch64")
urls+=('https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.3.0-3-chromeos-armv7l.tar.xz')
sha256s+=('c9dd2a2b2d195f0f2021dc673d6317e46b5dfaef582f496b4cea1f3c5c2c17ad')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.2.0-chromeos-armv7l.tar.xz')
sha256s+=('536323fc5dd35e53665a19e65c636f288153efe4cdf31617c32103c64593b285')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/ruby-2.5.3-chromeos-armv7l.tar.xz')
sha256s+=('5e485a0320b298e1f5c4ff50d98c6fe6d06ad9a38d9119d580a8b469418e1e6a')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/libiconv-1.15-chromeos-armv7l.tar.xz')
......@@ -61,11 +61,11 @@ case "${ARCH}" in
;;
"armv7l")
if ! type "xz" > /dev/null; then
urls+=('https://github.com/snailium/chrome-cross/releases/download/v1.8.1/xz-5.2.3-chromeos-armv7l.tar.gz')
sha256s+=('4dc9f086ee7613ab0145ec0ed5ac804c80c620c92f515cb62bae8d3c508cbfe7')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/xzutils-5.2.3-2-chromeos-armv7l.tar.xz')
sha256s+=('839ead7097adee016986a9992d8cf8f4c91554ade2b6e111f7d0379c595be366')
fi
urls+=('https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.3.0-3-chromeos-armv7l.tar.xz')
sha256s+=('c9dd2a2b2d195f0f2021dc673d6317e46b5dfaef582f496b4cea1f3c5c2c17ad')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.2.0-chromeos-armv7l.tar.xz')
sha256s+=('536323fc5dd35e53665a19e65c636f288153efe4cdf31617c32103c64593b285')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/ruby-2.5.3-chromeos-armv7l.tar.xz')
sha256s+=('5e485a0320b298e1f5c4ff50d98c6fe6d06ad9a38d9119d580a8b469418e1e6a')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/libiconv-1.15-chromeos-armv7l.tar.xz')
......@@ -76,8 +76,8 @@ case "${ARCH}" in
sha256s+=('6fa84296583273dd9e749a2c54cb1cf688a7dab032e2528de5944a4d9777f037')
;;
"i686")
urls+=('https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.3.0-3-chromeos-i686.tar.xz')
sha256s+=('4202ea5e9d703d39c522e5f1d7145b8d682a0380baf53b98309b94816408e0b6')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.2.0-chromeos-i686.tar.xz')
sha256s+=('e37ca8d49198beaa9ba582fc25fa598ab3cd5ed7e46f96a03176fb9002cc6f7b')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/ruby-2.5.3-chromeos-i686.tar.xz')
sha256s+=('6f4a5b96c31ef5ee4f09ac15da4c7a4a9d838ed5233038136ead1e155d17f342')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/libiconv-1.15-chromeos-i686.tar.xz')
......@@ -88,8 +88,8 @@ case "${ARCH}" in
sha256s+=('771b2d30a49dd691db8456f773da404753d368f3c31d03c682c552ea0b5eb65e')
;;
"x86_64")
urls+=('https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.3.0-3-chromeos-x86_64.tar.xz')
sha256s+=('992fa6556e3c4b45ae548b0ce64e1c5cafaffd109fe9aba5d857c6c569e5b33e')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.2.0-chromeos-x86_64.tar.xz')
sha256s+=('6d982f3c35acd3a738e176a3f3b8c4ea093c7be86882153a7711841cf0c80737')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/ruby-2.5.3-chromeos-x86_64.tar.xz')
sha256s+=('352b78fc883cf8936136991fda9ca5d49e90b2951626158d6af8ef4b58d67f97')
urls+=('https://dl.bintray.com/chromebrew/chromebrew/libiconv-1.15-chromeos-x86_64.tar.xz')
......@@ -213,18 +213,26 @@ if [[ "${CREW_PREFIX}" != "/usr/local" ]]; then
echo 'source ~/.bashrc'
echo
fi
echo "To set the default PAGER environment variable to be able to use less:"
echo "To set the default PAGER environment variable to use less:"
echo "echo \"export PAGER='less'\" >> ~/.bashrc && . ~/.bashrc"
echo
echo "Alternatively, you could use most. Why settle for less, right?"
echo "echo \"export PAGER='most'\" >> ~/.bashrc && . ~/.bashrc"
echo
echo "You may wish to set the EDITOR environment variable."
echo "For example, to set 'vim' as the default editor, execute the following:"
echo "Below are some text editor suggestions."
echo
echo "To install 'nano', execute:"
echo "crew install nano"
echo
echo "Or, to get an updated version of 'vim', execute:"
echo "crew install vim"
echo
echo "You may wish to set the EDITOR environment variable for an editor default."
echo
echo "For example, to set 'nano' as the default editor, execute:"
echo "echo \"export EDITOR='nano'\" >> ~/.bashrc && . ~/.bashrc"
echo
echo "To set 'vim' as the default editor, execute:"
echo "echo \"export EDITOR='vim'\" >> ~/.bashrc && . ~/.bashrc"
echo "Nano is a simple text editor that is the default on Chrome OS,"
echo " and is recommended."
echo "To install 'nano', run 'crew install nano'."
echo "Or, to get an updated version of 'vim', run 'crew install vim'."
echo
echo "Chromebrew installed successfully and package lists updated."
......@@ -3,11 +3,11 @@ require 'package'
class Buildessential < Package
description 'A collection of tools essential to compile and build software.'
homepage ''
version '1.3'
version '1.4'
is_fake
depends_on 'gcc7'
depends_on 'gcc8'
depends_on 'linuxheaders'
depends_on 'make'
depends_on 'pkgconfig'
......
require 'package'
class Gcc < Package
description 'The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go.'
homepage 'https://www.gnu.org/software/gcc/'
version '4.9.4-1'
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew-cross/gcc-4.9.4-1-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew-cross/gcc-4.9.4-1-chromeos-armv7l.tar.xz',
i686: 'https://dl.bintray.com/chromebrew/chromebrew-cross/gcc-4.9.4-1-chromeos-i686.tar.xz',
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew-cross/gcc-4.9.4-1-chromeos-x86_64.tar.xz',
})
binary_sha256 ({
aarch64: 'ecb047a9f52ea6b24313d4329b00236b6880e12df684e52e34e9664127d447c6',
armv7l: 'ecb047a9f52ea6b24313d4329b00236b6880e12df684e52e34e9664127d447c6',
i686: '9a8b20b58a564c9557c74b2b2769ddc68c110211588356b71c533aac6d54431b',
x86_64: '1ae1f58ca4b9fee3b0f68856e5d49b2feeb90e259e8d885f339c9aa8091f27c8',
})
depends_on 'binutils'
depends_on 'gmp'
depends_on 'mpfr'
depends_on 'mpc'
depends_on 'isl'
depends_on 'glibc'
end
......@@ -3,27 +3,27 @@ require 'package'
class Gcc7 < Package
description 'The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go.'
homepage 'https://www.gnu.org/software/gcc/'
version '7.3.0-3'
source_url 'https://github.com/gcc-mirror/gcc/archive/gcc-7_3_0-release.tar.gz'
source_sha256 'af11c397296cab69996723b9d828c98a9bb749447ac8f7ed67458bcdb60311ed'
version '7.4.0'
source_url 'https://ftpmirror.gnu.org/gcc/gcc-7.4.0/gcc-7.4.0.tar.xz'
source_sha256 'eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51'
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.3.0-3-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.3.0-3-chromeos-armv7l.tar.xz',
i686: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.3.0-3-chromeos-i686.tar.xz',
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.3.0-3-chromeos-x86_64.tar.xz',
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.4.0-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.4.0-chromeos-armv7l.tar.xz',
i686: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.4.0-chromeos-i686.tar.xz',
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/gcc7-7.4.0-chromeos-x86_64.tar.xz',
})
binary_sha256 ({
aarch64: 'c9dd2a2b2d195f0f2021dc673d6317e46b5dfaef582f496b4cea1f3c5c2c17ad',
armv7l: 'c9dd2a2b2d195f0f2021dc673d6317e46b5dfaef582f496b4cea1f3c5c2c17ad',
i686: '4202ea5e9d703d39c522e5f1d7145b8d682a0380baf53b98309b94816408e0b6',
x86_64: '992fa6556e3c4b45ae548b0ce64e1c5cafaffd109fe9aba5d857c6c569e5b33e',
aarch64: '07126320a193d947aeac51f1827ff954c322a8f43014f3cff146715b72f9d7f8',
armv7l: '07126320a193d947aeac51f1827ff954c322a8f43014f3cff146715b72f9d7f8',
i686: '72cd956d055ad418b052dab407ec3a2b16663b09c396073a23bd12828fcf03c3',
x86_64: '6cce57e98836ccc3c6773df1627bca2102b4f89c7abf64dc47f7b97120b0e01b',
})
depends_on 'unzip' => :build
depends_on 'gawk' => :build
depends_on 'dejagnu' => :build # for test
#depends_on 'gcc' => :build # gcc version 4.9.4
depends_on 'gcc8' => :build # gcc version 8.2.0
depends_on 'icu4c' => :build # icu version 62.1
depends_on 'python27' => :build
depends_on 'python3' => :build
......@@ -51,7 +51,6 @@ class Gcc7 < Package
"--host=armv7l-cros-linux-gnueabihf",
"--target=armv7l-cros-linux-gnueabihf",
"--enable-checking=release",
"--enable-languages=c,c++,fortran",
"--disable-multilib",
"--enable-threads=posix",
"--disable-bootstrap",
......@@ -65,7 +64,7 @@ class Gcc7 < Package
"--with-fpu=neon",
"--with-float=hard",
"--with-default-libstdcxx-abi=gcc4-compatible"
when "x86_64"
when 'x86_64'
system "../configure",
"--prefix=#{CREW_PREFIX}",
"--libdir=#{CREW_LIB_PREFIX}",
......@@ -73,7 +72,6 @@ class Gcc7 < Package
"--host=#{ARCH}-cros-linux-gnu",
"--target=#{ARCH}-cros-linux-gnu",
"--enable-checking=release",
"--enable-languages=c,c++,fortran",
"--disable-multilib",
"--enable-threads=posix",
"--disable-bootstrap",
......@@ -84,7 +82,7 @@ class Gcc7 < Package
"--program-suffix=-7.3",
"--with-arch-64=x86-64",
"--with-default-libstdcxx-abi=gcc4-compatible"
when "i686"
when 'i686'
system "../configure",
"--prefix=#{CREW_PREFIX}",
"--libdir=#{CREW_LIB_PREFIX}",
......@@ -92,7 +90,6 @@ class Gcc7 < Package
"--host=#{ARCH}-cros-linux-gnu",
"--target=#{ARCH}-cros-linux-gnu",
"--enable-checking=release",
"--enable-languages=c,c++,fortran",
"--disable-multilib",
"--enable-threads=posix",
"--disable-bootstrap",
......
require 'package'
class Gcc8 < Package
description 'The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go.'
homepage 'https://www.gnu.org/software/gcc/'
version '8.2.0'
source_url 'https://ftpmirror.gnu.org/gcc/gcc-8.2.0/gcc-8.2.0.tar.xz'
source_sha256 '196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080'
binary_url ({
aarch64: 'https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.2.0-chromeos-armv7l.tar.xz',
armv7l: 'https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.2.0-chromeos-armv7l.tar.xz',
i686: 'https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.2.0-chromeos-i686.tar.xz',
x86_64: 'https://dl.bintray.com/chromebrew/chromebrew/gcc8-8.2.0-chromeos-x86_64.tar.xz',
})
binary_sha256 ({
aarch64: '536323fc5dd35e53665a19e65c636f288153efe4cdf31617c32103c64593b285',
armv7l: '536323fc5dd35e53665a19e65c636f288153efe4cdf31617c32103c64593b285',
i686: 'e37ca8d49198beaa9ba582fc25fa598ab3cd5ed7e46f96a03176fb9002cc6f7b',
x86_64: '6d982f3c35acd3a738e176a3f3b8c4ea093c7be86882153a7711841cf0c80737',
})
depends_on 'unzip' => :build
depends_on 'gawk' => :build
depends_on 'dejagnu' => :build # for test
depends_on 'gcc7' => :build # gcc version 7.4.0
depends_on 'icu4c' => :build # icu version 62.1
depends_on 'python27' => :build
depends_on 'python3' => :build
depends_on 'binutils'
depends_on 'gmp'
depends_on 'mpfr'
depends_on 'mpc'
depends_on 'isl'
depends_on 'cloog'
depends_on 'glibc'
def self.patch
# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86724#c4.
system "sed -i '40i#include <isl/id.h>' gcc/graphite.h"
system "sed -i '41i#include <isl/space.h>' gcc/graphite.h"
end
def self.build
# previous compile issue
# /usr/local/bin/ld: cannot find crti.o: No such file or directory
# /usr/local/bin/ld: cannot find /usr/lib64/libc_nonshared.a
ENV["LIBRARY_PATH"] = "#{CREW_LIB_PREFIX}" # fix x86_64 issues
system "mkdir -p objdir"
Dir.chdir("objdir") do
case ARCH
when 'armv7l', 'aarch64'
system "../configure",
"--prefix=#{CREW_PREFIX}",
"--libdir=#{CREW_LIB_PREFIX}",
"--build=armv7l-cros-linux-gnueabihf",
"--host=armv7l-cros-linux-gnueabihf",
"--target=armv7l-cros-linux-gnueabihf",
"--enable-checking=release",
"--disable-multilib",
"--enable-threads=posix",
"--disable-bootstrap",
"--disable-werror",
"--disable-libmpx",
"--enable-static",
"--enable-shared",
"--program-suffix=-8.2",
"--with-arch=armv7-a",
"--with-tune=cortex-a15",
"--with-fpu=neon",
"--with-float=hard"
when 'x86_64'
system "../configure",
"--prefix=#{CREW_PREFIX}",
"--libdir=#{CREW_LIB_PREFIX}",
"--build=#{ARCH}-cros-linux-gnu",
"--host=#{ARCH}-cros-linux-gnu",
"--target=#{ARCH}-cros-linux-gnu",
"--enable-checking=release",
"--disable-multilib",
"--enable-threads=posix",
"--disable-bootstrap",
"--disable-werror",
"--disable-libmpx",
"--enable-static",
"--enable-shared",
"--program-suffix=-8.2",
"--with-arch-64=x86-64"
when 'i686'
system "../configure",
"--prefix=#{CREW_PREFIX}",
"--libdir=#{CREW_LIB_PREFIX}",
"--build=#{ARCH}-cros-linux-gnu",
"--host=#{ARCH}-cros-linux-gnu",
"--target=#{ARCH}-cros-linux-gnu",
"--enable-checking=release",
"--disable-multilib",
"--enable-threads=posix",
"--disable-bootstrap",
"--disable-werror",
"--disable-libmpx",
"--enable-static",
"--enable-shared",
"--program-suffix=-8.2",
"--with-arch-32=i686"
end
system 'make'
end
end
# preserve for check, skip check for current version
def self.check
Dir.chdir("objdir") do
#system "ulimit -s 32768"
#system "make -k check -j8"
#system "../contrib/test_summary"
end
end
def self.install
Dir.chdir("objdir") do
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install-strip"
# http://www.linuxfromscratch.org/lfs/view/development/chapter06/gcc.html#contents-gcc
# move a misplaced file
# The installation stage puts some files used by gdb under the /usr/local/lib(64) directory. This generates spurious error messages when performing ldconfig. This command moves the files to another location.
system "mkdir -pv #{CREW_DEST_PREFIX}/share/gdb/auto-load/usr/lib"
system "mv -v #{CREW_DEST_LIB_PREFIX}/*gdb.py #{CREW_DEST_PREFIX}/share/gdb/auto-load/usr/lib"
# Install Binary File Descriptor library (BFD)
system "install -v -dm755 #{CREW_DEST_LIB_PREFIX}/bfd-plugins"
# Add a compatibility symlink to enable building programs with Link Time Optimization (LTO)
system "ln -sfv #{CREW_PREFIX}/libexec/gcc/$(gcc -dumpmachine)/8.2.0/liblto_plugin.so #{CREW_DEST_LIB_PREFIX}/bfd-plugins/"
# Make symbolic links
system "ln -sv #{CREW_PREFIX}/bin/gcc-8.2 #{CREW_DEST_PREFIX}/bin/cc"
system "ln -sv #{CREW_PREFIX}/bin/gcc-8.2 #{CREW_DEST_PREFIX}/bin/gcc"
system "ln -sv #{CREW_PREFIX}/bin/c++-8.2 #{CREW_DEST_PREFIX}/bin/c++"
system "ln -sv #{CREW_PREFIX}/bin/g++-8.2 #{CREW_DEST_PREFIX}/bin/g++"
system "ln -sv #{CREW_PREFIX}/bin/cpp-8.2 #{CREW_DEST_PREFIX}/bin/cpp"
system "ln -sv #{CREW_PREFIX}/bin/gcc-ar-8.2 #{CREW_DEST_PREFIX}/bin/gcc-ar"
system "ln -sv #{CREW_PREFIX}/bin/gcc-nm-8.2 #{CREW_DEST_PREFIX}/bin/gcc-nm"
system "ln -sv #{CREW_PREFIX}/bin/gcc-ranlib-8.2 #{CREW_DEST_PREFIX}/bin/gcc-ranlib"
system "ln -sv #{CREW_PREFIX}/bin/gcov-8.2 #{CREW_DEST_PREFIX}/bin/gcov"
system "ln -sv #{CREW_PREFIX}/bin/gcov-dump-8.2 #{CREW_DEST_PREFIX}/bin/gcov-dump"
system "ln -sv #{CREW_PREFIX}/bin/gcov-tool-8.2 #{CREW_DEST_PREFIX}/bin/gcov-tool"
system "ln -sv #{CREW_PREFIX}/bin/gfortran-8.2 #{CREW_DEST_PREFIX}/bin/gfortran"
system "ln -sv #{CREW_PREFIX}/bin/$(gcc -dumpmachine)-c++-8.2 #{CREW_DEST_PREFIX}/bin/$(gcc -dumpmachine)-c++"
system "ln -sv #{CREW_PREFIX}/bin/$(gcc -dumpmachine)-g++-8.2 #{CREW_DEST_PREFIX}/bin/$(gcc -dumpmachine)-g++"
system "ln -sv #{CREW_PREFIX}/bin/$(gcc -dumpmachine)-gcc-8.2 #{CREW_DEST_PREFIX}/bin/$(gcc -dumpmachine)-gcc"
system "ln -sv #{CREW_PREFIX}/bin/$(gcc -dumpmachine)-gcc-ar-8.2 #{CREW_DEST_PREFIX}/bin/$(gcc -dumpmachine)-gcc-ar"
system "ln -sv #{CREW_PREFIX}/bin/$(gcc -dumpmachine)-gcc-nm-8.2 #{CREW_DEST_PREFIX}/bin/$(gcc -dumpmachine)-gcc-nm"
system "ln -sv #{CREW_PREFIX}/bin/$(gcc -dumpmachine)-gcc-ranlib-8.2 #{CREW_DEST_PREFIX}/bin/$(gcc -dumpmachine)-gcc-ranlib"
system "ln -sv #{CREW_PREFIX}/bin/$(gcc -dumpmachine)-gfortran-8.2 #{CREW_DEST_PREFIX}/bin/$(gcc -dumpmachine)-gfortran"
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment