Merge pull request #95623 from lopsided98/perl-cross-shebang
buildPerlPackage: fix patchShebangs when cross-compiling
This commit is contained in:
commit
6cbd6955fc
3 changed files with 10 additions and 10 deletions
|
@ -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 = {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
|
|
Loading…
Reference in a new issue