mirror of
https://git.yoctoproject.org/poky
synced 2026-03-17 04:39:40 +01:00
glib: do a build check for strlcpy before runtime
There's no need to do a runtime check for the behaviour of strlcpy if it doesn't even exist. (From OE-Core rev: 2b6c855737afbf2b0f2baa1b14029f8ddc37e9ed) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
9bad984bf3
commit
3835162e21
@@ -0,0 +1,62 @@
|
||||
Upstream-Status: Backport [fc88e56bfc2b09a8fb2b350e76f6425ab0a056d7]
|
||||
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||
|
||||
From 141acf6a2f3b21d63c9cfe620b8e20a506e78493 Mon Sep 17 00:00:00 2001
|
||||
From: Ross Burton <ross.burton@intel.com>
|
||||
Date: Wed, 13 Mar 2019 16:22:09 +0000
|
||||
Subject: [PATCH] meson: do a build-time check for strlcpy before attempting
|
||||
runtime check
|
||||
|
||||
In cross-compilation environments the runtime check isn't possible so it is up
|
||||
to the builder to seed the cross file, but we can definitely state that strlcpy
|
||||
doesn't exist with a build test.
|
||||
---
|
||||
meson.build | 30 ++++++++++++++++--------------
|
||||
1 file changed, 16 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 15039e448..414f2d9b1 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -1860,22 +1860,24 @@ endif
|
||||
|
||||
# Test if we have strlcpy/strlcat with a compatible implementation:
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=53933
|
||||
-if cc_can_run
|
||||
- rres = cc.run('''#include <stdlib.h>
|
||||
- #include <string.h>
|
||||
- int main() {
|
||||
- char p[10];
|
||||
- (void) strlcpy (p, "hi", 10);
|
||||
- if (strlcat (p, "bye", 0) != 3)
|
||||
- return 1;
|
||||
- return 0;
|
||||
- }''',
|
||||
- name : 'OpenBSD strlcpy/strlcat')
|
||||
- if rres.compiled() and rres.returncode() == 0
|
||||
+if cc.has_function('strlcpy')
|
||||
+ if cc_can_run
|
||||
+ rres = cc.run('''#include <stdlib.h>
|
||||
+ #include <string.h>
|
||||
+ int main() {
|
||||
+ char p[10];
|
||||
+ (void) strlcpy (p, "hi", 10);
|
||||
+ if (strlcat (p, "bye", 0) != 3)
|
||||
+ return 1;
|
||||
+ return 0;
|
||||
+ }''',
|
||||
+ name : 'OpenBSD strlcpy/strlcat')
|
||||
+ if rres.compiled() and rres.returncode() == 0
|
||||
+ glib_conf.set('HAVE_STRLCPY', 1)
|
||||
+ endif
|
||||
+ elif meson.get_cross_property('have_strlcpy', false)
|
||||
glib_conf.set('HAVE_STRLCPY', 1)
|
||||
endif
|
||||
-elif meson.get_cross_property('have_strlcpy', false)
|
||||
- glib_conf.set('HAVE_STRLCPY', 1)
|
||||
endif
|
||||
|
||||
python = import('python').find_installation('python3')
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -16,6 +16,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
|
||||
file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
|
||||
file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
|
||||
file://0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch \
|
||||
file://0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch \
|
||||
file://glib-meson.cross \
|
||||
"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user