arm-frc-linux-gnueabi-gcc: init at 4.9.4

fixes #24578
This commit is contained in:
Cole Scott 2017-04-08 02:12:22 +02:00 committed by Jörg Thalheim
parent 1d7a478c92
commit ff1e372849
No known key found for this signature in database
GPG key ID: CA4106B8D7CC79FA
4 changed files with 171 additions and 0 deletions

View file

@ -0,0 +1,98 @@
{stdenv, fetchurl
, arm-frc-linux-gnueabi-binutils, arm-frc-linux-gnueabi-eglibc, arm-frc-linux-gnueabi-linux-api-headers
, elfutils
, libmpc, gmp, mpfr, zlib, isl_0_15, cloog}:
stdenv.mkDerivation rec {
_target = "arm-frc-linux-gnueabi";
version = "4.9.4";
name = "${_target}-gcc-${version}";
src = fetchurl {
url = "ftp://gcc.gnu.org/pub/gcc/releases/gcc-${version}/gcc-${version}.tar.bz2";
sha256 = "6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092";
};
patches = [
./minorSOname.patch
./no-nested-deprecated-warnings.patch
];
hardeningDisable = [ "format" ];
buildInputs = [
arm-frc-linux-gnueabi-binutils
arm-frc-linux-gnueabi-eglibc
arm-frc-linux-gnueabi-linux-api-headers
elfutils
libmpc
gmp
mpfr
zlib
isl_0_15
cloog
];
configurePhase = ''
mkdir gcc-build
cd gcc-build
../configure \
--prefix=$out \
--host=$CHOST \
--build=$CHOST \
--program-prefix=${_target}- \
--target=${_target} \
--enable-shared \
--disable-nls \
--enable-threads=posix \
--enable-languages=c,c++ \
--disable-multilib \
--disable-multiarch \
--with-sysroot=${arm-frc-linux-gnueabi-eglibc}/${_target} \
--with-build-sysroot=${arm-frc-linux-gnueabi-eglibc}/${_target} \
--with-as=${arm-frc-linux-gnueabi-binutils}/${_target}/bin/as \
--with-ld=${arm-frc-linux-gnueabi-binutils}/${_target}/bin/ld \
--with-cpu=cortex-a9 \
--with-float=softfp \
--with-fpu=vfp \
--with-specs='%{save-temps:-fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables}' \
--enable-lto \
--with-pkgversion='GCC-for-FRC' \
--with-cloog \
--enable-poison-system-directories \
--enable-plugin \
--with-system-zlib \
--disable-libmudflap \
--disable-libsanitizer
'';
makeFlags = [
"all-gcc"
"all-target-libgcc"
"all-target-libstdc++-v3"
];
installPhase = ''
make install-gcc install-target-libgcc install-target-libstdc++-v3
'';
postInstall = ''
rm -rf $out/share/{man/man7,info}/ "$out/share/gcc-${version}/python"
'';
meta = with stdenv.lib; {
description = "FRC cross compiler";
longDescription = ''
arm-frc-linux-gnueabi-gcc is a cross compiler for building
code for FIRST Robotics Competition. Used as a cross compiler
for the NI RoboRio.
'';
license = licenses.gpl2;
maintainers = [ maintainers.colescott ];
platforms = platforms.linux;
priority = 4;
};
}

View file

@ -0,0 +1,49 @@
Description: Make the default SONAME include minor numbers (c++)
This patch adds .0.20 to the end of the SONAME for libstdc++ to support
independent side-by-side usage of .17 and .20.
.
gcc-armel (4.9.1-0frc2) trusty; urgency=low
.
* Fixing dependency ambiguity yet again...
Author: Patrick Plenefisch <phplenefisch@wpi.edu>
---
--- gcc-armel-4.9.1.orig/libstdc++-v3/configure
+++ gcc-armel-4.9.1/libstdc++-v3/configure
@@ -10698,7 +10698,7 @@ gnu*)
need_lib_prefix=no
need_version=no
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
+ soname_spec='${libname}${release}${shared_ext}$versuffix'
shlibpath_var=LD_LIBRARY_PATH
hardcode_into_libs=yes
;;
@@ -10824,7 +10824,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
need_lib_prefix=no
need_version=no
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
+ soname_spec='${libname}${release}${shared_ext}$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
@@ -14382,7 +14382,7 @@ gnu*)
need_lib_prefix=no
need_version=no
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
+ soname_spec='${libname}${release}${shared_ext}$versuffix'
shlibpath_var=LD_LIBRARY_PATH
hardcode_into_libs=yes
;;
@@ -14508,7 +14508,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
need_lib_prefix=no
need_version=no
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
+ soname_spec='${libname}${release}${shared_ext}$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no

View file

@ -0,0 +1,22 @@
Description: Get rid of recursive deprecated warnings.
As is, gcc gives warnings when a function with the
deprecated attribute calls another function with
the deprecated attribute.
See http://stackoverflow.com/questions/13459602/how-can-i-get-rid-of-deprecated-warnings-in-deprecated-functions-in-gcc
Author: James Kuszmaul <jbkuszmaul@wpi.edu>
--
--- gcc-armel-4.9.1.orig/gcc/tree.c
+++ gcc-armel-4.9.1/gcc/tree.c
@@ -12063,6 +12063,9 @@ warn_deprecated_use (tree node, tree attr)
if (node == 0 || !warn_deprecated_decl)
return;
+ if (current_function_decl && TREE_DEPRECATED(current_function_decl))
+ return;
+
if (!attr)
{
if (DECL_P (node))

View file

@ -450,6 +450,8 @@ with pkgs;
arm-frc-linux-gnueabi-binutils = callPackage ../development/tools/misc/arm-frc-linux-gnueabi-binutils {};
arm-frc-linux-gnueabi-gcc = callPackage ../development/compilers/arm-frc-linux-gnueabi-gcc {};
arp-scan = callPackage ../tools/misc/arp-scan { };
artyFX = callPackage ../applications/audio/artyFX {};