From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dellerweb.de (unknown [IPv6:2a02:c207:3003:236::1]) by sourceware.org (Postfix) with ESMTPS id 2061E38582B0 for ; Sat, 1 Oct 2022 20:00:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2061E38582B0 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=bell.net Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=bell.net Received: from mx3210.localdomain (bras-base-otwaon0925w-grc-09-174-95-58-43.dsl.bell.ca [174.95.58.43]) by dellerweb.de (Postfix) with ESMTPSA id 1AD09160002B; Sat, 1 Oct 2022 22:00:54 +0200 (CEST) Received: by mx3210.localdomain (Postfix, from userid 1000) id 3085222011B; Sat, 1 Oct 2022 20:00:52 +0000 (UTC) Date: Sat, 1 Oct 2022 20:00:51 +0000 From: John David Anglin To: libc-alpha@sourceware.org Cc: Helge Deller Subject: [committed] hppa: Fix initialization of dp register [BZ 29635] Message-ID: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="3OQQZ5wQce/30iH2" Content-Disposition: inline X-Spam-Status: No, score=-14.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KHOP_HELO_FCRDNS,MAY_BE_FORGED,SPF_HELO_NONE,SPF_SOFTFAIL,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --3OQQZ5wQce/30iH2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable After upgrading glibc to Debian 2.35-1, gdb faulted on startup and dropped core in a function call in the main application. This was caused by not initializing the global dp register for the main application early enough. Restore the code to initialize dp in _dl_start_user. It was removed when code was added to initialize dp in elf_machine_runtime_setup. Signed-off-by: John David Anglin --- diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h index c865713be1..1d51948566 100644 --- a/sysdeps/hppa/dl-machine.h +++ b/sysdeps/hppa/dl-machine.h @@ -347,6 +347,16 @@ elf_machine_runtime_setup (struct link_map *l, struct = r_scope_elem *scope[], its return value is the user program's entry point. */ =20 #define RTLD_START \ +/* Set up dp for any non-PIC lib constructors that may be called. */ \ +static struct link_map * __attribute__((used)) \ +set_dp (struct link_map *map) \ +{ \ + register Elf32_Addr dp asm ("%r27"); \ + dp =3D D_PTR (map, l_info[DT_PLTGOT]); \ + asm volatile ("" : : "r" (dp)); \ + return map; \ +} \ + \ asm ( \ " .text\n" \ " .globl _start\n" \ @@ -426,6 +436,13 @@ asm ( \ direct loader invocation. Thus, argc and argv must be \ reloaded from from _dl_argc and _dl_argv. */ \ \ + /* Load main_map from _rtld_local and setup dp. */ \ +" addil LT'_rtld_local,%r19\n" \ +" ldw RT'_rtld_local(%r1),%r26\n" \ +" bl set_dp, %r2\n" \ +" ldw 0(%r26),%r26\n" \ +" copy %ret0,%r26\n" \ + \ /* Load argc from _dl_argc. */ \ " addil LT'_dl_argc,%r19\n" \ " ldw RT'_dl_argc(%r1),%r20\n" \ @@ -438,13 +455,10 @@ asm ( \ " ldw 0(%r20),%r24\n" \ " stw %r24,-44(%sp)\n" \ \ - /* Call _dl_init(main_map, argc, argv, envp). */ \ -" addil LT'_rtld_local,%r19\n" \ -" ldw RT'_rtld_local(%r1),%r26\n" \ -" ldw 0(%r26),%r26\n" \ - \ /* envp =3D argv + argc + 1 */ \ " sh2add %r25,%r24,%r23\n" \ + \ + /* Call _dl_init(main_map, argc, argv, envp). */ \ " bl _dl_init,%r2\n" \ " ldo 4(%r23),%r23\n" /* delay slot */ \ \ --3OQQZ5wQce/30iH2 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEnRzl+6e9+DTrEhyEXb/Nrl8ZTfEFAmM4nG0ACgkQXb/Nrl8Z TfHfYA//atv/Y35nm83hh3FWr3xp0n/HCg7/pCE7DtNaQmb0BQ40YW1BdS+XVZ25 Vt3rpqkF1NPjL6sIXRMyQ0e/qdPUMxjYp5wychwAPCSpfmsniZsiRJfH9Lpr8LEm +nLmgvvLUq9Ctq9NNiFuOdsIqhPokGjBS1auhpXCzkoCqS1DljART/ODTbZpPYHI Ma0ZxCR6dSECi8pXO+WDfRY5EStvcPFJn4iH6+aLAcsGMOnhpv8AktmgufBFRuGU v27yOUb8se/dh/lY3gcy8el4Du26EnMPdK2TiuVaTCOyT4++q20IwKDgAUAA0DKb rSABZ11QT096TNbiA27nLUr70NkCA05NObfi0vDT9gV5sco3VkP52HlE2dyK+zjQ PrtL4BCFECkVc7CAQ5vdgcN4cpU0Lgbpxtmf0zTzBKds0uk4r6PhPGC1c6L2eDeW lNZwoS2kbqOXiMdneMclGDQb71ZNXdRj299OoRvtgmSb2lIguF+d+YUo1QLi42B4 yFcUPW4jERugse84H9ujs508RLWLpv4hVlJUNBBPG6oSWF8gARe0lxsWFlT8MDVy esJBDwDDtfqfhjw3tRB5ShdwLekw1BRa4fPo4ojpYaHAL8AP4unptGpET1CT/cfG 7Th5MhiRs+0eWPpTR8h3SsUuWi/ySQtU07CczGYsMsgUjh4G9rk= =g7uc -----END PGP SIGNATURE----- --3OQQZ5wQce/30iH2--