From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id A0961385802A for ; Thu, 15 Sep 2022 03:44:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A0961385802A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn Received: from [10.20.4.52] (unknown [10.20.4.52]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Bx5OGdnyJjm7gZAA--.34045S2; Thu, 15 Sep 2022 11:44:29 +0800 (CST) Subject: Re: [PATCH] LoongArch: Prepare static PIE support To: Xi Ruoyao , gcc-patches@gcc.gnu.org Cc: Wang Xuerui , Chenghua Xu , liuzhensong References: <20220913153237.305471-1-xry111@xry111.site> From: Lulu Cheng Message-ID: Date: Thu, 15 Sep 2022 11:44:29 +0800 User-Agent: Mozilla/5.0 (X11; Linux mips64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20220913153237.305471-1-xry111@xry111.site> Content-Type: text/plain; charset=gbk; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-CM-TRANSID:AQAAf8Bx5OGdnyJjm7gZAA--.34045S2 X-Coremail-Antispam: 1UD129KBjvJXoW7uF1xKFyDAw4kXF1xtry8AFb_yoW8XF4rpa sYvFya9FW8CF1rWa1UJ3srWay09Fn7tasrCF13G3yxCay5ArykW3WrJr9IgF1DJ3y8Xry2 qry8Kr4Yva13J37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUvS14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26ryj6F1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4j 6r4UJwA2z4x0Y4vEx4A2jsIE14v26r4UJVWxJr1l84ACjcxK6I8E87Iv6xkF7I0E14v26F 4UJVW0owAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv 7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r 1j6r4UM4x0Y48IcVAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwCYjI0SjxkI62AI1cAE 67vIY487MxkIecxEwVCm-wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8Jw C20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAF wI0_JF0_Jw1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjx v20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2 jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43 ZEXa7VUbrMaUUUUUU== X-CM-SenderInfo: xfkh0wpoxo3qxorr0wxvrqhubq/ X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,MIME_CHARSET_FARAWAY,NICE_REPLY_A,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: LGTM! Thanks. ÔÚ 2022/9/13 ÏÂÎç11:32, Xi Ruoyao дµÀ: > Static PIE allows us to extend the ASLR to cover static executables and > it's not too difficult to support it. On GCC side, we just pass a group > of options to the linker, like other ports with static PIE support. > > The real implementation of static PIE (rcrt1.o) will be added into Glibc > later. > > gcc/ChangeLog: > > * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For > -static-pie, pass -static -pie --no-dynamic-linker -z text to > the linker, and do not pass --dynamic-linker. > --- > gcc/config/loongarch/gnu-user.h | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h > index 664dc9206ad..c5b1afe530d 100644 > --- a/gcc/config/loongarch/gnu-user.h > +++ b/gcc/config/loongarch/gnu-user.h > @@ -40,8 +40,10 @@ along with GCC; see the file COPYING3. If not see > #undef GNU_USER_TARGET_LINK_SPEC > #define GNU_USER_TARGET_LINK_SPEC \ > "%{G*} %{shared} -m " GNU_USER_LINK_EMULATION \ > - "%{!shared: %{static} %{!static: %{rdynamic:-export-dynamic} " \ > - "-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" > + "%{!shared: %{static} " \ > + "%{!static: %{!static-pie: %{rdynamic:-export-dynamic} " \ > + "-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} " \ > + "%{static-pie: -static -pie --no-dynamic-linker -z text}}" > > > /* Similar to standard Linux, but adding -ffast-math support. */