hi
Hi.
i'm currently building rpms of pike 8.0 for fedora35 and have troubles to "install" the binaries.
my setup: mock (chroot environment for building rpms). inside of that environment there are several steps, mainly extract source-files, prepare, compile, install and collect the final binaries.
the install step for both x86_64 and aarch64 seems to stop at:
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.bdeWDr
[...]
/builddir/build/BUILDROOT/pike80-8.0.1116-1.fc35.aarch64/usr, please wait...
i'm waiting for several hours (around 16) now attaching with strace to the running pike gets me:
close_range(11, -1, 0) = -1 EPERM (Operation not permitted) openat(AT_FDCWD, "/proc/self/fd/", O_RDONLY|O_DIRECTORY) = 9 getdents64(9, 0x7ffdc355bb80 /* 13 entries */, 1024) = 312 getdents64(9, 0x7ffdc355bb80 /* 0 entries */, 1024) = 0 close(9) = 0 close_range(11, -1, 0) = -1 EPERM (Operation not permitted) openat(AT_FDCWD, "/proc/self/fd/", O_RDONLY|O_DIRECTORY) = 9 getdents64(9, 0x7ffdc355bb80 /* 13 entries */, 1024) = 312 getdents64(9, 0x7ffdc355bb80 /* 0 entries */, 1024) = 0 close(9) .... fast looping over that lines
any ideas?
This looks like a known bug in 8.0.1116. The easiest work-around is to disable the use of closefrom(3):
Either
ac_cv_func_closefrom=no .../configure ...
or edit machine.h after running configure and remove/disable the line
#define HAVE_CLOSEFROM 1
the same under fedora 34 built correctly.
Fedora 34 most likely did not have closefrom(3).
/grubba