X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.c;h=8b3066e3663e9077915a9c6408078d428d38a488;hb=8338e36774b7e3cc49c6f8e0553b2f22973bc322;hp=54f68c762bec8f8ed41a40bbbd00dc4000e27420;hpb=9e7b74c71ae6d607b88d4011006ff1ddd570857f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.c b/perl.c index 54f68c7..8b3066e 100644 --- a/perl.c +++ b/perl.c @@ -3415,7 +3415,7 @@ Perl_init_argv_symbols(pTHX_ register int argc, register char **argv) #ifdef HAS_PROCSELFEXE /* This is a function so that we don't hold on to MAXPATHLEN - bytes of stack longer than necessary. + bytes of stack longer than necessary */ STATIC void S_procself_val(pTHX_ SV *sv, char *arg0) @@ -3431,47 +3431,6 @@ S_procself_val(pTHX_ SV *sv, char *arg0) } #endif /* HAS_PROCSELFEXE */ -#if defined(sun) && defined(__svr4__) /* solaris */ -#include -STATIC void -S_procselfauxv(pTHX_ SV *sv, char *arg0) { - auxv_t auxv; - int fh; - int n; - - fh = open("/proc/self/auxv", O_RDONLY); - if (fh < 0) { - sv_setpv(sv, arg0); - return; - } - - while (1) { - n = read(fh, &auxv, sizeof(auxv)); - if (n != sizeof(auxv)) - break; - if (auxv.a_type == AT_SUN_EXECNAME) { - close(fh); - sv_setpv(sv, auxv.a_un.a_ptr); - if (!strchr(SvPVX(sv), '/')) { - /* If no slash at all, probably started as "./perl" - * Do not compare against "perl", though, since the - * binary might be called something else. */ - STRLEN len; - char *s = SvPV(sv, len); - SvGROW(sv, len + 2); - memmove(s + 2, s, len); - SvPVX(sv)[0] = '.'; - SvPVX(sv)[1] = '/'; - SvCUR(sv) += 2; - } - return; - } - } - close(fh); - sv_setpv(sv, arg0); -} -#endif /* solaris */ - STATIC void S_init_postdump_symbols(pTHX_ register int argc, register char **argv, register char **env) { @@ -3508,15 +3467,11 @@ S_init_postdump_symbols(pTHX_ register int argc, register char **argv, register #ifdef HAS_PROCSELFEXE S_procself_val(aTHX_ GvSV(tmpgv), PL_origargv[0]); #else -# ifdef OS2 +#ifdef OS2 sv_setpv(GvSV(tmpgv), os2_execname(aTHX)); -# else -# if defined(sun) && defined(__svr4__) /* solaris */ - S_procselfauxv(aTHX_ GvSV(tmpgv), PL_origargv[0]); -# else - sv_setpv(GvSV(tmpgv), PL_origargv[0]); -# endif -# endif +#else + sv_setpv(GvSV(tmpgv),PL_origargv[0]); +#endif #endif } if ((PL_envgv = gv_fetchpv("ENV",TRUE, SVt_PVHV))) {