J. Thomsen: > After upgrading from Fedora 34 to Fedora 35 I cannot compile Postfix (3.6.x) > due to this > > [src/util] > gcc -I. -I../../include -DHAS_DEV_URANDOM -DHAS_PCRE -UUSE_DYNAMIC_LIBS > -DDEF_SHLIB_DIR=\"no\" > -UUSE_DYNAMIC_MAPS -Wmissing-prototypes -Wformat -Wno-comment -fno-common -g > -O -I. -DLINUX5 -c > attr_clnt.c > > > In file included from attr_clnt.c:97: > /usr/include/unistd.h:363:13: error: conflicting types for ?closefrom?; have > ?void(int)? > 363 | extern void closefrom (int __lowfd) __THROW; > | ^~~~~~~~~ > In file included from attr_clnt.c:96: > ./sys_defs.h:1512:12: note: previous declaration of ?closefrom? with type > ?int(int)? > 1512 | extern int closefrom(int); > | ^~~~~~~~~
Glibc implemented closefrom() after Postfix 3.6 was released. In sys_defs.h, under #if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5) Add: #if HAVE_GLIBC_API_VERSION_SUPPORT(2, 34) #define HAS_CLOSEFROM #endif Wietse