Skip to content

Commit

Permalink
Don't use nqp::execname on OpenBSD
Browse files Browse the repository at this point in the history
Fixess one of two parts to #2824
  • Loading branch information
Kaiepi committed Apr 16, 2019
1 parent afc9f84 commit 194e377
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 8 deletions.
6 changes: 4 additions & 2 deletions src/core/Process.pm6
Expand Up @@ -16,8 +16,10 @@ Rakudo::Internals.REGISTER-DYNAMIC: '$*EXECUTABLE', {
// $*VM.properties<perl6.prefix> ~ '/bin/perl6-j'
#?endif
#?if moar
nqp::execname()
|| ($*VM.config<prefix> ~ '/bin/'
# OpenBSD's security features prevent us from getting the path to our
# executable just given our PID by default.
(nqp::execname() unless $*VM.osname eq 'openbsd')
// ($*VM.config<prefix> ~ '/bin/'
~ ($*VM.config<osname> eq 'MSWin32' ?? 'perl6-m.bat' !! 'perl6-m'))
#?endif
#?if js
Expand Down
14 changes: 11 additions & 3 deletions src/main.nqp
Expand Up @@ -2,14 +2,22 @@ use Perl6::Grammar;
use Perl6::Actions;
use Perl6::Compiler;

my $config := nqp::backendconfig();
# Determine Perl6 and NQP dirs.
my $sep := nqp::backendconfig()<osname> eq 'MSWin32' ?? '\\' !! '/';
my $sep := $config<osname> eq 'MSWin32' ?? '\\' !! '/';
#?if jvm
my $execname := nqp::atkey(nqp::jvmgetproperties,'perl6.execname');
my $exec-dir := nqp::substr($execname, 0, nqp::rindex($execname, $sep));
#?endif
#?if !jvm
my $exec-dir := nqp::substr(nqp::execname(), 0, nqp::rindex(nqp::execname(), $sep));
#?if moar
my $exec-dir := $config<osname> eq 'openbsd'
?? $config<prefix> ~ '/bin/perl6-m'
!! nqp::substr(nqp::execname(), 0, nqp::rindex(nqp::execname(), $sep));
#?endif
#?if js
my $exec-dir := $config<osname> eq 'openbsd'
?? $config<prefix> ~ '/bin/perl6-js'
!! nqp::substr(nqp::execname(), 0, nqp::rindex(nqp::execname(), $sep))
#?endif


Expand Down
14 changes: 11 additions & 3 deletions src/perl6-debug.nqp
Expand Up @@ -457,13 +457,21 @@ sub MAIN(*@ARGS) {
my $comp := Perl6::Debugger.new();

# Determine Perl6 and NQP dirs.
my $sep := nqp::backendconfig()<osname> eq 'MSWin32' ?? '\\' !! '/';
my $config := nqp::backendconfig();
my $sep := $config<osname> eq 'MSWin32' ?? '\\' !! '/';
#?if jvm
my $execname := nqp::atkey(nqp::jvmgetproperties,'perl6.execname');
my $exec-dir := nqp::substr($execname, 0, nqp::rindex($execname, $sep));
#?endif
#?if !jvm
my $exec-dir := nqp::substr(nqp::execname(), 0, nqp::rindex(nqp::execname(), $sep));
#?if moar
my $exec-dir := $config<osname> eq 'openbsd'
?? $config<prefix> ~ '/bin/perl6-m'
!! nqp::substr(nqp::execname(), 0, nqp::rindex(nqp::execname(), $sep));
#?endif
#?if js
my $exec-dir := $config<osname> eq 'openbsd'
?? $config<prefix> ~ '/bin/perl6-js'
!! nqp::substr(nqp::execname(), 0, nqp::rindex(nqp::execname(), $sep));
#?endif
my $perl6-home := $comp.config<static_perl6_home>
// nqp::getenvhash()<PERL6_HOME>
Expand Down

0 comments on commit 194e377

Please sign in to comment.