Topics

vpp compilation error against glibc2.27

Chris Luke
 

Looks like this syscall has been in the kernel a while, but glibc only added it in 2.27:

http://man7.org/linux/man-pages/man2/memfd_create.2.html
VERSIONS
The memfd_create() system call first appeared in Linux 3.17; glibc
support was added in version 2.27.

I suspect we'll have to rename our function of the same name.

Chris.

-----Original Message-----
From: vpp-dev@... [mailto:vpp-dev@...] On Behalf Of nico
Sent: Sunday, February 11, 2018 5:14
To: vpp-dev@...
Subject: [vpp-dev] vpp compilation error against glibc2.27

Hi,


Since my distrib ( slackware-current) updated the glibc package from
2.26 to 2.27, got this vpp compilation error:

  CC       vppinfra/timer.lo
  CC       tools/vppapigen/lex.o
In file included from
/home/vpp/dev/vpp/build-root/../src/vppinfra/linux/mem.c:31:0:
/home/vpp/dev/vpp/build-root/../src/vppinfra/linux/syscall.h:43:1:
error: static declaration of ‘memfd_create’ follows non-static declaration
 memfd_create (const char *name, unsigned int flags)
 ^~~~~~~~~~~~
In file included from /usr/include/bits/mman-linux.h:115:0,
                 from /usr/include/bits/mman.h:45,
                 from /usr/include/sys/mman.h:41,
                 from
/home/vpp/dev/vpp/build-root/../src/vppinfra/linux/mem.c:22:
/usr/include/bits/mman-shared.h:46:5: note: previous declaration of
‘memfd_create’ was here
 int memfd_create (const char *__name, unsigned int __flags) __THROW;
     ^~~~~~~~~~~~
make[4]: *** [Makefile:6787: vppinfra/linux/mem.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory
'/home/vpp/dev/vpp/build-root/build-tool-native/tools'
make[3]: *** [Makefile:7757: all-recursive] Error 1
make[3]: Leaving directory
'/home/vpp/dev/vpp/build-root/build-tool-native/tools'
make[2]: *** [Makefile:3967: all] Error 2
make[2]: Leaving directory
'/home/vpp/dev/vpp/build-root/build-tool-native/tools'
make[1]: *** [Makefile:686: tools-build] Error 2
make[1]: Leaving directory '/home/vpp/dev/vpp/build-root'
make: *** [Makefile:259: /home/vpp/dev/vpp/build-root/.bootstrap.ok]
Error 2


Cannot tell if it's more on the VPP or GLIBC side, but though it's worth
reporting.

Will try to rollback to glibc2.26


Regards,

Nico


nico
 

Hi,


Since my distrib ( slackware-current) updated the glibc package from 2.26 to 2.27, got this vpp compilation error:

  CC       vppinfra/timer.lo
  CC       tools/vppapigen/lex.o
In file included from /home/vpp/dev/vpp/build-root/../src/vppinfra/linux/mem.c:31:0:
/home/vpp/dev/vpp/build-root/../src/vppinfra/linux/syscall.h:43:1: error: static declaration of ‘memfd_create’ follows non-static declaration
 memfd_create (const char *name, unsigned int flags)
 ^~~~~~~~~~~~
In file included from /usr/include/bits/mman-linux.h:115:0,
                 from /usr/include/bits/mman.h:45,
                 from /usr/include/sys/mman.h:41,
                 from /home/vpp/dev/vpp/build-root/../src/vppinfra/linux/mem.c:22:
/usr/include/bits/mman-shared.h:46:5: note: previous declaration of ‘memfd_create’ was here
 int memfd_create (const char *__name, unsigned int __flags) __THROW;
     ^~~~~~~~~~~~
make[4]: *** [Makefile:6787: vppinfra/linux/mem.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/home/vpp/dev/vpp/build-root/build-tool-native/tools'
make[3]: *** [Makefile:7757: all-recursive] Error 1
make[3]: Leaving directory '/home/vpp/dev/vpp/build-root/build-tool-native/tools'
make[2]: *** [Makefile:3967: all] Error 2
make[2]: Leaving directory '/home/vpp/dev/vpp/build-root/build-tool-native/tools'
make[1]: *** [Makefile:686: tools-build] Error 2
make[1]: Leaving directory '/home/vpp/dev/vpp/build-root'
make: *** [Makefile:259: /home/vpp/dev/vpp/build-root/.bootstrap.ok] Error 2


Cannot tell if it's more on the VPP or GLIBC side, but though it's worth reporting.

Will try to rollback to glibc2.26


Regards,

Nico