Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1212835rwl; Fri, 7 Apr 2023 11:43:53 -0700 (PDT) X-Google-Smtp-Source: AKy350ZOZfhcHrv+YmJwhrcKlQvbG6ouA+JPXkOVmZ31gAzM6jOifCkbk/rcGH8PO3xWD9zjUcVz X-Received: by 2002:aa7:c6da:0:b0:4fb:c66f:71c4 with SMTP id b26-20020aa7c6da000000b004fbc66f71c4mr2235103eds.11.1680893033427; Fri, 07 Apr 2023 11:43:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680893033; cv=none; d=google.com; s=arc-20160816; b=RK775Up5F3CeJdYNv1dTA8pMqvHT4mXGXzM1nPI2xp4rZ5ge3v+hZluIwxYODbyo8+ VD2Gh0SAg7ZOGfbnl9vAQ9fdQeUnYyKQlGyHHtayDIqhDihYafTooZZZYqDLrV3eDrPd ZIPnYEj6x/Mug13uAXeYQPWriMQas8kL9JSvZhGRAxCRpOXKg5n6gBqDFj/9Ayi/grNq oxkEoLLdhEaUAvKMD21rpzT5tS2vhRHwZebaUiaYsR5a7A4Jtft1Ikb5Qz1yh8DaXaSB x5UruhoelVtSk/hdR3jz+0VKjVQVG8QLxLBNsodXnmosY30JV2Y+3bHAgbNU53Bzz2bt 4LYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=lkvnHvhSWeo4VxY3cBnY8xmf+ae8qd887dNHfnNtpJc=; b=HpdfabSeGX5ZcwIakPwi7iLpbH5CzlO/mnwM4aKOgvwPIUKY82zzkBaVihUqi8wnk+ 5DRmAJv9VCTTiXYb6c+luCHYX/Cq99bksMG8lksglKPsOwvscW8eFdA2wF7z6vovCgKZ TWt4SgRqSRqMA4EgLHJpLCQcmt/6b4sqLmtpJxeUutYJV8yK4KvgjneQNJQS+u2g418H j4DbKJ0tE6mDiiipfID6/w4z0I5p0p+BNFcd4XChVcDbph1gS7BSRidABjbXJR0w1SV8 QTxUgLJLxgonNYnuuLcPJZRSNjN9LUdY544/BHULJzvcP8SDjsU1dI/oX0JcARlWzYha 60bA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=mPLcikNX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a4-20020aa7d904000000b004fb9900e237si3589360edr.255.2023.04.07.11.43.28; Fri, 07 Apr 2023 11:43:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=mPLcikNX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229469AbjDGSfm (ORCPT + 99 others); Fri, 7 Apr 2023 14:35:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229520AbjDGSfk (ORCPT ); Fri, 7 Apr 2023 14:35:40 -0400 Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96E3ABBBE for ; Fri, 7 Apr 2023 11:35:36 -0700 (PDT) Received: by mail-pj1-x1036.google.com with SMTP id lr16-20020a17090b4b9000b0023f187954acso43975817pjb.2 for ; Fri, 07 Apr 2023 11:35:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680892536; x=1683484536; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=lkvnHvhSWeo4VxY3cBnY8xmf+ae8qd887dNHfnNtpJc=; b=mPLcikNXDVSJkaTJnrYtE/PrmU4K58uQCaJJj2SEuX7BYjnHdOVPP0uWm7Ys8pkSNN 3UQMtDXGdNOq3BbYpGCt3MexDznn6DMUCJKT9u7IkE0p2J6dnIGBsvH1ujAUiYNLbst8 tU1admMpaie+k9EVyksjCS2abg71lmso213cBfaG1BJtZHm5zmKwjztqV/PXm5zjzylc M1HnI6njMewLKlZREZos9pPHHhYRnY/X7NUAfs4DubfgANrp4R+ThZI3UlHkrGh2/eZF M1C19kxcJQiD1E1i+oH+dLKCWctUrqBlIFi4eTubWT3bG0FVs8u8wzr6D31eRQRxnhuB L/gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680892536; x=1683484536; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lkvnHvhSWeo4VxY3cBnY8xmf+ae8qd887dNHfnNtpJc=; b=6vpoDtcFl4neAAzNmUElhIWU+kWXSOSD/efx2f9GTxbgayG6uUIaEa1Z5bnveK+ztW E02476REniSeh9YEEeMBpRiYWFLMmuGyvIHAj/8fq9mghZeMee1Z7AF5NQ0YEADXjcPf QkVXUP2nL9y8Ly8aKNFNfzBoI8d7pBrCx/5E5rnw9brfTNfwC9YUUyG91KJQgRGxEKuZ wS+UqVBZXgtJTDKDLHC+32fUvNcolrjjltpEoqptuG59rp3cvqQ93OPNPCLp/xxzYAwy 396OWpW/hArnJFsxqdelRnEoz0Kte2GiV/6zvID/l45gULADJshb3YSQKorc333BHg4y uGuQ== X-Gm-Message-State: AAQBX9fxuqI0x4fhADem4LF27L6zy0DoJRlk+RJMjsOloFoM2yXK0VqK DZCkcKoEjHj+e672TMMkyVjoXuMzZWq4prDtq15bj2lZ/qc5omA+CkCKQA== X-Received: by 2002:a17:90a:f10:b0:23d:535f:59c7 with SMTP id 16-20020a17090a0f1000b0023d535f59c7mr802293pjy.7.1680892535727; Fri, 07 Apr 2023 11:35:35 -0700 (PDT) MIME-Version: 1.0 References: <20230324212210.1001990-1-maskray@google.com> In-Reply-To: <20230324212210.1001990-1-maskray@google.com> From: Nick Desaulniers Date: Fri, 7 Apr 2023 11:35:24 -0700 Message-ID: Subject: Re: [PATCH v2] Makefile: use -z pack-relative-relocs To: Fangrui Song Cc: Masahiro Yamada , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, Peter Collingbourne , Will Deacon Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-15.7 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,ENV_AND_HDR_SPF_MATCH, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 24, 2023 at 2:22=E2=80=AFPM Fangrui Song w= rote: > > Commit 27f2a4db76e8 ("Makefile: fix GDB warning with CONFIG_RELR") > added --use-android-relr-tags to fix a GDB warning > > BFD: /android0/linux-next/vmlinux: unknown type [0x13] section `.relr.dyn= ' > > The GDB warning has been fixed in version 11.2. > > The DT_ANDROID_RELR tag was deprecated since DT_RELR was standardized. > Thus, --use-android-relr-tags should be removed. While making the > change, try -z pack-relative-relocs, which is supported since LLD 15. > Keep supporting --pack-dyn-relocs=3Drelr as well for older LLD versions. > > As of today, GNU ld supports the latter option for x86 and powerpc64 > ports and has no intention to support --pack-dyn-relocs=3Drelr. In the > absence of the glibc symbol version GLIBC_ABI_DT_RELR, > --pack-dyn-relocs=3Drelr and -z pack-relative-relocs are identical in > ld.lld. > > Link: https://github.com/ClangBuiltLinux/linux/issues/1057 > Link: https://sourceware.org/git/?p=3Dbinutils-gdb.git;a=3Dcommit;h=3Da61= 9b58721f0a03fd91c27670d3e4c2fb0d88f1e > Signed-off-by: Fangrui Song Thanks v2 looks better. IIUC, this will first try to test+use `--pack-dyn-relocs=3Drelr` in preference to `-z pack-relative-relocs`. Do we want to reorder the preference, for both the test and actual flag used? > --- > Makefile | 3 ++- > scripts/tools-support-relr.sh | 8 ++++++-- > 2 files changed, 8 insertions(+), 3 deletions(-) > --- > Changes from v1: > * Keep supporting --pack-dyn-relocs=3Drelr for older ld.lld versions > > diff --git a/Makefile b/Makefile > index a2c310df2145..e23a85476d5d 100644 > --- a/Makefile > +++ b/Makefile > @@ -1113,7 +1113,8 @@ LDFLAGS_vmlinux +=3D -X > endif > > ifeq ($(CONFIG_RELR),y) > -LDFLAGS_vmlinux +=3D --pack-dyn-relocs=3Drelr --use-android-relr-= tags > +# ld.lld before 15 did not support -z pack-relative-relocs. > +LDFLAGS_vmlinux +=3D $(call ld-option,--pack-dyn-relocs=3Drelr,-z= pack-relative-relocs) > endif > > # We never want expected sections to be placed heuristically by the > diff --git a/scripts/tools-support-relr.sh b/scripts/tools-support-relr.s= h > index cb55878bd5b8..4c121946e517 100755 > --- a/scripts/tools-support-relr.sh > +++ b/scripts/tools-support-relr.sh > @@ -7,8 +7,12 @@ trap "rm -f $tmp_file.o $tmp_file $tmp_file.bin" EXIT > cat << "END" | $CC -c -x c - -o $tmp_file.o >/dev/null 2>&1 > void *p =3D &p; > END > -$LD $tmp_file.o -shared -Bsymbolic --pack-dyn-relocs=3Drelr \ > - --use-android-relr-tags -o $tmp_file > + > +# ld.lld before 15 did not support -z pack-relative-relocs. > +if ! $LD $tmp_file.o -shared -Bsymbolic --pack-dyn-relocs=3Drelr -o $tmp= _file 2>/dev/null; then > + $LD $tmp_file.o -shared -Bsymbolic -z pack-relative-relocs -o $tm= p_file 2>&1 | > + grep -q pack-relative-relocs && exit 1 > +fi > > # Despite printing an error message, GNU nm still exits with exit code 0= if it > # sees a relr section. So we need to check that nothing is printed to st= derr. > -- > 2.40.0.348.gf938b09366-goog > --=20 Thanks, ~Nick Desaulniers