diff mbox series

[meta-oe,1/2] ltrace: Fix build with clang16

Message ID 20230207023819.2244963-1-raj.khem@gmail.com
State New
Headers show
Series [meta-oe,1/2] ltrace: Fix build with clang16 | expand

Commit Message

Khem Raj Feb. 7, 2023, 2:38 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...001-Fix-type-of-single-bit-bitfields.patch | 86 +++++++++++++++++++
 meta-oe/recipes-devtools/ltrace/ltrace_git.bb |  1 +
 2 files changed, 87 insertions(+)
 create mode 100644 meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch
new file mode 100644
index 0000000000..61932269bd
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch
@@ -0,0 +1,86 @@ 
+From 491b3b153f6b5cbf2d23a9778e5676eb29a6705f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 6 Feb 2023 16:37:19 -0800
+Subject: [PATCH] Fix type of single bit bitfields
+
+clang16 warns
+trace.c:311:22: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
+
+quash the warning by using an unsigned type to allow
+an assignment of 0 or 1 without implicit conversion.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ library.h                 |  6 +++---
+ prototype.h               |  2 +-
+ sysdeps/linux-gnu/trace.h | 10 +++++-----
+ 3 files changed, 9 insertions(+), 9 deletions(-)
+
+--- a/library.h
++++ b/library.h
+@@ -71,20 +71,20 @@ struct library_symbol {
+ 	 * looking up one in LIB->protolib.  */
+ 	struct prototype *proto;
+ 
+-	int own_name : 1;
++	unsigned int own_name : 1;
+ 
+ 	/* This is relevant for PLT symbols.  Latent PLT symbols are
+ 	 * those that don't match any of the -e rules, but that might
+ 	 * potentially become active if a library implementing them
+ 	 * appears that matches a -l rule.  Ltrace core is responsible
+ 	 * for clearing latent flag.  */
+-	int latent : 1;
++	unsigned latent : 1;
+ 
+ 	/* Delayed symbols are those for which a breakpoint shouldn't
+ 	 * be enabled yet.  They are similar to latent symbols, but
+ 	 * backend is responsible for clearing the delayed flag.  See
+ 	 * proc_activate_delayed_symbol.  */
+-	int delayed : 1;
++	unsigned int delayed : 1;
+ 
+ 	struct arch_library_symbol_data arch;
+ 	struct os_library_symbol_data os;
+--- a/prototype.h
++++ b/prototype.h
+@@ -162,7 +162,7 @@ struct protolib_cache {
+ 
+ 	/* For tracking uses of cache during cache's own
+ 	 * initialization.  */
+-	int bootstrap : 1;
++	unsigned int bootstrap : 1;
+ };
+ 
+ /* Initialize CACHE.  Returns 0 on success or a negative value on
+--- a/sysdeps/linux-gnu/trace.h
++++ b/sysdeps/linux-gnu/trace.h
+@@ -33,11 +33,11 @@
+ struct pid_task {
+ 	pid_t pid;	/* This may be 0 for tasks that exited
+ 			 * mid-handling.  */
+-	int sigstopped : 1;
+-	int got_event : 1;
+-	int delivered : 1;
+-	int vforked : 1;
+-	int sysret : 1;
++	unsigned int sigstopped : 1;
++	unsigned int got_event : 1;
++	unsigned int delivered : 1;
++	unsigned int vforked : 1;
++	unsigned int sysret : 1;
+ };
+ 
+ struct pid_set {
+--- a/sysdeps/linux-gnu/trace.c
++++ b/sysdeps/linux-gnu/trace.c
+@@ -1043,7 +1043,7 @@ ltrace_exiting_install_handler(struct pr
+ struct process_vfork_handler
+ {
+ 	struct event_handler super;
+-	int vfork_bp_refd:1;
++	unsigned int vfork_bp_refd:1;
+ };
+ 
+ static Event *
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
index 72bec301fb..976bb482aa 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -31,6 +31,7 @@  SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http;
            file://0001-ppc-Remove-unused-host_powerpc64-function.patch \
            file://0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch \
            file://0001-ppc-plt-do-not-free-symbol-libsym.patch \
+           file://0001-Fix-type-of-single-bit-bitfields.patch \
            "
 SRC_URI:append:libc-musl = " file://add_ppc64le.patch"