Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile/install from source: Configure does not create a Makefile #22715

Open
liwenhui-soul opened this issue Oct 31, 2024 · 12 comments
Open

Compile/install from source: Configure does not create a Makefile #22715

liwenhui-soul opened this issue Oct 31, 2024 · 12 comments

Comments

@liwenhui-soul
Copy link

liwenhui-soul commented Oct 31, 2024

Hello, I am compiling Perl-5.32 from source on Linux. When I run ./Configure -des , it completes without any errors, but no Makefile is generated. What could be the reason for this


[root@09e726335772 perl5-5.32.1]# ./Configure -des -Dprefix=/d/cdm-tools-x86_64-linux/thirdparty
First let's make sure your kit is complete.  Checking...
Locating common programs...
Checking compatibility between /bin/echo and builtin echo (if any)...
Symbolic links are supported.
Checking how to test for symbolic links...
You can test for symbolic links with 'test -h'.
Checking for cross-compile
No targethost for running compiler tests against defined, running locally
Good, your tr supports [:lower:] and [:upper:] to convert case.
Using [:upper:] and [:lower:] to convert case.
aix           dragonfly       irix_5            nonstopux     sunos_4_0
aix_3         dynix           irix_6            openbsd       sunos_4_1
aix_4         dynixptx        irix_6_0          opus          super-ux
altos486      epix            irix_6_1          os2           svr4
amigaos       esix4           isc               os390         svr5
atheos        fps             isc_2             os400         ti1500
aux_3         freebsd         linux-android     posix-bc      ultrix_4
bitrig        freemint        linux             qnx           umips
bsdos         gnu             lynxos            riscos        unicos
catamount     gnukfreebsd     midnightbsd       sco           unicosmk
convexos      gnuknetbsd      minix             sco_2_3_0     unisysdynix
cxux          greenhills      mips              sco_2_3_1     utekv
cygwin        haiku           mirbsd            sco_2_3_2     uwin
darwin        hpux            mpc               sco_2_3_3     vos
dcosx         i386            ncr_tower         sco_2_3_4
dec_osf       interix         netbsd            solaris_2
dos_djgpp     irix_4          newsos4           stellar
Which of these apply, if any? [linux]
Operating system name? [linux]
Operating system version? [5.15.153.1-microsoft-standard-wsl2]
Installation prefix to use? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty]
AFS does not seem to be running...
What installation prefix should I use for installing files? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty]
Getting the current patchlevel...
Build a threading Perl? [n]
Build Perl for multiplicity? [n]
Use which C compiler? [cc]
Checking for GNU cc in disguise and/or its version number...
Now, how can we feed standard input to your C preprocessor...
Directories to use for library searches?
[/d/cdm-tools-x86_64-linux/thirdparty/lib /d/cdm-tools-x86_64-linux/gcc-14.2.0/bin/../lib/gcc/x86_64-pc-linux-gnu/14.2.0/include-fixed /usr/local/lib /d/cdm-tools
-x86_64-linux/gcc-14.2.0/bin/../lib/gcc/../../lib /usr/lib /d/cdm-tools-x86_64-linux/thirdparty/lib64/../lib64 /d/cdm-tools-x86_64-linux/thirdparty/lib/../lib64 /
lib/../lib64 /usr/lib/../lib64 /d/cdm-tools-x86_64-linux/thirdparty/lib64 /lib /lib64 /usr/lib64 /usr/local/lib64]
What is the file extension used for shared libraries? [so]
Make shared library basenames unique? [n]
Build Perl for SOCKS? [n]
Try to use long doubles if available? [n]
Checking for optional libraries...
What libraries to use?
[-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc]
What optimizer/debugger flag should be used? [-O2]
Any additional cc flags?
[-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include]
Let me guess what the preprocessor flags are...
Any additional ld flags (NOT including libraries)?
[ -fstack-protector-strong -L/usr/local/lib]
Checking your choice of C compiler and flags for coherency...
Checking to see how big your integers are...
Checking to see if you have long long...
Checking to see how big your long longs are...
Computing filename position in cpp output for #include directives...
<inttypes.h> found.
Checking to see if you have int64_t...
Checking which 64-bit integer type we could use...
We could use 'long' for 64-bit integers.
Try to use maximal 64-bit support, if available? [y]
Checking if your C library has broken 64-bit functions...
Checking for GNU C Library...
nm probably won't work on the GNU C Library.
Shall I use /d/cdm-tools-x86_64-linux/binutils-2.35/bin/nm to extract C symbols from the libraries?
[n]
Checking for C++...
Checking to see how big your double precision numbers are...
Checking to see if you have long double...
ldexpl() found.
Checking to see how big your long doubles are...
Checking the kind of long doubles you have...
You have x86 80-bit little endian long doubles.
What is your architecture name [x86_64-linux]
Add the Perl API version to your archname? [n]
This architecture is naturally 64-bit, not changing architecture name.
Pathname where the public executables will reside? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/bin]
Use relocatable @INC? [n]
Pathname where the private library files will reside? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/lib/perl5/5.32.1]
Where do you want to put the public architecture-dependent libraries? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/lib/perl5/5.32.1/x86_64-linux]
Other username to test security of setuid scripts with? [none]
Well, the recommended value is *not* secure.
Does your kernel have *secure* setuid scripts? [n]
Installation prefix to use for add-on modules and utilities? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty]
Pathname for the site-specific library files? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/lib/perl5/site_perl/5.32.1]
List of earlier versions to include in @INC? [none]
<malloc/malloc.h> NOT found.
<malloc.h> found.
Checking to see how big your pointers are...
Do you wish to wrap malloc calls to protect against potential overflows? [y]
Do you wish to attempt to use the malloc that comes with perl5? [n]
Your system wants malloc to return 'void *', it would seem.
Your system uses void free(), it would seem.
Pathname for the site-specific architecture-dependent library files? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/lib/perl5/site_perl/5.32.1/x86_64-linux]
Do you want to configure vendor-specific add-on directories? [n]
Colon-separated list of additional directories for perl to search? [none]
Support DTrace if available? [n]
Install any extra modules (y or n)? [n]
Directory for the main Perl5 html pages? (~name ok) [none]
Directory for the Perl5 module html pages? (~name ok) [none]
Do you want to install perl as /usr/bin/perl? [n]
dlopen() found.
<unistd.h> found.
Do you wish to use dynamic loading? [y]
Source file to use for dynamic loading [ext/DynaLoader/dl_dlopen.xs]
Any special flags to pass to cc -c to compile shared library modules?
[-fPIC]
What command should be used to create dynamic libraries? [cc]
Any special flags to pass to cc to create a dynamically loaded library?
[-shared -O2 -L/usr/local/lib -fstack-protector-strong]
Any special flags to pass to cc to use dynamic linking? [-Wl,-E]
ld supports scripting
Build a shared libperl.so (y/n) [n]
System manual is in /usr/share/man/man1.
Where do the main Perl5 manual pages (source) go? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/share/man/man1]
What suffix should be used for the main Perl5 man pages? [1]
You can have filenames longer than 14 characters.
Where do the perl5 library man pages (source) go? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/share/man/man3]
What suffix should be used for the perl5 library man pages? [3]
Figuring out host name...
Your host name appears to be "09e726335772". Right? [y]
What is your domain name? [.dameng.com]
What is your e-mail address? [root@09e726335772.dameng.com]
Perl administrator e-mail address [root@09e726335772.dameng.com]
Do you want to use a version number suffix for installed binaries? [n]
What shall I put after the #! to start up perl ("none" to not use #!)?
[/d/cdm-tools-x86_64-linux/thirdparty/bin/perl]

WARNING:  Some systems limit the #! command to 32 characters.
If you experience difficulty running Perl scripts with #!, try
installing Perl in a directory with a shorter pathname.

Where do you keep publicly executable scripts? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/bin]
Pathname where the add-on public executables should be installed? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/bin]
Pathname where the site-specific html pages should be installed? (~name ok)
[none]
Pathname where the site-specific library html pages should be installed? (~name ok)
[none]
Pathname where the site-specific manual pages should be installed? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/share/man/man1]
Pathname where the site-specific library manual pages should be installed? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/share/man/man3]
Pathname where add-on public executable scripts should be installed? (~name ok)
[/d/cdm-tools-x86_64-linux/thirdparty/bin]
backtrace() found.
Use the "fast stdio" if available? [n]
off_t found.
Checking to see how big your file offsets are...
fpos_t found.
Checking the size of fpos_t...
Try to understand large files, if available? [y]
Rechecking to see how big your file offsets are...
Rechecking the size of fpos_t... 16 bytes.
qgcvt() found.
Checking the kind of doubles you have...
You have IEEE 754 64-bit little endian doubles.
Checking how to print long doubles...
gconvert NOT found.
gcvt() found.
I'll use gcvt to convert floats into a string.
fwalk() NOT found.
accept4() found.
access() found.
<sys/file.h> defines the *_OK access constants.
accessx() NOT found.
acosh() found.
aintl() NOT found.
alarm() found.
ctime64() NOT found.
localtime64() NOT found.
gmtime64() NOT found.
mktime64() NOT found.
difftime64() NOT found.
asctime64() NOT found.
<pthread.h> found.
<sys/types.h> found.
<sys/select.h> found.
Testing to see if we should include <sys/time.h>.
We'll include <sys/time.h>.
Checking to see if your struct tm has tm_zone field...
Checking to see if your struct tm has tm_gmtoff field...
asctime_r() found.
asinh() found.
atanh() found.
atolf() NOT found.
atoll() found.
Checking whether your compiler can handle __attribute__((format)) ...
Checking whether your compiler allows __printf__ format to be null ...
Checking whether your compiler can handle __attribute__((malloc)) ...
Checking whether your compiler can handle __attribute__((nonnull(1))) ...
Checking whether your compiler can handle __attribute__((noreturn)) ...
Checking whether your compiler can handle __attribute__((pure)) ...
Checking whether your compiler can handle __attribute__((unused)) ...
Checking whether your compiler can handle __attribute__((deprecated)) ...
Checking whether your compiler can handle __attribute__((warn_unused_result)) ...
Checking whether your compiler can handle __attribute__((always_inline)) ...
getpgrp() found.
You have to use getpgrp() instead of getpgrp(pid).
setpgrp() found.
You have to use setpgrp() instead of setpgrp(pid,pgrp).
Checking whether your compiler can handle __builtin_add_overflow ...
Checking whether your compiler can handle __builtin_sub_overflow ...
Checking whether your compiler can handle __builtin_mul_overflow ...
Checking whether your compiler can handle __builtin_choose_expr ...
Checking whether your compiler can handle __builtin_expect ...
Checking for C99 variadic macros.
You have C99 variadic macros.
You have void (*signal())().
Checking whether your C compiler can cast large floats to int32.
Checking whether your C compiler can cast negative float to unsigned.
cbrt() found.
chown() found.
chroot() found.
chsize() NOT found.
class() NOT found.
clearenv() found.
Hmm... Looks like you have Berkeley networking support.
socketpair() found.
Checking the availability sa_len in the sock struct ...
Checking the availability struct sockaddr_in6 ...
Checking the availability struct sockaddr_storage ...
Checking the availability sin6_scope_id in struct sockaddr_in6 ...
Checking the availability struct ip_mreq ...
Checking the availability struct ip_mreq_source ...
Checking the availability struct ipv6_mreq ...
Checking the availability struct ipv6_mreq_source ...
Checking the availability of certain socket constants...
<sys/uio.h> found.
Checking to see if your system supports struct cmsghdr...
copysign() found.
copysignl() found.
crypt() found.
<crypt.h> found.
crypt_r() found.
ctermid() found.
ctermid_r() NOT found.
ctime_r() found.
cuserid() found.
dbmclose() found.
<dbm.h> NOT found.
<rpcsvc/dbm.h> NOT found.
difftime() found.
<dirent.h> found.
Your directory entries are struct dirent.
Your directory entry does not know about the d_namlen field.
Checking to see if DIR has a dd_fd member variable
<sys/dir.h> found.
<sys/ndir.h> NOT found.
dirfd() found.
dladdr() found.
dlerror() found.
<dlfcn.h> found.
What is the extension of dynamically loaded modules [so]
Checking whether your dlsym() needs a leading underscore ...
I can't compile and run the test program.
I'm guessing that dlsym doesn't need a leading underscore.
drand48_r() found.
dup2() found.
dup3() found.
<xlocale.h> found.
newlocale() found.
freelocale() found.
uselocale() found.
duplocale() found.
querylocale() NOT found.
eaccess() found.
endgrent() found.
<grp.h> found.
endgrent_r() NOT found.
endhostent() found.
<netdb.h> found.
endhostent_r() NOT found.
endnetent() found.
endnetent_r() NOT found.
endprotoent() found.
endprotoent_r() NOT found.
endpwent() found.
<pwd.h> found.
endpwent_r() NOT found.
endservent() found.
endservent_r() NOT found.
<sys/file.h> defines the O_* constants...
and you have the 3 argument form of open().
<sys/file.h> found.
We'll be including <sys/file.h>.
<fcntl.h> found.
We don't need to include <fcntl.h> if we include <sys/file.h>.
fork() found.
pipe() found.
Figuring out the flag used by open() for non-blocking I/O...
Let's see what value errno gets from read() on a O_NONBLOCK file...
erf() found.
erfc() found.
exp2() found.
expm1() found.
Checking how std your stdio is...
fchdir() found.
fchmod() found.
openat() found.
unlinkat() found.
renameat() found.
linkat() found.
fchmodat() found.
fchown() found.
fcntl() found.
Well, your system has some sort of fd_set available...
and you have the normal fd_set macros.
fdclose() NOT found.
fdim() found.
fegetround() found.
fgetpos() found.
finite() found.
finitel() found.
flock() found.
fma() found.
fmax() found.
fmin() found.
fp_class() NOT found.
Checking to see if you have fpclassify...
fp_classify() NOT found.
fp_classl() NOT found.
pathconf() found.
fpathconf() found.
fpclass() NOT found.
fpclassl() NOT found.
fpgetround() NOT found.
Checking to see if you have fpos64_t...
frexpl() found.
<sys/param.h> found.
<sys/mount.h> found.
Checking to see if your system supports struct fs_data...
fseeko() found.
fsetpos() found.
fstatfs() found.
statvfs() found.
fstatvfs() found.
fsync() found.
ftello() found.
Checking if you have a working futimes()
Yes, you have
A working gai_strerror() found.
<ndbm.h> NOT found.
<gdbm/ndbm.h> found.
<gdbm-ndbm.h> NOT found.
dbm_open() found.
Checking if your <gdbm/ndbm.h> uses prototypes...
getaddrinfo() found.
getcwd() found.
getespwnam() NOT found.
getfsstat() NOT found.
getgrent() found.
getgrent_r() found.
getgrgid_r() found.
getgrnam_r() found.
gethostbyaddr() found.
gethostbyname() found.
gethostent() found.
gethostname() found.
uname() found.
Shall I ignore gethostname() from now on? [n]
gethostbyaddr_r() found.
gethostbyname_r() found.
gethostent_r() found.
getitimer() found.
getlogin() found.
getlogin_r() found.
getmnt() NOT found.
getmntent() found.
getnameinfo() found.
getnetbyaddr() found.
getnetbyname() found.
getnetent() found.
getnetbyaddr_r() found.
getnetbyname_r() found.
getnetent_r() found.
getpagesize() found.
getprotobyname() found.
getprotobynumber() found.
getprotoent() found.
getpgid() found.
getpgrp2() NOT found.
getppid() found.
getpriority() found.
getprotobyname_r() found.
getprotobynumber_r() found.
getprotoent_r() found.
getprpwnam() NOT found.
getpwent() found.
getpwent_r() found.
getpwnam_r() found.
getpwuid_r() found.
getservbyname() found.
getservbyport() found.
getservent() found.
getservbyname_r() found.
getservbyport_r() found.
getservent_r() found.
getspnam() found.
<shadow.h> found.
getspnam_r() found.
gettimeofday() found.
gmtime_r() found.
hasmntopt() found.
<netinet/in.h> found.
<arpa/inet.h> found.
htonl() found.
hypot() found.
ilogb() found.
ilogbl() found.
inet_aton() found.
inet_ntop() found.
inet_pton() found.
isascii() found.
isblank() found.
Checking to see if you have isfinite...
isfinitel() NOT found.
Checking to see if you have isinf...
isinfl() found.
Checking to see if you have isless...
Checking to see if you have isnan...
isnanl() found.
Checking to see if you have isnormal...
j0() found.
j0l() found.
killpg() found.
localeconv() found.
lchown() found.
LDBL_DIG found.
lgamma() found.
lgamma_r() found.
Checking to see if your libm supports _LIB_VERSION...
No, it does not (probably harmless)
link() found.
llrint() found.
llrintl() found.
llround() found.
llroundl() found.
localeconv_l() NOT found.
localtime_r() found.
lockf() found.
log1p() found.
log2() found.
logb() found.
lrint() found.
lrintl() found.
lround() found.
lroundl() found.
lstat() found.
madvise() found.
malloc_size() NOT found.
malloc_good_size() NOT found.
malloc_usable_size() found.
mblen() found.
mbrlen() found.
mbrtowc() found.
mbstowcs() found.
mbtowc() found.
memmem() found.
memrchr() found.
mkdir() found.
mkdtemp() found.
mkfifo() found.
mkostemp() found.
mkstemp() found.
mkstemps() found.
mktime() found.
<sys/mman.h> found.
mmap() found.
and it returns (void *).
sqrtl() found.
scalbnl() found.
truncl() found.
modfl() found.
mprotect() found.
msgctl() found.
msgget() found.
msgsnd() found.
msgrcv() found.
You have the full msg*(2) library.
Checking to see if your system supports struct msghdr...
msync() found.
munmap() found.
nan() found.
nanosleep() found.
nearbyint() found.
nextafter() found.
nexttoward() found.
nice() found.
<langinfo.h> found.
nl_langinfo() found.
<quadmath.h> found.
Choosing the C types to be used for Perl's internal types...
Checking how many bits of your UVs your NVs can preserve...
Checking to find the largest integer value your NVs can hold...
The largest integer your NVs can preserve is equal to 256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
Checking whether NV 0.0 is all bits zero in memory...
0.0 is represented as all bits zero in memory
Checking to see if you have off64_t...
pause() found.
pipe2() found.
poll() found.
prctl() found.
readlink() found.
vfork() found.
Do you still want to use vfork()? [n]
pthread_attr_setscope() found.
Checking to see if you have ptrdiff_t...
random_r() found.
readdir() found.
seekdir() found.
telldir() found.
rewinddir() found.
readdir64_r() found.
readdir_r() found.
readv() found.
recvmsg() found.
regcomp() found.
remainder() found.
remquo() found.
rename() found.
rint() found.
rmdir() found.
round() found.
scalbn() found.
select() found.
semctl() found.
semget() found.
semop() found.
You have the full sem*(2) library.
You do not have union semun in <sys/sem.h>.
You can use union semun for semctl IPC_STAT.
You can also use struct semid_ds* for semctl IPC_STAT.
sendmsg() found.
setegid() found.
seteuid() found.
setgrent() found.
setgrent_r() NOT found.
sethostent() found.
sethostent_r() NOT found.
setitimer() found.
setlinebuf() found.
<locale.h> found.
<wctype.h> found.
towupper() found.
Your system has setlocale()...
and it seems sane
setlocale_r() NOT found.
setnetent() found.
setnetent_r() NOT found.
setprotoent() found.
setpgid() found.
setpgrp2() NOT found.
setpriority() found.
setproctitle() NOT found.
setprotoent_r() NOT found.
setpwent() found.
setpwent_r() NOT found.
setregid() found.
setresgid() found.
setreuid() found.
setresuid() found.
setrgid() NOT found.
setruid() NOT found.
setservent() found.
setservent_r() NOT found.
setsid() found.
setvbuf() found.
shmctl() found.
shmget() found.
shmat() found.
and it returns (void *).
shmdt() found.
You have the full shm*(2) library.
sigaction() found.
pid_t found.
Checking if your siginfo_t has si_errno field...
Checking if your siginfo_t has si_pid field...
Checking if your siginfo_t has si_uid field...
Checking if your siginfo_t has si_addr field...
Checking if your siginfo_t has si_status field...
Checking if your siginfo_t has si_band field...
Checking if your siginfo_t has si_value field...
Checking if your siginfo_t has si_fd field...
<sunmath.h> NOT found.
Checking to see if you have signbit() available to work on double... Yes.
sigprocmask() found.
POSIX sigsetjmp found.
snprintf() found.
vsnprintf() found.
sockatmark() found.
socks5_init() NOT found.
srand48_r() found.
srandom_r() found.
stat() found.
<sys/stat.h> found.
Checking to see if your struct stat has st_blocks field...
<sys/vfs.h> found.
<sys/statfs.h> found.
Checking to see if your system supports struct statfs...
Checking to see if your struct statfs has f_flags field...
Your compiler supports static __inline__.
Checking how to access stdio streams by file descriptor number...
I can't figure out how to access stdio streams by file descriptor number.
strcoll() found.
strerror_l() found.
strerror_r() found.
strftime() found.
strnlen() found.
strtod() found.
strtod_l() found.
strtol() found.
strtold() found.
strtold_l() found.
strtoll() found.
strtoq() found.
strtoul() found.
strtoull() found.
strtouq() found.
strxfrm() found.
symlink() found.
syscall() found.
sysconf() found.
system() found.
tcgetpgrp() found.
tcsetpgrp() found.
tgamma() found.
Since threads aren't selected, we won't bother looking for nl_langinfo_l()
time() found.
time_t found.
timegm() found.
<sys/times.h> found.
times() found.
clock_t found.
tmpnam_r() found.
towlower() found.
trunc() found.
truncate() found.
ttyname_r() found.
tzname[] found.
(Testing for character data alignment may crash the test.  That's okay.)
It seems that you must access character data in an aligned manner.
ualarm() found.
umask() found.
unordered() NOT found.
unsetenv() found.
usleep() found.
ustat() found.
closedir() found.
Checking whether closedir() returns a status...
wait4() found.
waitpid() found.
wcrtomb() found.
A working wcscmp() found.
wcstombs() found.
A working wcsxfrm() found.
wctomb() found.
writev() found.
Checking alignment constraints...
Doubles must be aligned on a how-many-byte boundary? [8]
Checking how long a character is (in bits)...
What is the length of a character (in bits)? [8]
Checking to see how your cpp does stuff like concatenate tokens...
Oh!  Smells like ANSI's been here.
<db.h> found.
Checking Berkeley DB version ...
Looks OK.
Checking return type needed for hash for Berkeley DB ...
Checking return type needed for prefix for Berkeley DB ...
Exclude . from @INC by default?  [y]
Checking the kind of infinities and nans you have...
(The following tests may crash.  That's okay.)
Checking how many mantissa bits your doubles have...
Checking how many mantissa bits your long doubles have...
Checking how many mantissa bits your NVs have...
Using our internal random number implementation...
Determining whether or not we are on an EBCDIC system...
Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8.
Checking how to flush all pending stdio output...
Your fflush(NULL) works okay for output streams.
Let's see if it clobbers input pipes...
fflush(NULL) seems to behave okay with input streams.
Checking the size of gid_t...
Checking the sign of gid_t...
Checking how to print 64-bit integers...
Checking the format strings to be used for Perl's internal types...
Checking the format string to be used for gids...
getgroups() found.
setgroups() found.
What type pointer is the second argument to getgroups() and setgroups()?
[gid_t]
Checking if your /usr/bin/make program sets $(MAKE)...
mode_t found.
It seems that va_copy() or similar will be needed.
size_t found.
What is the type for the 1st argument to gethostbyaddr? [char *]
What is the type for the 2nd argument to gethostbyaddr? [size_t]
What pager is used on your system? [/usr/bin/less -R]
Checking how to generate random libraries on your machine...
What is the type for the 2nd, 3rd, and 4th arguments to select? [fd_set *]
Your select() operates on 64 bits at a time.
Generating a list of signal names and numbers...
Checking the size of size_t...
Checking to see if you have socklen_t...
<socks.h> NOT found.
I'll be using ssize_t for functions returning a byte count.
Checking the size of st_ino...
Checking the sign of st_ino...
Your stdio uses signed chars.
Checking the size of uid_t...
Checking the sign of uid_t...
Checking the format string to be used for uids...
Determining whether we can use sysctl with KERN_PROC_PATHNAME to find executing program...
I'm unable to compile the test program.
I'll assume no sysctl with KERN_PROC_PATHNAME here.
Determining whether we can use _NSGetExecutablePath to find executing program...
I'm unable to compile the test program.
I'll assume no _NSGetExecutablePath here.
Which compiler compiler (yacc) shall I use? [yacc]
<bfd.h> NOT found.
<execinfo.h> found.
<fenv.h> found.
<fp.h> NOT found.
<fp_class.h> NOT found.
<gdbm.h> found.
gdbm_open() found.
<ieeefp.h> NOT found.
<libutil.h> NOT found.
<mntent.h> found.
<net/errno.h> NOT found.
<netinet/tcp.h> found.
<poll.h> found.
<prot.h> NOT found.
Guessing which symbols your C compiler and preprocessor define...
Adding -D_FORTIFY_SOURCE=2 to ccflags...
tcsetattr() found.
You have POSIX termios.h... good!
<stdbool.h> found.
<stdint.h> found.
<sys/access.h> NOT found.
<sys/filio.h> NOT found.
<sys/ioctl.h> found.
<syslog.h> found.
<sys/mode.h> NOT found.
<sys/poll.h> found.
<sys/resource.h> found.
<sys/security.h> NOT found.
<sys/statvfs.h> found.
<sys/un.h> found.
<sys/utsname.h> found.
<sys/wait.h> found.
<ustat.h> found.
<utime.h> found.
<wchar.h> found.
Looking for extensions...
What extensions do you wish to load dynamically?
[B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call
 GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap P
erlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap attributes
 mro re threads threads/shared]
What extensions do you wish to load statically? [none]
Stripping down executable paths...
Creating config.sh...
Doing variable substitutions on .SH files...
Extracting config.h (with variable substitutions)
cflags.SH: Adding -std=c89.
cflags.SH: Adding -Werror=pointer-arith.
cflags.SH: Adding -Wextra.
cflags.SH: Adding -Wc++-compat.
cflags.SH: Adding -Wwrite-strings.
cflags.SH: Adding -Werror=declaration-after-statement.
cflags.SH: cc       = cc
cflags.SH: ccflags  = -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURC
E=2
cflags.SH: stdflags =  -std=c89
cflags.SH: optimize = -O2
cflags.SH: warn     =  -Wall -Werror=pointer-arith -Wextra -Wc++-compat -Wwrite-strings -Werror=declaration-after-statement
Extracting cflags (with variable substitutions)
Not re-extracting config.h
Extracting makedepend (with variable substitutions)
Extracting Makefile (with variable substitutions)
Extracting myconfig (with variable substitutions)
Extracting pod/Makefile (with variable substitutions)
Extracting Policy.sh (with variable substitutions)
Extracting runtests (with variable substitutions)
Configure done.

If you compile perl5 on a different machine or from a different object
directory, copy the Policy.sh file from this object directory to the
new one before you run Configure -- this will help you with most of
the policy defaults.
@jkeenan
Copy link
Contributor

jkeenan commented Oct 31, 2024

Notice the 34 instances of *** WHOA THERE!!! *** in your output. This indicates that your git checkout of the Perl source code is "dirty". I recommend that you say git clean -dfx before running sh ./Configure -des. (I acknowledge in advance that this may not be the source of your problem, but it's what immediately stood out to me.)

@jkeenan
Copy link
Contributor

jkeenan commented Oct 31, 2024

Notice the 34 instances of *** WHOA THERE!!! *** in your output. This indicates that your git checkout of the Perl source code is "dirty". I recommend that you say git clean -dfx before running sh ./Configure -des. (I acknowledge in advance that this may not be the source of your problem, but it's what immediately stood out to me.)

On more careful examination, I believe you are attempting to build perl from a tarball and that you have chosen to make your configuration selections from a previously existing config.sh file.

I see a config.sh file.  Shall I use it to set the defaults? [y]
Fetching default answers from your old config.sh file...
...

I think that would explain all the WHOA THERE instances, but I do not know the code in ./Configure well enough to say why a Makefile (or makefile) is not created.

@liwenhui-soul
Copy link
Author

Thank you for your reminder. This is because I tried multiple times and posted the result of one of those attempts.

@Leont
Copy link
Contributor

Leont commented Oct 31, 2024

Thank you for your reminder. This is because I tried multiple times and posted the result of one of those attempts.

Can you please post the results of a clean run

@liwenhui-soul
Copy link
Author

Thank you for your reminder. This is because I tried multiple times and posted the result of one of those attempts.

Can you please post the results of a clean run

Ok, it has been updated.

@jkeenan
Copy link
Contributor

jkeenan commented Nov 1, 2024

Thank you for your reminder. This is because I tried multiple times and posted the result of one of those attempts.

Can you please post the results of a clean run

Ok, it has been updated.

Thanks. Two questions (which admittedly are only guesses):

In the config.sh file created by this process, what value gets assigned to firstmakefile?

I notice that you are running this program as root. Do you get any different results when you configure as an ordinary user?

@jkeenan
Copy link
Contributor

jkeenan commented Nov 1, 2024

An additional question:

Extracting cflags (with variable substitutions)
Not re-extracting config.h
Extracting makedepend (with variable substitutions)
Extracting Makefile (with variable substitutions)
Extracting myconfig (with variable substitutions)
Extracting pod/Makefile (with variable substitutions)
Extracting Policy.sh (with variable substitutions)
Extracting runtests (with variable substitutions)
Configure done.

At the end of the process, are you missing any of the files identified by the Extracting ... statements besides Makefile?

@Leont
Copy link
Contributor

Leont commented Nov 1, 2024

That /d/ is looking very suspicious to me. I see you're using WSL. Can you try it again but with -Dfirstmakefile=GNUmakefile? Basically are you running on a case-insensitive file system? Can you confirm that uname -r return 5.15.153.1-microsoft-standard-wsl2

@liwenhui-soul
Copy link
Author

Yes, my kernel is 5.15.153.1-microsoft-standard-WSL2, and I am running CentOS 6 on Docker on Windows. After adding -Dfirstmakefile=GNUmakefile, the Makefile was generated. Thank you. By the way, could you please explain what caused this issue internally?

@Leont
Copy link
Contributor

Leont commented Nov 4, 2024

Yes, my kernel is 5.15.153.1-microsoft-standard-WSL2, and I am running CentOS 6 on Docker on Windows. After adding -Dfirstmakefile=GNUmakefile, the Makefile was generated. Thank you. By the way, could you please explain what caused this issue internally?

Configure makes use of a Makefile and a makefile. Typically on unix these are different files (with the latter taking precedence), but if on a case-insensitive filesystem they're not and then things go belly up. GNUmakefile is a gmake specific name for a makefile that takes even higher precedence, so using that instead will make things work on such operating systems (but is less portable because it doesn't work with non-gnu make implementations).

We should probably add an entry to the Linux hints file that if osvers matches *-wsl2 we automatically set firstmakefile=GNUmakefile

mauke added a commit to mauke/perl5 that referenced this issue Nov 4, 2024
... because the Windows file system is case insensitive.

See the discussion in Perl#22715.
@jkeenan
Copy link
Contributor

jkeenan commented Nov 5, 2024

Yes, my kernel is 5.15.153.1-microsoft-standard-WSL2, and I am running CentOS 6 on Docker on Windows. After adding -Dfirstmakefile=GNUmakefile, the Makefile was generated. Thank you. By the way, could you please explain what caused this issue internally?

Configure makes use of a Makefile and a makefile. Typically on unix these are different files (with the latter taking precedence), but if on a case-insensitive filesystem they're not and then things go belly up. GNUmakefile is a gmake specific name for a makefile that takes even higher precedence, so using that instead will make things work on such operating systems (but is less portable because it doesn't work with non-gnu make implementations).

We should probably add an entry to the Linux hints file that if osvers matches *-wsl2 we automatically set firstmakefile=GNUmakefile

+1 to that suggestion. I have no idea how prevalent wsl2 is in the wild, but making this assignment in the hints file seems like a not too dangerous way to procede.

mauke added a commit to mauke/perl5 that referenced this issue Nov 7, 2024
This can happen with WSL because the Windows file system is case
insensitive. See the discussion in Perl#22715.
mauke added a commit that referenced this issue Nov 7, 2024
This can happen with WSL because the Windows file system is case
insensitive. See the discussion in #22715.
@mauke
Copy link
Contributor

mauke commented Nov 7, 2024

I added a check for case-insensitive file systems to hints/linux.sh in c1d6176.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants