From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: from second.openwall.net (second.openwall.net [193.110.157.125]) by inbox.vuxu.org (Postfix) with SMTP id 3B3F522216 for ; Fri, 24 Jan 2025 06:13:05 +0100 (CET) Received: (qmail 19589 invoked by uid 550); 24 Jan 2025 05:13:01 -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 x-ms-reactions: disallow Received: (qmail 19554 invoked from network); 24 Jan 2025 05:13:01 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alexrp.com; s=alexrp; t=1737695571; x=1738300371; darn=lists.openwall.com; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=41m9BVxXH3qmOWXi/0+dfMB3wlkFZ7PnmSjDuvxOgic=; b=HQKFl/RiuA2JwerQ2+27DjMOkgYmdTDnCUysqKpTG1TYxSdlLlvINTBsUN0+ODy+d/ zTGeZuAEdfMfGDIX5XJn8bdOLwYj2KXmf42SMB0A2f1HZVzyknb0k6tIiLALNj7QeJIp MMPsZLjMRDiM0x6bq5Xp7VTemcMphPackx/dq0x+njfbEP0Ky9tHN996JkLccf+XTuP5 ws6ybb/zzvlEV9LVGq/obn9lXRqUAhDlorCxIGT+6w2MaXr4d/XBERI7hZZPZ8q3emi8 GIyeCgvnWmyUJrEqS53o8ktnu4I2vAQPPSH7BpHzwP6NHpPEd+ElgV/GwLLnd3chTyxK Jk+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737695571; x=1738300371; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=41m9BVxXH3qmOWXi/0+dfMB3wlkFZ7PnmSjDuvxOgic=; b=xJXFcMLcueZ5AwJ1ccfDm1nhZBAL9qHZvkfjfQTHxSHFClo34cIpXGsf6fMqrlTiPx w33KPDDe71xDDUm21t435m3HI3wW2TDUSP/1toMEwsQoOmkIlKJax8TYYFyCR9Pf47cP SQjoWOd82u29FOMLA5z2SC3dZMhU57VlFcS7xKkKkiImR1VoXmLorihk/rRquFfvvj1j E/jHejZ7JprWm8Mv2nsHMi0/GPUBEJ3HvA3SO7rlT9EV5mB29B3SlLZW9gH8YjCi/tTX YGL+VMD5ZzJvUtwFW/w7OkTg4bUPTWxFjsdTZlDvNE63fETlpqrqcR7ab/777K+BayAI oxXA== X-Gm-Message-State: AOJu0Yzfz4MzkbefePCxnZqR1qZCIY8Ys4rIeZuA4+9QHxdujY/MIHY5 A3XrEITsokZn91DAGvlkwubdD1VC78Mxk1mjM6+oVqwlHv/ar9RftrKC2g747pfO2+WFP7qd+rK /8t/qsdvhNiAyoKDW6vOZHDrY3eRioYa7BdWvjxYEMM+m8kkNi05tfq8eTIqiGDHcThqH6CV8OA 7SAAz1QzrXziG6xoQx1N2ZuDKHryDaDx9OFMY= X-Gm-Gg: ASbGncuPwOCuissLgN/wn6Xg9d+kt74KyiI8w8qE1cmNq8dZfrlY5BrNvsBfWLbkOiE AHUs5nqUJegu0fEov6T+LYlQEkJCrh9uJJexygFWvHcguVy7MuZnJOBZXWMKjsIWYVH8CSPzdXU jsCkBgQFOwLDKfrXP0gi4dqf1qkMOFPb7XhmSZlqIaYuqoI+r6F7wYlu/o/JhT97/2bORMu64Pn cW/nWh57689aq5fGFVFf2s5F+xWheqtwIjQQA5CQhmvpakN7QlARITymTjgkpQIwA== X-Google-Smtp-Source: AGHT+IH39lbvNFqH9/yVFrD91sFjAW0laebla4HELsdb907J2dPKoIJiKFySFVec1neSv5h7KJ6x5A== X-Received: by 2002:a17:907:7d9f:b0:aae:df74:acd1 with SMTP id a640c23a62f3a-ab38b0b9b7dmr2875494666b.11.1737695571316; Thu, 23 Jan 2025 21:12:51 -0800 (PST) From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= To: musl@lists.openwall.com Cc: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Fri, 24 Jan 2025 06:12:13 +0100 Message-ID: <20250124051212.401974-2-alex@alexrp.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [musl] [PATCH] s390x: manually inline __tls_get_addr in __tls_get_offset Calling __tls_get_addr with brasl is not valid since it's a global symbol; doing so results in an R_390_PC32DBL relocation error from lld. We could fix this by marking __tls_get_addr hidden since it is not part of the s390x ABI, or by using a different instruction. However, given its simplicity, it makes more sense to just manually inline it into __tls_get_offset for performance. The patch has been tested by applying to Zig's bundled musl copy and running the full Zig test suite under qemu-s390x. --- src/thread/s390x/__tls_get_offset.s | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/thread/s390x/__tls_get_offset.s b/src/thread/s390x/__tls_get_offset.s index 8ee92de8..405f118b 100644 --- a/src/thread/s390x/__tls_get_offset.s +++ b/src/thread/s390x/__tls_get_offset.s @@ -1,17 +1,17 @@ .global __tls_get_offset .type __tls_get_offset,%function __tls_get_offset: - stmg %r14, %r15, 112(%r15) - aghi %r15, -160 + ear %r0, %a0 + sllg %r0, %r0, 32 + ear %r0, %a1 - la %r2, 0(%r2, %r12) - brasl %r14, __tls_get_addr + la %r1, 0(%r2, %r12) - ear %r1, %a0 - sllg %r1, %r1, 32 - ear %r1, %a1 + lg %r3, 0(%r1) + sllg %r4, %r3, 3 + lg %r5, 8(%r0) + lg %r2, 0(%r4, %r5) + ag %r2, 8(%r1) + sgr %r2, %r0 - sgr %r2, %r1 - - lmg %r14, %r15, 272(%r15) br %r14 -- 2.43.0