Обсуждение: BUG #18086: compilation failed due to epoll_create1 not present
The following bug has been logged on the website: Bug reference: 18086 Logged by: Duke Astar Email address: dukeastar@gmail.com PostgreSQL version: 14.9 Operating system: Linux x86 Description: Operating system: CentOS release 5.8 (Final) - Linux dev-linuxx86 2.6.18-308.el5 #1 SMP Tue Feb 21 20:05:41 EST 2012 i686 i686 Build options: from source code using default options for 'configure' during make, compilation failed due to missing epoll_create1, compilation works in postgres 13.12 Below the error. latch.c latch.c: In function ‘CreateWaitEventSet’: latch.c:763: warning: implicit declaration of function ‘epoll_create1’ latch.c:763: error: ‘EPOLL_CLOEXEC’ undeclared (first use in this function) latch.c:763: error: (Each undeclared identifier is reported only once latch.c:763: error: for each function it appears in.) make[4]: *** [latch.o] Error 1 make[4]: Leaving directory `/home2/ctaillef/pgdbg/libs/postgresql-14.9/src/backend/storage/ipc' make[3]: *** [ipc-recursive] Error 2 make[3]: Leaving directory `/home2/ctaillef/pgdbg/libs/postgresql-14.9/src/backend/storage' make[2]: *** [storage-recursive] Error 2 make[2]: Leaving directory `/home2/ctaillef/pgdbg/libs/postgresql-14.9/src/backend' make[1]: *** [all-backend-recurse] Error 2 make[1]: Leaving directory `/home2/ctaillef/pgdbg/libs/postgresql-14.9/src' make: *** [all-src-recurse] Error 2 configure set macro HAVE_SYS_EPOLL_H when sys/epoll.h is present and in src/backend/storageipc/latch.c HAVE_SYS_EPOLL_H define WAIT_USE_EPOLL and WAIT_USE_EPOLL use have 'epoll_create1' which is not present on the operating system, only first version is present 'epoll_create' I compared source code between 13.2 and 14.9 and I saw the ifdef EPOLL_CLOEXEC section was removed, which was a previous constraint which use epoll_create if not defined instead of epoll_create1 . Workaround As a workaround I found that i can set -DWAIT_USE_POLL during configure to use poll instead epoll but I think that's lead to performance issue. Thanks by advance, Regards
> On 5 Sep 2023, at 12:59, PG Bug reporting form <noreply@postgresql.org> wrote: > during make, compilation failed due to missing epoll_create1, compilation > works in postgres 13.12 ... > configure set macro HAVE_SYS_EPOLL_H when sys/epoll.h is present > and in src/backend/storageipc/latch.c > HAVE_SYS_EPOLL_H define WAIT_USE_EPOLL > and WAIT_USE_EPOLL use have 'epoll_create1' which is not present on the > operating system, only first version is present 'epoll_create' > > I compared source code between 13.2 and 14.9 and I saw the ifdef > EPOLL_CLOEXEC section was removed, which was a previous constraint which use > epoll_create if not defined instead of epoll_create1 . > > Workaround > As a workaround I found that i can set -DWAIT_USE_POLL during configure to > use poll instead epoll but I think that's lead to performance issue. Commit d1b90995e8d41df7e59efe48e98f26cd66baba9b and the pgsql-hackers thread https://postgr.es/m/CA%2BhUKGKL_%3DaO%3Dr30N%3Ds9VoDgTqHpRSzePRbA9dkYO7snc7HsxA%40mail.gmail.com provides background on that removal. RHEL 5 is not a supported target. -- Daniel Gustafsson
Thanks,
You can close the issue
Le mar. 5 sept. 2023 à 13:51, Daniel Gustafsson <daniel@yesql.se> a écrit :
> On 5 Sep 2023, at 12:59, PG Bug reporting form <noreply@postgresql.org> wrote:
> during make, compilation failed due to missing epoll_create1, compilation
> works in postgres 13.12
...
> configure set macro HAVE_SYS_EPOLL_H when sys/epoll.h is present
> and in src/backend/storageipc/latch.c
> HAVE_SYS_EPOLL_H define WAIT_USE_EPOLL
> and WAIT_USE_EPOLL use have 'epoll_create1' which is not present on the
> operating system, only first version is present 'epoll_create'
>
> I compared source code between 13.2 and 14.9 and I saw the ifdef
> EPOLL_CLOEXEC section was removed, which was a previous constraint which use
> epoll_create if not defined instead of epoll_create1 .
>
> Workaround
> As a workaround I found that i can set -DWAIT_USE_POLL during configure to
> use poll instead epoll but I think that's lead to performance issue.
Commit d1b90995e8d41df7e59efe48e98f26cd66baba9b and the pgsql-hackers thread
https://postgr.es/m/CA%2BhUKGKL_%3DaO%3Dr30N%3Ds9VoDgTqHpRSzePRbA9dkYO7snc7HsxA%40mail.gmail.com
provides background on that removal. RHEL 5 is not a supported target.
--
Daniel Gustafsson