mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-21 04:13:12 +00:00
Merge pull request #231697 from trofi/libgcc-removal
libgcc: remove unused package
This commit is contained in:
commit
bd581dceaa
@ -1,156 +0,0 @@
|
||||
{ lib, stdenvNoLibs, buildPackages
|
||||
, gcc, glibc
|
||||
, libiberty
|
||||
}:
|
||||
|
||||
stdenvNoLibs.mkDerivation rec {
|
||||
pname = "libgcc";
|
||||
inherit (gcc.cc) src version;
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
nativeBuildInputs = [ libiberty ];
|
||||
|
||||
postUnpack = ''
|
||||
mkdir -p ./build
|
||||
buildRoot=$(readlink -e "./build")
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
sourceRoot=$(readlink -e "./libgcc")
|
||||
'';
|
||||
|
||||
hardeningDisable = [ "pie" ];
|
||||
|
||||
preConfigure = ''
|
||||
cd "$buildRoot"
|
||||
''
|
||||
|
||||
# Drop in libiberty, as external builds are not expected
|
||||
+ ''
|
||||
(
|
||||
mkdir -p build-${stdenvNoLibs.buildPlatform.config}/libiberty/
|
||||
cd build-${stdenvNoLibs.buildPlatform.config}/libiberty/
|
||||
ln -s ${buildPackages.libiberty}/lib/libiberty.a ./
|
||||
)
|
||||
''
|
||||
# A few misc bits of gcc need to be built.
|
||||
#
|
||||
# - We "shift" the tools over to fake platforms perspective from the previous
|
||||
# stage.
|
||||
#
|
||||
# - We define GENERATOR_FILE so nothing bothers looking for GNU GMP.
|
||||
#
|
||||
# - We remove the `libgcc.mvar` deps so that the bootstrap xgcc isn't built.
|
||||
+ ''
|
||||
mkdir -p "$buildRoot/gcc"
|
||||
cd "$buildRoot/gcc"
|
||||
(
|
||||
export AS_FOR_BUILD=${buildPackages.stdenv.cc}/bin/$AS_FOR_BUILD
|
||||
export CC_FOR_BUILD=${buildPackages.stdenv.cc}/bin/$CC_FOR_BUILD
|
||||
export CPP_FOR_BUILD=${buildPackages.stdenv.cc}/bin/$CPP_FOR_BUILD
|
||||
export CXX_FOR_BUILD=${buildPackages.stdenv.cc}/bin/$CXX_FOR_BUILD
|
||||
export LD_FOR_BUILD=${buildPackages.stdenv.cc.bintools}/bin/$LD_FOR_BUILD
|
||||
|
||||
export AS=$AS_FOR_BUILD
|
||||
export CC=$CC_FOR_BUILD
|
||||
export CPP=$CPP_FOR_BUILD
|
||||
export CXX=$CXX_FOR_BUILD
|
||||
export LD=$LD_FOR_BUILD
|
||||
|
||||
export AS_FOR_TARGET=${stdenvNoLibs.cc}/bin/$AS
|
||||
export CC_FOR_TARGET=${stdenvNoLibs.cc}/bin/$CC
|
||||
export CPP_FOR_TARGET=${stdenvNoLibs.cc}/bin/$CPP
|
||||
export LD_FOR_TARGET=${stdenvNoLibs.cc.bintools}/bin/$LD
|
||||
|
||||
export NIX_CFLAGS_COMPILE_FOR_BUILD+=' -DGENERATOR_FILE=1'
|
||||
|
||||
"$sourceRoot/../gcc/configure" $gccConfigureFlags
|
||||
|
||||
sed -e 's,libgcc.mvars:.*$,libgcc.mvars:,' -i Makefile
|
||||
|
||||
make \
|
||||
config.h \
|
||||
libgcc.mvars \
|
||||
tconfig.h \
|
||||
tm.h \
|
||||
options.h \
|
||||
insn-constants.h \
|
||||
insn-modes.h
|
||||
)
|
||||
mkdir -p "$buildRoot/gcc/include"
|
||||
''
|
||||
# Preparing to configure + build libgcc itself
|
||||
+ ''
|
||||
mkdir -p "$buildRoot/gcc/${stdenvNoLibs.hostPlatform.config}/libgcc"
|
||||
cd "$buildRoot/gcc/${stdenvNoLibs.hostPlatform.config}/libgcc"
|
||||
configureScript=$sourceRoot/configure
|
||||
chmod +x "$configureScript"
|
||||
|
||||
export AS_FOR_BUILD=${buildPackages.stdenv.cc}/bin/$AS_FOR_BUILD
|
||||
export CC_FOR_BUILD=${buildPackages.stdenv.cc}/bin/$CC_FOR_BUILD
|
||||
export CPP_FOR_BUILD=${buildPackages.stdenv.cc}/bin/$CPP_FOR_BUILD
|
||||
export CXX_FOR_BUILD=${buildPackages.stdenv.cc}/bin/$CXX_FOR_BUILD
|
||||
export LD_FOR_BUILD=${buildPackages.stdenv.cc.bintools}/bin/$LD_FOR_BUILD
|
||||
|
||||
export AS=${stdenvNoLibs.cc}/bin/$AS
|
||||
export CC=${stdenvNoLibs.cc}/bin/$CC
|
||||
export CPP=${stdenvNoLibs.cc}/bin/$CPP
|
||||
export CXX=${stdenvNoLibs.cc}/bin/$CXX
|
||||
export LD=${stdenvNoLibs.cc.bintools}/bin/$LD
|
||||
|
||||
export AS_FOR_TARGET=${stdenvNoLibs.cc}/bin/$AS_FOR_TARGET
|
||||
export CC_FOR_TARGET=${stdenvNoLibs.cc}/bin/$CC_FOR_TARGET
|
||||
export CPP_FOR_TARGET=${stdenvNoLibs.cc}/bin/$CPP_FOR_TARGET
|
||||
export LD_FOR_TARGET=${stdenvNoLibs.cc.bintools}/bin/$LD_FOR_TARGET
|
||||
'';
|
||||
|
||||
gccConfigureFlags = [
|
||||
"--build=${stdenvNoLibs.buildPlatform.config}"
|
||||
"--host=${stdenvNoLibs.buildPlatform.config}"
|
||||
"--target=${stdenvNoLibs.hostPlatform.config}"
|
||||
|
||||
"--disable-bootstrap"
|
||||
"--disable-multilib" "--with-multilib-list="
|
||||
"--enable-languages=c"
|
||||
|
||||
"--disable-fixincludes"
|
||||
"--disable-intl"
|
||||
"--disable-lto"
|
||||
"--disable-libatomic"
|
||||
"--disable-libbacktrace"
|
||||
"--disable-libcpp"
|
||||
"--disable-libssp"
|
||||
"--disable-libquadmath"
|
||||
"--disable-libgomp"
|
||||
"--disable-libvtv"
|
||||
"--disable-vtable-verify"
|
||||
|
||||
"--with-system-zlib"
|
||||
] ++ lib.optional (stdenvNoLibs.hostPlatform.libc == "glibc")
|
||||
"--with-glibc-version=${glibc.version}";
|
||||
|
||||
configurePlatforms = [ "build" "host" ];
|
||||
configureFlags = [
|
||||
"--disable-dependency-tracking"
|
||||
# $CC cannot link binaries, let alone run then
|
||||
"cross_compiling=true"
|
||||
# Do not have dynamic linker without libc
|
||||
"--enable-static"
|
||||
"--disable-shared"
|
||||
|
||||
# Avoid dependency on gcc.
|
||||
"--disable-gcov"
|
||||
];
|
||||
|
||||
makeFlags = [ "MULTIBUILDTOP:=../" ];
|
||||
|
||||
postInstall = ''
|
||||
moveToOutput "lib/gcc/${stdenvNoLibs.hostPlatform.config}/${version}/include" "$dev"
|
||||
mkdir -p "$out/lib" "$dev/include"
|
||||
ln -s "$out/lib/gcc/${stdenvNoLibs.hostPlatform.config}/${version}"/* "$out/lib"
|
||||
ln -s "$dev/lib/gcc/${stdenvNoLibs.hostPlatform.config}/${version}/include"/* "$dev/include/"
|
||||
'';
|
||||
}
|
@ -841,6 +841,7 @@ mapAliases ({
|
||||
liberation_ttf_v1_from_source = throw "'liberation_ttf_v1_from_source' has been renamed to/replaced by 'liberation_ttf_v1'"; # Converted to throw 2022-02-22
|
||||
liberation_ttf_v2_from_source = throw "'liberation_ttf_v2_from_source' has been renamed to/replaced by 'liberation_ttf_v2'"; # Converted to throw 2022-02-22
|
||||
liberationsansnarrow = throw "'liberationsansnarrow' has been renamed to/replaced by 'liberation-sans-narrow'"; # Converted to throw 2022-02-22
|
||||
libgcc = throw "libgcc was removed, use gcc.cc.libgcc if needed"; # added 2023-05-13
|
||||
libgksu = throw "libgksu has been removed"; # Added 2022-01-16
|
||||
libgme = game-music-emu; # Added 2022-07-20
|
||||
libgnome_keyring = throw "'libgnome_keyring' has been renamed to/replaced by 'libgnome-keyring'"; # Converted to throw 2022-02-22
|
||||
|
@ -18074,10 +18074,6 @@ with pkgs;
|
||||
|
||||
librarian-puppet-go = callPackage ../development/tools/librarian-puppet-go { };
|
||||
|
||||
libgcc = callPackage ../development/libraries/gcc/libgcc {
|
||||
stdenvNoLibs = gccStdenvNoLibs; # cannot be built with clang it seems
|
||||
};
|
||||
|
||||
# This is for e.g. LLVM libraries on linux.
|
||||
gccForLibs =
|
||||
if stdenv.targetPlatform == stdenv.hostPlatform && targetPackages.stdenv.cc.isGNU
|
||||
|
Loading…
Reference in New Issue
Block a user