NetBSD Problem Report #57717
From www@netbsd.org Tue Nov 21 15:40:00 2023
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id AD4591A9238
for <gnats-bugs@gnats.NetBSD.org>; Tue, 21 Nov 2023 15:40:00 +0000 (UTC)
Message-Id: <20231121153959.B8AD61A9239@mollari.NetBSD.org>
Date: Tue, 21 Nov 2023 15:39:59 +0000 (UTC)
From: thorpej@me.com
Reply-To: thorpej@me.com
To: gnats-bugs@NetBSD.org
Subject: Alpha linker generates LOAD segments (and generates warnings about them)
X-Send-Pr-Version: www-1.0
>Number: 57717
>Category: toolchain
>Synopsis: Alpha linker generates LOAD segments (and generates warnings about them)
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: toolchain-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Nov 21 15:45:01 +0000 2023
>Originator: Jason Thorpe
>Release: 10.99.10
>Organization:
RISCy Business
>Environment:
NetBSD alpha-vm 10.99.10 NetBSD 10.99.10 (GENERIC-$Revision: 1.418 $) #233: Mon Nov 20 13:56:39 PST 2023 thorpej@the-ripe-vessel:/space/src/sys/arch/alpha/compile/GENERIC.QEMU alpha
>Description:
The Alpha linker is generating an RWX LOAD segment. It has seeming been doing this for a while, but there is now a warning about it in Binuitls 2.39 (dunno exactly what Binutils version it appeared in, but that's when NetBSD's in-tree toolchain got it - 24-Dec-2022).
On my test vm, I have a test program linked in 2021:
alpha-vm:thorpej 29$ ls -l sigbttest
42 -rwxr-xr-x 1 thorpej users 41176 Nov 20 2021 sigbttest*
alpha-vm:thorpej 30$ file sigbttest
sigbttest: ELF 64-bit LSB executable, Alpha (unofficial), version 1 (SYSV), dynamically linked, interpreter /usr/libexec/ld.elf_so, for NetBSD 9.99.92, not stripped
and as you can see, it has a RWX LOAD segment:
LOAD 0x0000000000000000 0x0000000120000000 0x0000000120000000
0x000000000000813c 0x000000000000813c R E 0x10000
LOAD 0x0000000000008140 0x0000000120018140 0x0000000120018140
0x000000000000042c 0x0000000000000528 RWE 0x10000
The situation is similar today:
alpha-vm:thorpej 33$ ls -l naughty-physio
16 -rwxr-xr-x 1 thorpej users 15592 Nov 20 13:42 naughty-physio*
alpha-vm:thorpej 34$ file naughty-physio
naughty-physio: ELF 64-bit LSB executable, Alpha (unofficial), version 1 (SYSV), dynamically linked, interpreter /usr/libexec/ld.elf_so, for NetBSD 10.99.10, with debug_info, not stripped
alpha-vm:thorpej 35$
LOAD 0x0000000000000000 0x0000000120000000 0x0000000120000000
0x0000000000001084 0x0000000000001084 R E 0x10000
LOAD 0x0000000000001088 0x0000000120011088 0x0000000120011088
0x00000000000002e8 0x0000000000000350 RWE 0x10000
...but now the linker emits this warning:
alpha-vm:thorpej 36$ cc -o naughty-physio naughty-physio.c
ld: warning: naughty-physio has a LOAD segment with RWX permissions
alpha-vm:thorpej 37$
This, in turn, causes some test suite failures:
tp-start: 1700580976.503581, t_nbperf, 7
tc-start: 1700580976.504844, bpz
tc-so:Executing command [ /usr/tests/usr.bin/nbperf/h_nbperf /usr/share/dict/web2 bpz sort -n 4 /usr/tests/usr.bin/nbperf/hash_driver.c ]
tc-se:Fail: stderr not empty
tc-se:--- /dev/null 2023-11-21 15:36:16.962093233 +0000
tc-se:+++ /tmp/check.KoISX8/stderr 2023-11-21 15:36:17.633347163 +0000
tc-se:@@ -0,0 +1 @@
tc-se:+ld: warning: testprog has a LOAD segment with RWX permissions
tc-end: 1700580977.690109, bpz, failed, atf-check failed; see the output of the test for details
>How-To-Repeat:
alpha-vm:thorpej 43$ cat << EOF > hello.c
> #include <stdio.h>
> int main(void) { printf("hellorld!\n"); return 0; }
> EOF
alpha-vm:thorpej 44$ cc -o hello hello.c
ld: warning: hello has a LOAD segment with RWX permissions
alpha-vm:thorpej 45$ ./hello
hellorld!
alpha-vm:thorpej 46$
>Fix:
Yes, please!
(Contact us)
$NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2023
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.