From 1ee346a0a61b454a1ce879f97cb9c06267d1e107 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Mon, 18 Mar 2019 17:06:51 +0100 Subject: Fix build with newer linux headers Change-Id: Ibfdcec60567ec357205fa137257f2d8cba44b01c Signed-off-by: Damjan Marion --- src/CMakeLists.txt | 2 +- src/cmake/memfd.cmake | 26 -------------------------- src/cmake/syscall.cmake | 36 ++++++++++++++++++++++++++++++++++++ src/vppinfra/linux/syscall.h | 6 ++++-- src/vppinfra/pmalloc.c | 3 ++- 5 files changed, 43 insertions(+), 30 deletions(-) delete mode 100644 src/cmake/memfd.cmake create mode 100644 src/cmake/syscall.cmake (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 161e3c57c44..d467da7549a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -84,7 +84,7 @@ set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "vpp") set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) -include(cmake/memfd.cmake) +include(cmake/syscall.cmake) include(cmake/api.cmake) include(cmake/library.cmake) include(cmake/exec.cmake) diff --git a/src/cmake/memfd.cmake b/src/cmake/memfd.cmake deleted file mode 100644 index ca499c459ab..00000000000 --- a/src/cmake/memfd.cmake +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright (c) 2018 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -############################################################################## -# Check for memfd_create headers and libs -############################################################################## -check_c_source_compiles(" - #define _GNU_SOURCE - #include - int main() { return memfd_create (\"/dev/false\", 0); } -" HAVE_MEMFD_CREATE) - -if (HAVE_MEMFD_CREATE) - add_definitions(-DHAVE_MEMFD_CREATE) -endif() - diff --git a/src/cmake/syscall.cmake b/src/cmake/syscall.cmake new file mode 100644 index 00000000000..1e0a559b5df --- /dev/null +++ b/src/cmake/syscall.cmake @@ -0,0 +1,36 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +############################################################################## +# Check for memfd_create headers and libs +############################################################################## +check_c_source_compiles(" + #define _GNU_SOURCE + #include + int main() { return memfd_create (\"/dev/false\", 0); } +" HAVE_MEMFD_CREATE) + +if (HAVE_MEMFD_CREATE) + add_definitions(-DHAVE_MEMFD_CREATE) +endif() + +check_c_source_compiles(" + #define _GNU_SOURCE + #include + int main() { return getcpu (0, 0); } +" HAVE_GETCPU) + +if (HAVE_GETCPU) + add_definitions(-DHAVE_GETCPU) +endif() + diff --git a/src/vppinfra/linux/syscall.h b/src/vppinfra/linux/syscall.h index 1ae029d5802..c07cad631bd 100644 --- a/src/vppinfra/linux/syscall.h +++ b/src/vppinfra/linux/syscall.h @@ -19,11 +19,13 @@ #include #include +#ifndef HAVE_GETCPU static inline int -getcpu (unsigned *cpu, unsigned *node, void *tcache) +getcpu (unsigned *cpu, unsigned *node) { - return syscall (__NR_getcpu, cpu, node, tcache); + return syscall (__NR_getcpu, cpu, node, 0); } +#endif static inline long set_mempolicy (int mode, const unsigned long *nodemask, unsigned long maxnode) diff --git a/src/vppinfra/pmalloc.c b/src/vppinfra/pmalloc.c index 9f908f40cc9..d9e50d15733 100644 --- a/src/vppinfra/pmalloc.c +++ b/src/vppinfra/pmalloc.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -53,7 +54,7 @@ pmalloc_validate_numa_node (u32 * numa_node) if (*numa_node == CLIB_PMALLOC_NUMA_LOCAL) { u32 cpu; - if (getcpu (&cpu, numa_node, 0) != 0) + if (getcpu (&cpu, numa_node) != 0) return 1; } return 0; -- cgit 1.2.3-korg