[Buildroot] [PATCH v2] package/libcamera: fix build failure due to lack of sys/auxv.h and getauxval()
Giulio Benetti
giulio.benetti at micronovasrl.com
Tue Apr 23 16:02:30 UTC 2019
On some libc sys/auxv.h and getauxval() could not be present.
Add patch to check if they are present or not.
Fixes:
http://autobuild.buildroot.net/results/80484849540786b913e353077cc4ff7c6443a4ca/
Signed-off-by: Giulio Benetti <giulio.benetti at micronovasrl.com>
---
Changes:
V1 -> V2: removed useless newlines in patch
...when-sys-auxv.h-and-getauxval-are-no.patch | 71 +++++++++++++++++++
1 file changed, 71 insertions(+)
create mode 100644 package/libcamera/0001-meson-fix-build-when-sys-auxv.h-and-getauxval-are-no.patch
diff --git a/package/libcamera/0001-meson-fix-build-when-sys-auxv.h-and-getauxval-are-no.patch b/package/libcamera/0001-meson-fix-build-when-sys-auxv.h-and-getauxval-are-no.patch
new file mode 100644
index 0000000000..332a95ad76
--- /dev/null
+++ b/package/libcamera/0001-meson-fix-build-when-sys-auxv.h-and-getauxval-are-no.patch
@@ -0,0 +1,71 @@
+From cf9f63e63658d4df979e02708e435b9175a6c4f6 Mon Sep 17 00:00:00 2001
+From: Giulio Benetti <giulio.benetti at micronovasrl.com>
+Date: Tue, 23 Apr 2019 12:50:15 +0200
+Subject: [PATCH] meson: fix build when sys/auxv.h and getauxval() are not
+ present
+
+On some libc sys/auxv.h could not be present and getauxval() too.
+This way build will fail.
+
+Check in meson if they are present and add HAVE_SYS_AUXV_H and
+HAVE_GETAUXVAL defines to cxx arguments.
+Add #ifdef HAVE_ statements around #include <sys/auxv.h> and getauxval()
+in utils.cpp.
+
+Signed-off-by: Giulio Benetti <giulio.benetti at micronovasrl.com>
+---
+ meson.build | 12 ++++++++++++
+ src/libcamera/utils.cpp | 4 ++++
+ 2 files changed, 16 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index 6e68c3e..72a3652 100644
+--- a/meson.build
++++ b/meson.build
+@@ -20,6 +20,18 @@ common_arguments = [
+ c_arguments = common_arguments
+ cpp_arguments = common_arguments
+
++cxx = meson.get_compiler('cpp')
++
++# check for header sys/auxv.h
++if cxx.has_header('sys/auxv.h')
++ cpp_arguments += ['-DHAVE_SYS_AUXV_H']
++endif
++
++# check for function getauxval()
++if cxx.has_function('getauxval')
++ cpp_arguments += ['-DHAVE_GETAUXVAL']
++endif
++
+ add_project_arguments(c_arguments, language: 'c')
+ add_project_arguments(cpp_arguments, language: 'cpp')
+
+diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp
+index cd0fd76..0fa915b 100644
+--- a/src/libcamera/utils.cpp
++++ b/src/libcamera/utils.cpp
+@@ -6,7 +6,9 @@
+ */
+
+ #include <string.h>
++#ifdef HAVE_SYS_AUXV_H
+ #include <sys/auxv.h>
++#endif
+
+ #include "utils.h"
+
+@@ -57,8 +59,10 @@ const char *basename(const char *path)
+ */
+ char *secure_getenv(const char *name)
+ {
++#ifdef HAVE_GETAUXVAL
+ if (getauxval(AT_SECURE))
+ return NULL;
++#endif
+
+ return getenv(name);
+ }
+--
+2.17.1
+
--
2.17.1
More information about the buildroot
mailing list