Merge pull request #95623 from lopsided98/perl-cross-shebang

buildPerlPackage: fix patchShebangs when cross-compiling
This commit is contained in:
John Ericson 2020-08-24 11:45:52 -04:00 committed by GitHub
commit 6cbd6955fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 10 deletions

View File

@ -28,7 +28,7 @@ let
# TODO: Add a "dev" output containing the header files.
outputs = [ "out" "man" "devdoc" ] ++
optional crossCompiling "dev";
optional crossCompiling "mini";
setOutputFlags = false;
disallowedReferences = [ stdenv.cc ];
@ -144,13 +144,13 @@ let
--replace "$man" /no-such-path
'' + optionalString crossCompiling
''
mkdir -p $dev/lib/perl5/cross_perl/${version}
mkdir -p $mini/lib/perl5/cross_perl/${version}
for dir in cnf/{stub,cpan}; do
cp -r $dir/* $dev/lib/perl5/cross_perl/${version}
cp -r $dir/* $mini/lib/perl5/cross_perl/${version}
done
mkdir -p $dev/bin
install -m755 miniperl $dev/bin/perl
mkdir -p $mini/bin
install -m755 miniperl $mini/bin/perl
export runtimeArch="$(ls $out/lib/perl5/site_perl/${version})"
# wrapProgram should use a runtime-native SHELL by default, but
@ -161,9 +161,9 @@ let
# miniperl can't load the native modules there. However, it can
# (and sometimes needs to) load and run some of the pure perl
# code there, so we add it anyway. When needed, stubs can be put
# into $dev/lib/perl5/cross_perl/${version}.
wrapProgram $dev/bin/perl --prefix PERL5LIB : \
"$dev/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch"
# into $mini/lib/perl5/cross_perl/${version}.
wrapProgram $mini/bin/perl --prefix PERL5LIB : \
"$mini/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch"
''; # */
meta = {

View File

@ -9,4 +9,4 @@ addPerlLibPath () {
addToSearchPath PERL5LIB $1/lib/perl5/site_perl/@version@/@runtimeArch@
}
addEnvHooks "$targetOffset" addPerlLibPath
addEnvHooks "$hostOffset" addPerlLibPath

View File

@ -42,7 +42,7 @@ toPerlModule(stdenv.mkDerivation (
version = lib.getVersion attrs; # TODO: phase-out `attrs.name`
builder = ./builder.sh;
buildInputs = buildInputs ++ [ perl ];
nativeBuildInputs = nativeBuildInputs ++ [ (perl.dev or perl) ];
nativeBuildInputs = nativeBuildInputs ++ [ (perl.mini or perl) ];
fullperl = buildPerl;
}
))