From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=HTML_MESSAGE, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 10854 invoked from network); 7 Sep 2023 01:14:39 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 7 Sep 2023 01:14:39 -0000 Received: (qmail 20148 invoked by uid 550); 7 Sep 2023 01:14:34 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 30628 invoked from network); 7 Sep 2023 00:46:45 -0000 Message-ID: <1db459153e3f7be32cb469509c272977b9c2b381.camel@newton.cx> From: Peter Williams To: musl@lists.openwall.com Date: Wed, 06 Sep 2023 20:46:32 -0400 Content-Type: multipart/alternative; boundary="=-GIj2GCC9Y740msRTgxAO" User-Agent: Evolution 3.48.4 (3.48.4-1.fc38) MIME-Version: 1.0 Subject: [musl] aarch64 sigsetjmp relocation truncation bug, maybe --=-GIj2GCC9Y740msRTgxAO Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello, I'm experiencing a software issue that I think maybe, might, possibly, indicate a musl bug. I'm not at all familiar with the issues involved, but it looks like emailing this list might be my best bet for testing that hypothesis, so that's what I'm doing. Please CC me on any replies as I'm not subscribed, and accept my apologies if I'm way off base here. The short answer is that I'm trying to link a large (~100 MB) static executable for aarch64 and getting this error out of the binutils linker: /home/rust/sysroot-aarch64/usr/lib/libc.a(sigsetjmp.lo): in function `sig= setjmp': /home/buildozer/aports/main/musl/src/v1.2.3/src/signal/aarch64/sigsetjmp.= s:7:(.text+0x0): relocation truncated to fit: R_AARCH64_CONDBR19 against symbol `setjmp' defined in .text section in /home/rust/sysroot-aarch64/usr/lib/libc.a(s= etjmp.lo) If I'm understanding correctly, the complaint is that a=C2=A0branch in sigsetjmp that invokes setjmp=C2=A0is too far away from the definition of setjmp. My very handwavey idea is that maybe for some reason my program is causing the linker to want to locate setjmp() and sigsetjmp() really far away from each other. If that's right, perhaps it would be possible to modify the assembler code to be able to handle such a situation? My build environment is extremely gnarly =E2=80=94 I am running my build to= ols inside a cross-compiling Alpine Linux chroot that in turn runs inside an Ubuntu Docker container. (You don't want to know.) I can provide more details if needed, as well as a script that leads up to the error on my system, if you have CPU time to burn on the Docker container build. But since the error seems to be localized within my aarch64 "libc.a", I'm hopeful that maybe this funky environment doesn't actually affect the core situation here. As you might see in the output above, I'm using musl 1.2.3. Thanks for any insight, Peter --=-GIj2GCC9Y740msRTgxAO Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable
Hello,

I'm experiencing = a software issue that I think maybe, might, possibly, indicate a musl bug. = I'm not at all familiar with the issues involved, but it looks like emailin= g this list might be my best bet for testing that hypothesis, so that's wha= t I'm doing. Please CC me on any replies as I'm not subscribed, and accept = my apologies if I'm way off base here.

The short a= nswer is that I'm trying to link a large (~100 MB) static executable for aa= rch64 and getting this error out of the binutils linker:

  /home/rust/sysroot-aarch64/usr/lib/libc.a(sigsetjmp.lo): in functi=
on `sigsetjmp':
  /home/buildozer/aports/main/musl/src/v1.2.3/src=
/signal/aarch64/sigsetjmp.s:7:(.text+0x0):
    relocation truncat=
ed to fit: R_AARCH64_CONDBR19 against symbol `setjmp'
    defined=
 in .text section in /home/rust/sysroot-aarch64/usr/lib/libc.a(setjmp.lo)





--=-GIj2GCC9Y740msRTgxAO--