parent
1d7a478c92
commit
ff1e372849
98
pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/default.nix
Executable file
98
pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/default.nix
Executable 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;
|
||||
};
|
||||
}
|
49
pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/minorSOname.patch
Executable file
49
pkgs/development/compilers/arm-frc-linux-gnueabi-gcc/minorSOname.patch
Executable 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
|
@ -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))
|
@ -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 {};
|
||||
|
Loading…
Reference in New Issue
Block a user