From 654e35951237015cf4d5d48a30ed0cc9bdd33138 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 14 Jul 2024 15:06:59 +0200 Subject: [PATCH] package/prelink-cross: revert back to a853a5d71 to fix build Commits b919d852e2a09b3517b79f8d0a5edeca21d2a9bb and d991d0a3172c8716642f80d607f70b761186c9e6 recently bumped prelink-cross, but this causes a build breakage in gobject-introspection, because host-prelink-cross no longer builds/install the prelink-rtld issue. While the investigation is on-going, let's revert back to the previous version of prelink-cross, which is known to work. We however keep the patch from James, which has been accepted upstream, and fixes a separate build issue. Fixes: /home/autobuild/autobuild/instance-8/output-1/host/or1k-buildroot-linux-gnu/sysroot/usr/bin/g-ir-scanner-lddwrapper: line 3: /home/autobuild/autobuild/instance-8/output-1/host/sbin/prelink-rtld: No such file or directory Signed-off-by: Thomas Petazzoni --- .checkpackageignore | 1 + ...c-Fix-TLS-offsets-computation-for-s3.patch | 43 ++++++++++++++++++ ...rc-execstack.c-fix-prelink_path-type.patch | 44 +++++++++++++++++++ package/prelink-cross/prelink-cross.hash | 2 +- package/prelink-cross/prelink-cross.mk | 2 +- 5 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 package/prelink-cross/0001-src-rtld-dl-tls.c-Fix-TLS-offsets-computation-for-s3.patch create mode 100644 package/prelink-cross/0002-src-execstack.c-fix-prelink_path-type.patch diff --git a/.checkpackageignore b/.checkpackageignore index 8f039962a0..8edb2f8c70 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -1143,6 +1143,7 @@ package/pptp-linux/0001-susv3-legacy.patch lib_patch.Upstream package/pptp-linux/0002-fix-parallel-build.patch lib_patch.Upstream package/prboom/0001-libpng-1.4.patch lib_patch.Upstream package/prboom/0002-configure-remove-predefined-O2-optimization-flag.patch lib_patch.Upstream +package/prelink-cross/0001-src-rtld-dl-tls.c-Fix-TLS-offsets-computation-for-s3.patch lib_patch.Upstream package/procps-ng/0001-configure-Add--disable-w.patch lib_patch.Upstream package/procps-ng/0002-escape-c-Fix-missing-nl_langinfo-on-certain-configs.patch lib_patch.Upstream package/procps-ng/0003-fix-pifd_open-check.patch lib_patch.Upstream diff --git a/package/prelink-cross/0001-src-rtld-dl-tls.c-Fix-TLS-offsets-computation-for-s3.patch b/package/prelink-cross/0001-src-rtld-dl-tls.c-Fix-TLS-offsets-computation-for-s3.patch new file mode 100644 index 0000000000..cea1357d1d --- /dev/null +++ b/package/prelink-cross/0001-src-rtld-dl-tls.c-Fix-TLS-offsets-computation-for-s3.patch @@ -0,0 +1,43 @@ +From 4064f77d2f550762cbf220fec7c26a8ce4219ea4 Mon Sep 17 00:00:00 2001 +From: Alexander Egorenkov +Date: Sun, 8 Aug 2021 11:19:52 +0200 +Subject: [PATCH] src/rtld/dl-tls.c: Fix TLS offsets computation for s390 arch + +rtld_determine_tlsoffsets() didn't handle s390 arch properly by falling +back to the default case. If TLS_TCB_AT_TP is 1, then set offset to -1. + +From glibc's sysdeps/s390/nptl/tls.h: +------------------------------------- +/* The TCB can have any size and the memory following the address the + thread pointer points to is unspecified. Allocate the TCB there. */ +define TLS_TCB_AT_TP 1 +define TLS_DTV_AT_TP 0 + +This lead to the following error: +--------------------------------- +prelink-rtld: error while loading shared libraries: /lib64/libc.so.6: cannot handle TLS data + +Signed-off-by: Alexander Egorenkov +--- + src/rtld/dl-tls.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/rtld/dl-tls.c b/src/rtld/dl-tls.c +index 280cee45f950..29422dcfd25e 100644 +--- a/src/rtld/dl-tls.c ++++ b/src/rtld/dl-tls.c +@@ -143,6 +143,11 @@ rtld_determine_tlsoffsets (int e_machine, struct r_scope_elem *search_list) + tls_tcb_size = 0; + break; + ++ case EM_S390: ++ tls_tcb_at_tp = 1; ++ tls_tcb_size = -1; ++ break; ++ + default: + /* Hope there's no TLS! */ + for (i = 0; i < search_list->r_nlist; i++) +-- +2.31.1 + diff --git a/package/prelink-cross/0002-src-execstack.c-fix-prelink_path-type.patch b/package/prelink-cross/0002-src-execstack.c-fix-prelink_path-type.patch new file mode 100644 index 0000000000..26a68d8f5d --- /dev/null +++ b/package/prelink-cross/0002-src-execstack.c-fix-prelink_path-type.patch @@ -0,0 +1,44 @@ +From 516030f287f65ca8bdab92c979ba2d328ee40506 Mon Sep 17 00:00:00 2001 +From: James Hilliard +Date: Fri, 31 May 2024 12:51:01 -0600 +Subject: [PATCH] src/execstack.c: fix prelink_path type +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes: +execstack.c: In function ‘execstack_make_rdwr’: +execstack.c:127:17: error: passing argument 1 of ‘asprintf’ from incompatible pointer type [-Wincompatible-pointer-types] + 127 | asprintf (&prelink_path, "%s/%s", dirname, PRELINK_PROG EXEEXT); + | ^~~~~~~~~~~~~ + | | + | const char ** +In file included from execstack.c:10: +/usr/include/stdio.h:403:40: note: expected ‘char ** restrict’ but argument is of type ‘const char **’ + 403 | extern int asprintf (char **__restrict __ptr, + | ~~~~~~~~~~~~~~~~~~^~~~~ + +Signed-off-by: James Hilliard +Signed-off-by: Richard Purdie +Upstream: https://git.yoctoproject.org/prelink-cross/commit/?id=ff2561c02ade96c5d4d56ddd4e27ff064840a176 +Signed-off-by: Thomas Petazzoni +--- + src/execstack.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/execstack.c b/src/execstack.c +index dda6bc7..5413fa2 100644 +--- a/src/execstack.c ++++ b/src/execstack.c +@@ -52,7 +52,7 @@ const char *program_path; + + /* The full pathname of the prelink tool, or NULL if it hasn't been + computed yet. */ +-const char *prelink_path; ++char *prelink_path; + + static error_t + parse_opt (int key, char *arg, struct argp_state *state) +-- +2.45.2 + diff --git a/package/prelink-cross/prelink-cross.hash b/package/prelink-cross/prelink-cross.hash index 286fef9fc3..6776d407b8 100644 --- a/package/prelink-cross/prelink-cross.hash +++ b/package/prelink-cross/prelink-cross.hash @@ -1,3 +1,3 @@ # Locally computed -sha256 a8fdf6e96032d2300102c549bdb4d961fef4e546874d79cda1f88fa07912e30c prelink-cross-ff2561c02ade96c5d4d56ddd4e27ff064840a176-git4.tar.gz +sha256 555fd65c1b907f9b78d6d41ec04cb6e242d2ecb0667867e39cdd517b3f182dd3 prelink-cross-a853a5d715d84eec93aa68e8f2df26b7d860f5b2-git4.tar.gz sha256 b8a2f73f743dc1a51aff23f1aacbca4b868564db52496fa3c0caba755bfd1eaf COPYING diff --git a/package/prelink-cross/prelink-cross.mk b/package/prelink-cross/prelink-cross.mk index e554a423d4..2312ee53e6 100644 --- a/package/prelink-cross/prelink-cross.mk +++ b/package/prelink-cross/prelink-cross.mk @@ -4,7 +4,7 @@ # ################################################################################ -PRELINK_CROSS_VERSION = ff2561c02ade96c5d4d56ddd4e27ff064840a176 +PRELINK_CROSS_VERSION = a853a5d715d84eec93aa68e8f2df26b7d860f5b2 PRELINK_CROSS_SITE = https://git.yoctoproject.org/git/prelink-cross PRELINK_CROSS_SITE_METHOD = git PRELINK_CROSS_LICENSE = GPL-2.0+