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

View file

@ -9,4 +9,4 @@ addPerlLibPath () {
addToSearchPath PERL5LIB $1/lib/perl5/site_perl/@version@/@runtimeArch@ 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` version = lib.getVersion attrs; # TODO: phase-out `attrs.name`
builder = ./builder.sh; builder = ./builder.sh;
buildInputs = buildInputs ++ [ perl ]; buildInputs = buildInputs ++ [ perl ];
nativeBuildInputs = nativeBuildInputs ++ [ (perl.dev or perl) ]; nativeBuildInputs = nativeBuildInputs ++ [ (perl.mini or perl) ];
fullperl = buildPerl; fullperl = buildPerl;
} }
)) ))