Explorar o código

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 <thomas.petazzoni@bootlin.com>
Thomas Petazzoni hai 1 ano
pai
achega
654e359512

+ 1 - 0
.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

+ 43 - 0
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 <egorenar@linux.ibm.com>
+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 <egorenar@linux.ibm.com>
+---
+ 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
+

+ 44 - 0
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 <james.hilliard1@gmail.com>
+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 <james.hilliard1@gmail.com>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Upstream: https://git.yoctoproject.org/prelink-cross/commit/?id=ff2561c02ade96c5d4d56ddd4e27ff064840a176
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+---
+ 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
+

+ 1 - 1
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

+ 1 - 1
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+