deleted file mode 100644
@@ -1,42 +0,0 @@
-From 95ff340a74af16cca89fd5c5ca99890821053209 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Apr 2017 00:47:16 -0700
-Subject: [PATCH] ARM code has unreachable code after switch statement move
- initialization
-
-Fixed
-sysdeps/linux-gnu/arm/trace.c:173:33: error: statement will never be executed [-Werror=switch-unreachable]
- uint32_t operand1, operand2, result = 0;
- ^~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- sysdeps/linux-gnu/arm/trace.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/sysdeps/linux-gnu/arm/trace.c b/sysdeps/linux-gnu/arm/trace.c
-index 5e51e91..f974d1f 100644
---- a/sysdeps/linux-gnu/arm/trace.c
-+++ b/sysdeps/linux-gnu/arm/trace.c
-@@ -155,6 +155,8 @@ arm_get_next_pcs(struct process *proc,
- const unsigned cond = BITS(this_instr, 28, 31);
- const unsigned opcode = BITS(this_instr, 24, 27);
-
-+ uint32_t operand1, operand2, result = 0;
-+
- if (cond == COND_NV)
- switch (opcode) {
- arch_addr_t addr;
-@@ -170,7 +172,6 @@ arm_get_next_pcs(struct process *proc,
- }
- else
- switch (opcode) {
-- uint32_t operand1, operand2, result = 0;
- case 0x0:
- case 0x1: /* data processing */
- case 0x2:
-2.12.2
-
deleted file mode 100644
@@ -1,261 +0,0 @@
-From 0af8ced6376f2256b9daac301c851e1c99c3b035 Mon Sep 17 00:00:00 2001
-From: Adam Trhon <adam.trhon@tbs-biometrics.com>
-Date: Fri, 12 May 2017 13:39:11 +0200
-Subject: [PATCH] Fix tautological compare warning
-
-By default, gcc ignores warning from code generated by macros
-(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80369). When
-ltrace is compiled under icecream the warning *is generated*
-(https://github.com/icecc/icecream/issues/202)
-and the compilation fails (because of -Werror).
-
-Upstream-Status: Submitted [ltrace-devel@lists.alioth.debian.org]
-
-Signed-off-by: Adam Trhon <adam.trhon@tbs-biometrics.com>
----
- filter.c | 4 ++--
- sysdeps/linux-gnu/arm/fetch.c | 2 +-
- sysdeps/linux-gnu/arm/trace.c | 2 +-
- sysdeps/linux-gnu/ia64/fetch.c | 2 +-
- sysdeps/linux-gnu/metag/trace.c | 2 +-
- sysdeps/linux-gnu/mips/plt.c | 2 +-
- sysdeps/linux-gnu/ppc/fetch.c | 2 +-
- sysdeps/linux-gnu/ppc/plt.c | 2 +-
- sysdeps/linux-gnu/ppc/trace.c | 4 ++--
- sysdeps/linux-gnu/s390/fetch.c | 2 +-
- sysdeps/linux-gnu/s390/trace.c | 4 ++--
- sysdeps/linux-gnu/x86/fetch.c | 2 +-
- sysdeps/linux-gnu/x86/trace.c | 4 ++--
- value.c | 4 ++--
- 14 files changed, 19 insertions(+), 19 deletions(-)
-
-diff --git a/filter.c b/filter.c
-index ba50c40..a65856d 100644
---- a/filter.c
-+++ b/filter.c
-@@ -79,7 +79,7 @@ filter_lib_matcher_name_init(struct filter_lib_matcher *matcher,
- {
- switch (type) {
- case FLM_MAIN:
-- assert(type != type);
-+ assert(!"Unexpected value of type");
- abort();
-
- case FLM_SONAME:
-@@ -137,7 +137,7 @@ matcher_matches_library(struct filter_lib_matcher *matcher, struct library *lib)
- case FLM_MAIN:
- return lib->type == LT_LIBTYPE_MAIN;
- }
-- assert(matcher->type != matcher->type);
-+ assert(!"Unexpected value of matcher->type");
- abort();
- }
-
-diff --git a/sysdeps/linux-gnu/arm/fetch.c b/sysdeps/linux-gnu/arm/fetch.c
-index b500448..8f75fcf 100644
---- a/sysdeps/linux-gnu/arm/fetch.c
-+++ b/sysdeps/linux-gnu/arm/fetch.c
-@@ -317,7 +317,7 @@ arch_fetch_retval(struct fetch_context *ctx, enum tof type,
- memmove(data, ctx->regs.uregs, sz);
- return 0;
- }
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- }
-
-diff --git a/sysdeps/linux-gnu/arm/trace.c b/sysdeps/linux-gnu/arm/trace.c
-index 5e51e91..e76bf63 100644
---- a/sysdeps/linux-gnu/arm/trace.c
-+++ b/sysdeps/linux-gnu/arm/trace.c
-@@ -701,7 +701,7 @@ arch_type_sizeof(struct process *proc, struct arg_type_info *info)
- return (size_t)-2;
-
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- }
- }
-diff --git a/sysdeps/linux-gnu/ia64/fetch.c b/sysdeps/linux-gnu/ia64/fetch.c
-index 171c7a2..ee2fbc7 100644
---- a/sysdeps/linux-gnu/ia64/fetch.c
-+++ b/sysdeps/linux-gnu/ia64/fetch.c
-@@ -409,7 +409,7 @@ arch_fetch_arg_next(struct fetch_context *ctx, enum tof type,
- case ARGTYPE_ARRAY:
- /* Arrays decay into pointers. XXX Fortran? */
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- }
- }
-diff --git a/sysdeps/linux-gnu/metag/trace.c b/sysdeps/linux-gnu/metag/trace.c
-index ad5fffe..7a843d6 100644
---- a/sysdeps/linux-gnu/metag/trace.c
-+++ b/sysdeps/linux-gnu/metag/trace.c
-@@ -142,7 +142,7 @@ get_regval_from_unit(enum metag_unitnum unit, unsigned int reg,
- return regs->ax[reg][0];
- /* We really shouldn't be here. */
- default:
-- assert(unit != unit);
-+ assert(!"Unexpected value of unit");
- abort();
- }
- return 0;
-diff --git a/sysdeps/linux-gnu/mips/plt.c b/sysdeps/linux-gnu/mips/plt.c
-index c7c10ac..ca2307d 100644
---- a/sysdeps/linux-gnu/mips/plt.c
-+++ b/sysdeps/linux-gnu/mips/plt.c
-@@ -651,7 +651,7 @@ mips_stub_bp_continue(struct breakpoint *bp, struct process *proc)
- break;
- }
-
-- assert(bp->libsym->arch.type != bp->libsym->arch.type);
-+ assert(!"Unexpected value of bp->libsym->arch.type");
- abort();
- }
-
-diff --git a/sysdeps/linux-gnu/ppc/fetch.c b/sysdeps/linux-gnu/ppc/fetch.c
-index c6cbd71..5db5675 100644
---- a/sysdeps/linux-gnu/ppc/fetch.c
-+++ b/sysdeps/linux-gnu/ppc/fetch.c
-@@ -502,7 +502,7 @@ allocate_argument(struct fetch_context *ctx, struct process *proc,
- case ARGTYPE_ARRAY:
- /* Arrays decay into pointers. XXX Fortran? */
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- }
-
-diff --git a/sysdeps/linux-gnu/ppc/plt.c b/sysdeps/linux-gnu/ppc/plt.c
-index 5f81889..781da03 100644
---- a/sysdeps/linux-gnu/ppc/plt.c
-+++ b/sysdeps/linux-gnu/ppc/plt.c
-@@ -1085,7 +1085,7 @@ ppc_plt_bp_continue(struct breakpoint *bp, struct process *proc)
- break;
- }
-
-- assert(bp->libsym->arch.type != bp->libsym->arch.type);
-+ assert(!"Unexpected value of bp->libsym->arch.type");
- abort();
- }
-
-diff --git a/sysdeps/linux-gnu/ppc/trace.c b/sysdeps/linux-gnu/ppc/trace.c
-index 5aab538..caa6035 100644
---- a/sysdeps/linux-gnu/ppc/trace.c
-+++ b/sysdeps/linux-gnu/ppc/trace.c
-@@ -217,7 +217,7 @@ arch_type_sizeof(struct process *proc, struct arg_type_info *info)
- return (size_t)-2;
-
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- break;
- }
-@@ -231,7 +231,7 @@ arch_type_alignof(struct process *proc, struct arg_type_info *info)
-
- switch (info->type) {
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- break;
-
-diff --git a/sysdeps/linux-gnu/s390/fetch.c b/sysdeps/linux-gnu/s390/fetch.c
-index 4ad5951..4721c30 100644
---- a/sysdeps/linux-gnu/s390/fetch.c
-+++ b/sysdeps/linux-gnu/s390/fetch.c
-@@ -266,7 +266,7 @@ arch_fetch_arg_next(struct fetch_context *ctx, enum tof type,
- return allocate_gpr(ctx, proc, info, valuep, sz);
-
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- }
- return -1;
-diff --git a/sysdeps/linux-gnu/s390/trace.c b/sysdeps/linux-gnu/s390/trace.c
-index 78b04c3..24f7801 100644
---- a/sysdeps/linux-gnu/s390/trace.c
-+++ b/sysdeps/linux-gnu/s390/trace.c
-@@ -213,7 +213,7 @@ arch_type_sizeof(struct process *proc, struct arg_type_info *info)
- return (size_t)-2;
-
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- }
- }
-@@ -226,7 +226,7 @@ arch_type_alignof(struct process *proc, struct arg_type_info *info)
-
- switch (info->type) {
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- break;
-
- case ARGTYPE_CHAR:
-diff --git a/sysdeps/linux-gnu/x86/fetch.c b/sysdeps/linux-gnu/x86/fetch.c
-index 6868101..ae2ed79 100644
---- a/sysdeps/linux-gnu/x86/fetch.c
-+++ b/sysdeps/linux-gnu/x86/fetch.c
-@@ -523,7 +523,7 @@ classify(struct process *proc, struct fetch_context *context,
-
- default:
- /* Unsupported type. */
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- }
- abort();
-diff --git a/sysdeps/linux-gnu/x86/trace.c b/sysdeps/linux-gnu/x86/trace.c
-index 6a1a6a5..d8d2115 100644
---- a/sysdeps/linux-gnu/x86/trace.c
-+++ b/sysdeps/linux-gnu/x86/trace.c
-@@ -145,7 +145,7 @@ arch_type_sizeof(struct process *proc, struct arg_type_info *info)
- return (size_t)-2;
-
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- }
- }
-@@ -158,7 +158,7 @@ arch_type_alignof(struct process *proc, struct arg_type_info *info)
-
- switch (info->type) {
- default:
-- assert(info->type != info->type);
-+ assert(!"Unexpected value of info->type");
- abort();
- break;
-
-diff --git a/value.c b/value.c
-index 2125ba9..30edb4e 100644
---- a/value.c
-+++ b/value.c
-@@ -363,7 +363,7 @@ value_set_word(struct value *value, long word)
- u.u64 = word;
- break;
- default:
-- assert(sz != sz);
-+ assert(!"Unexpected value of sz");
- abort();
- }
-
-@@ -414,7 +414,7 @@ value_extract_word(struct value *value, long *retp,
- *retp = (long)u.u64;
- return 0;
- default:
-- assert(sz != sz);
-+ assert(!"Unexpected value of sz");
- abort();
- }
- }
-2.12.0
-
deleted file mode 100644
@@ -1,46 +0,0 @@
-From 67a8fa478a4484bc4dbfb3ac74e11be1dd5af594 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 23 Dec 2019 19:35:48 -0800
-Subject: [PATCH] ensure the struct pointers are null initilized
-
-Do not delete if pointer is already null
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- expr.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/expr.c b/expr.c
-index 4059a32..5ffd0ad 100644
---- a/expr.c
-+++ b/expr.c
-@@ -189,10 +189,8 @@ int
- expr_clone(struct expr_node *retp, const struct expr_node *node)
- {
- *retp = *node;
--
-+ struct expr_node *nlhs = 0, *nrhs = 0;
- switch (node->kind) {
-- struct expr_node *nlhs;
-- struct expr_node *nrhs;
-
- case EXPR_OP_ARGNO:
- case EXPR_OP_SELF:
-@@ -236,8 +234,10 @@ expr_clone(struct expr_node *retp, const struct expr_node *node)
- if (expr_alloc_and_clone(&nlhs, node->lhs, node->own_lhs) < 0) {
- if (node->kind == EXPR_OP_CALL2
- && node->u.call.own_rhs) {
-- expr_destroy(nrhs);
-- free(nrhs);
-+ if (nrhs) {
-+ expr_destroy(nrhs);
-+ free(nrhs);
-+ }
- return -1;
- }
- }
-2.24.1
-
deleted file mode 100644
@@ -1,29 +0,0 @@
-From f47672bed5905ae382e80b09dafca9a8da45aa67 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Apr 2022 18:44:36 -0700
-Subject: [PATCH] ppc/plt: do not free symbol libsym
-
-delete_symbol_chain() will call free as well if sybol is non-null
-it also fixes use-after-free warnings that compiler emits
-
-Upstream-Status: Submitted [https://gitlab.com/cespedes/ltrace/-/merge_requests/2]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sysdeps/linux-gnu/ppc/plt.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sysdeps/linux-gnu/ppc/plt.c b/sysdeps/linux-gnu/ppc/plt.c
-index 5f81889..7c1c025 100644
---- a/sysdeps/linux-gnu/ppc/plt.c
-+++ b/sysdeps/linux-gnu/ppc/plt.c
-@@ -687,7 +687,6 @@ arch_elf_add_func_entry(struct process *proc, struct ltelf *lte,
- if (libsym == NULL
- || library_symbol_init(libsym, addr, full_name, 1,
- LS_TOPLT_NONE) < 0) {
-- free(libsym);
- delete_symbol_chain(libsym);
- libsym = NULL;
- fprintf(stderr, "Couldn't add symbol %s"
-2.36.0
-
new file mode 100644
@@ -0,0 +1,34 @@
+From f2f6082cb112cf3b8a6a5bfc989e4a4f6a1bff27 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 3 Sep 2024 20:41:20 +0000
+Subject: [PATCH] proc: Make PROC_PID_FILE not use variable length array
+
+This helps in compiling with clang which is not happy about VLA
+
+| ../../../git/sysdeps/linux-gnu/proc.c:70:3: error: variable length array folded to constant array as an extension [-Werror,-Wgnu-folding-constant]
+| 70 | PROC_PID_FILE(proc_exe, "/proc/%d/exe", pid);
+| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+| ../../../git/sysdeps/linux-gnu/proc.c:59:11: note: expanded from macro 'PROC_PID_FILE'
+| 59 | char VAR[strlen(FORMAT) + 6]; \
+| | ^~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sysdeps/linux-gnu/proc.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/sysdeps/linux-gnu/proc.c b/sysdeps/linux-gnu/proc.c
+index b954997..f37e4e8 100644
+--- a/sysdeps/linux-gnu/proc.c
++++ b/sysdeps/linux-gnu/proc.c
+@@ -56,7 +56,8 @@
+ #define MAX_DELAY 100000 /* 100000 microseconds = 0.1 seconds */
+
+ #define PROC_PID_FILE(VAR, FORMAT, PID) \
+- char VAR[strlen(FORMAT) + 6]; \
++ enum { buflen_ ## VAR = strlen(FORMAT)}; \
++ char VAR[buflen_ ## VAR + 6]; \
+ sprintf(VAR, FORMAT, PID)
+
+ /*
deleted file mode 100644
@@ -1,36 +0,0 @@
-From 64f98f84fd88797e219f9dde1ca387fee4b509f0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 24 Apr 2016 16:58:17 -0700
-Subject: [PATCH] replace readdir_r with readdir
-
-glibc 2.24 has deprecated readdir_r
-
-https://sourceware.org/ml/libc-alpha/2016-02/msg00093.html
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- sysdeps/linux-gnu/proc.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/sysdeps/linux-gnu/proc.c b/sysdeps/linux-gnu/proc.c
-index 953fd86..edb716d 100644
---- a/sysdeps/linux-gnu/proc.c
-+++ b/sysdeps/linux-gnu/proc.c
-@@ -242,9 +242,10 @@ process_tasks(pid_t pid, pid_t **ret_tasks, size_t *ret_n)
- size_t alloc = 0;
-
- while (1) {
-- struct dirent entry;
- struct dirent *result;
-- if (readdir_r(d, &entry, &result) != 0) {
-+ errno = 0;
-+ result = readdir(d);
-+ if (errno != 0) {
- fail:
- free(tasks);
- closedir(d);
-2.8.0
-
@@ -11,27 +11,23 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
PE = "1"
PV = "7.91+git"
-SRCREV = "c22d359433b333937ee3d803450dc41998115685"
+SRCREV = "8eabf684ba6b11ae7a1a843aca3c0657c6329d73"
DEPENDS = "elfutils"
-SRC_URI = "git://github.com/sparkleholic/ltrace.git;protocol=https;branch=master \
+SRC_URI = "git://gitlab.com/cespedes/ltrace.git;protocol=https;branch=main \
file://configure-allow-to-disable-selinux-support.patch \
- file://0001-replace-readdir_r-with-readdir.patch \
file://0001-Use-correct-enum-type.patch \
file://0002-Fix-const-qualifier-error.patch \
- file://0001-ARM-code-has-unreachable-code-after-switch-statement.patch \
- file://0001-Fix-tautological-compare-warning.patch \
file://0001-Add-support-for-mips64-n32-n64.patch \
file://0001-configure-Recognise-linux-musl-as-a-host-OS.patch \
file://0001-mips-plt.c-Delete-include-error.h.patch \
file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \
file://0001-hook-Do-not-append-int-to-std-string.patch \
file://0001-Bug-fix-for-data-type-length-judgment.patch \
- file://0001-ensure-the-struct-pointers-are-null-initilized.patch \
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 \
+ file://0001-proc-Make-PROC_PID_FILE-not-use-variable-length-arra.patch \
"
SRC_URI:append:libc-musl = " file://add_ppc64le.patch"
The github mirror was a stopgap, now ltrace is hosted on gitlab/cespedes drop already applied patches upstream. Add a patch to fix VLAs Signed-off-by: Khem Raj <raj.khem@gmail.com> --- ...eachable-code-after-switch-statement.patch | 42 --- ...001-Fix-tautological-compare-warning.patch | 261 ------------------ ...-struct-pointers-are-null-initilized.patch | 46 --- ...01-ppc-plt-do-not-free-symbol-libsym.patch | 29 -- ...ID_FILE-not-use-variable-length-arra.patch | 34 +++ .../0001-replace-readdir_r-with-readdir.patch | 36 --- meta-oe/recipes-devtools/ltrace/ltrace_git.bb | 10 +- 7 files changed, 37 insertions(+), 421 deletions(-) delete mode 100644 meta-oe/recipes-devtools/ltrace/ltrace/0001-ARM-code-has-unreachable-code-after-switch-statement.patch delete mode 100644 meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-tautological-compare-warning.patch delete mode 100644 meta-oe/recipes-devtools/ltrace/ltrace/0001-ensure-the-struct-pointers-are-null-initilized.patch delete mode 100644 meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-plt-do-not-free-symbol-libsym.patch create mode 100644 meta-oe/recipes-devtools/ltrace/ltrace/0001-proc-Make-PROC_PID_FILE-not-use-variable-length-arra.patch delete mode 100644 meta-oe/recipes-devtools/ltrace/ltrace/0001-replace-readdir_r-with-readdir.patch