Обсуждение: BUG #18086: compilation failed due to epoll_create1 not present

Поиск
Список
Период
Сортировка

BUG #18086: compilation failed due to epoll_create1 not present

От
PG Bug reporting form
Дата:
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


Re: BUG #18086: compilation failed due to epoll_create1 not present

От
Daniel Gustafsson
Дата:
> 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




Re: BUG #18086: compilation failed due to epoll_create1 not present

От
Duke Astar
Дата:
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