Open hongjinghao opened 4 months ago
Is it possible to replace ls
with -e
in the Configure
to check if files exist?
The error in the ls command prevents Perl from passing the integrity check
I'm not sure where that conclusion comes from? That error is strongly suggesting it comes from grep not ls.
Can you try to check if any of the many arguments you pass to Configure is related to this?
I don't see anything in that part of Configure
calling grep
.
Module:
Description
The error in the
ls
command preventsPerl
from passing the integrity check[ 57s] + /bin/sh Configure -des -Doptimize=none '-Dccflags=-O2 -g -grecord-gcc-switches -pipe -fstack-protector-strong -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/generic-hardened-cc1 -fasynchronous-unwind-tables -fstack-clash-protection' '-Dldflags=-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/generic-hardened-ld' '-Dccdlflags=-Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/generic-hardened-ld' '-Dlddlflags=-shared -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/generic-hardened-ld' -Dshrpdir=/usr/lib64 -DDEBUGGING=-g -Dversion=5.38.0 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl5 -Dprivlib=/usr/share/perl5 -Dsitearch=/usr/local/lib64/perl5 -Dvendorlib=/usr/share/perl5/vendor_perl -Darchlib=/usr/lib64/perl5 -Dvendorarch=/usr/lib64/perl5/vendor_perl -Darchname=aarch64-linux-thread-multi '-Dlibpth=/usr/local/lib64 /lib64 /usr/lib64' -Duseshrplib -Dusethreads -Duseithreads -Ui_ndbm -Di_gdbm -Dusedtrace=/usr/bin/dtrace -Ubincompat5005 -Dusesitecustomize -Duselargefiles -Dd_semctl_semun -Di_db -Duse64bitint -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dscriptdir=/usr/bin -Dinstallusrbinperl=n -Uversiononly '-Dpager=/usr/bin/less -isr' -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto
@hongjinghao, you are using an enormous number of switches to your invocation of ./Configure
. At the same time, you have provided us with no information about the platform on which you are attempting to build perl. This makes it extremely difficult for us to diagnose the problem.
I would recommend that (a) provide us with that system information; and (b) that you start out with a simple invocation like this:
sh ./Configure -des
... and then add other switches one at a time until ./Configure
breaks in the way you describe above. For instance, the following switches are often used, singly or in combination, in configuring a perl build:
-Dusethreads
-DDEBUGGING
-Duse64bitint
...
The error in the ls command prevents Perl from passing the integrity check
I'm not sure where that conclusion comes from? That error is strongly suggesting it comes from grep not ls.
Can you try to check if any of the many arguments you pass to Configure is related to this?
I’m also puzzled why using ls
triggers a warning related to grep
. I wonder if checking the integrity of Perl
relies on ls
. If ls
fails due to reasons other than missing files, this could lead to false positives.
I don't see anything in that part of
Configure
callinggrep
.
Yes, I also didn’t see any grep
in Perl
integrity check during Configure
. However, when I executed the command without the ls
part, there were no warnings.
for filelist in x??; do
(cd "$rsrc"; cat "$tmppwd/$filelist" \
>/dev/null 2>>"$tmppwd/missing")
done
It’s possible that this behavior is related to my environment. As for validating Perl
integrity, is it really necessary to use ls
? If the sole purpose using ls
is to confirm file existence,. Can we use -e
as a replacement?
@Tux you have any ideas?
Module:
Description
The error in the
ls
command preventsPerl
from passing the integrity checkSteps to Reproduce
Expected behavior
The integrity check for
Perl
should not rely on the correctness or error of thels
; it should only verify whether the file exists Perl configuration