From patchwork Tue Jul 4 12:18:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Krebbel X-Patchwork-Id: 115742 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1177262vqx; Tue, 4 Jul 2023 05:18:51 -0700 (PDT) X-Google-Smtp-Source: APBJJlEQC3+vEZruGugbuXBb6V3oFa4mqr+rZ0XIlI9bBRXPdicR9Line6oS7MJZqJLgQ72GfsFd X-Received: by 2002:a05:6512:2013:b0:4fa:b380:4c03 with SMTP id a19-20020a056512201300b004fab3804c03mr9821664lfb.56.1688473130969; Tue, 04 Jul 2023 05:18:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688473130; cv=none; d=google.com; s=arc-20160816; b=tEEBhq4dt0uVhQ29FcDltLAYoyOMuk1QvxPCX3ibLpEYOemBX4EYiz8AN8OsrNHTf/ o2Yb/bGb/GrX1s4m9tsPYtjqR0lYunbm1CDB12ABvSA3OaNuDyPKbbMNE8lUalJZ8rD7 hxka3PgnappF1uGw7B90qd42iaeWgvHNpHYcMG3Zw5368S5Oww/DNEaLb59C/fe65VN7 YtqiiglSipw+diMLuK6zARncgwOIBi5ZWAuR6cLWkcAm0Kxth8XL6LFZTieg5cJdw+4A NukAll8fQyO50xBUAWr1DalsQBN7ury9MFkDp3UKzwt+TaQLnlnvsw50MTCaTDB/siCi BG1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=lu/KwW1FqAEo/BsES2iwOnpYejAdS8lXmp4uX3z6698=; fh=hOVy4UVxws0FZH3PKb6RSJlu5aRnKpFfZ6iAYtZs944=; b=FPAhojt/8zizInVUYOL/PVNBF3NsaCqAjgYkS1vktFhEuaTla0b9VRI6X5VeR8ZAtl VkhVnn2hb2rGAibJqylv8HuGOK/I42FzmMPry7G3zxnaMN5N7b36gyzruV/yqEth9IQU BptFlD5mjFcVXUMNvLRYFURx48qJr/Fu9iqdW/JPUwKfdfNb2yp3a9alKm/X1/fUhoOH XR8zsbdfBU+H3ATwx3nKpouUAXdufHH3VFBOv7Y5D7Lc52XSOH1hCBcBwFcApPA0Aq5y lav5+I+Ccsjg7NflfcWCzr2hTmbtd+LfTG2FqvT02Iy5KckpRS1urEUqLctkuNKxiygD 6Vxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=MzZQhEPA; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id o3-20020a056402038300b0051e03b85e7dsi3919477edv.438.2023.07.04.05.18.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jul 2023 05:18:50 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=MzZQhEPA; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A632B385781F for ; Tue, 4 Jul 2023 12:18:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A632B385781F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1688473129; bh=lu/KwW1FqAEo/BsES2iwOnpYejAdS8lXmp4uX3z6698=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=MzZQhEPAVeAqoKc2CAFTH5KuZnGXLj1nZ5WwqrlcvYGO1lt+fTGEIMCvot25k/ejU 9tqj8kS1Ql5G30v0zFfivZ1A8S32AH7A1r1x285Zk/tgkm8MVhH9FoR4CSobdlD63b 0uCWGix8zvtO4lN65MVBhb/ruMNAGACaHhQY62zY= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id E16323858D35 for ; Tue, 4 Jul 2023 12:18:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E16323858D35 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 364CGQDD008342 for ; Tue, 4 Jul 2023 12:18:40 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rmjup8mdv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 04 Jul 2023 12:18:39 +0000 Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 364C9Sle001247 for ; Tue, 4 Jul 2023 12:18:39 GMT Received: from ppma06ams.nl.ibm.com (66.31.33a9.ip4.static.sl-reverse.com [169.51.49.102]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rmjup8mcd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 04 Jul 2023 12:18:39 +0000 Received: from pps.filterd (ppma06ams.nl.ibm.com [127.0.0.1]) by ppma06ams.nl.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3646BnTM015695; Tue, 4 Jul 2023 12:18:35 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma06ams.nl.ibm.com (PPS) with ESMTPS id 3rjbde20hy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 04 Jul 2023 12:18:35 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 364CIX6T24642228 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 4 Jul 2023 12:18:33 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 77D6F2004B; Tue, 4 Jul 2023 12:18:33 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3F51720043; Tue, 4 Jul 2023 12:18:33 +0000 (GMT) Received: from li-ecc9ffcc-3485-11b2-a85c-e633c5126265.fritz.box (unknown [9.179.2.17]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 4 Jul 2023 12:18:33 +0000 (GMT) To: binutils@sourceware.org Cc: nickc@redhat.com Subject: [PATCH] Align linkerscript symbols according to ABI Date: Tue, 4 Jul 2023 14:18:32 +0200 Message-ID: <20230704121832.222400-1-krebbel@linux.ibm.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <312682e3-fc76-cac1-6d19-fb54c9ce0cf6@redhat.com> References: <312682e3-fc76-cac1-6d19-fb54c9ce0cf6@redhat.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: lcR-0LxbEqUn5uDWaGEAZrikIfQcsSPb X-Proofpoint-GUID: O3GroIApqwPWU3AkIf8tFdl8gHuIEO9s X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-04_06,2023-07-04_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxscore=0 phishscore=0 spamscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 mlxlogscore=880 impostorscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307040102 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_STOCKGEN, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, UPPERCASE_50_75 autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Andreas Krebbel via Binutils From: Andreas Krebbel Reply-To: Andreas Krebbel Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770492401694966537?= X-GMAIL-MSGID: =?utf-8?q?1770492401694966537?= Apply ABI specific alignment to symbols generated in the default linker script. No regressions on x86 and s390x. Linkerscript on x86 does not change with that. Ok for mainline? Bye, Andreas --- ld/emulparams/elf64_s390.sh | 1 + ld/emulparams/elf_s390.sh | 1 + ld/scripttempl/elf.sc | 50 +++++++++++++++++++++++-------------- 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/ld/emulparams/elf64_s390.sh b/ld/emulparams/elf64_s390.sh index 899efd7f532..d0a2a59a092 100644 --- a/ld/emulparams/elf64_s390.sh +++ b/ld/emulparams/elf64_s390.sh @@ -17,6 +17,7 @@ EXTRA_EM_FILE=s390 IREL_IN_PLT= SEPARATE_GOTPLT=0 test -z "$RELRO" && unset SEPARATE_GOTPLT +SYMBOL_ABI_ALIGNMENT=2 # Treat a host that matches the target with the possible exception of "x" # in the name as if it were native. diff --git a/ld/emulparams/elf_s390.sh b/ld/emulparams/elf_s390.sh index cb1c6b5b04d..1b2fca3f937 100644 --- a/ld/emulparams/elf_s390.sh +++ b/ld/emulparams/elf_s390.sh @@ -12,3 +12,4 @@ GENERATE_SHLIB_SCRIPT=yes GENERATE_PIE_SCRIPT=yes NO_SMALL_DATA=yes IREL_IN_PLT= +SYMBOL_ABI_ALIGNMENT=2 diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc index 1e3c5aa8504..9e95e6b4162 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc @@ -78,6 +78,8 @@ # USER_LABEL_PREFIX - prefix to add to user-visible symbols. # RODATA_NAME, SDATA_NAME, SBSS_NAME, BSS_NAME - base parts of names # for standard sections, without initial "." or suffixes. +# SYMBOL_ABI_ALIGNMENT - minimum alignment in bytes which needs to be +# applied to every symbol definition # # When adding sections, do note that the names of some sections are used # when specifying the start address of the next. @@ -165,19 +167,29 @@ if test -z "$GOT"; then GOTPLT=".got.plt ${RELOCATING-0} : { *(.got.plt)${RELOCATING+ *(.igot.plt)} }" fi fi + +def_symbol() +{ + if [ -z "${SYMBOL_ABI_ALIGNMENT}" ]; then + echo "${USER_LABEL_PREFIX}$1 = . " + else + echo "${USER_LABEL_PREFIX}$1 = ALIGN(${SYMBOL_ABI_ALIGNMENT})" + fi +} + REL_IFUNC=".rel.ifunc ${RELOCATING-0} : { *(.rel.ifunc) }" RELA_IFUNC=".rela.ifunc ${RELOCATING-0} : { *(.rela.ifunc) }" REL_IPLT=".rel.iplt ${RELOCATING-0} : { - ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_start = .);}} + ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rel_iplt_start"));}} *(.rel.iplt) - ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rel_iplt_end = .);}} + ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rel_iplt_end"));}} }" RELA_IPLT=".rela.iplt ${RELOCATING-0} : { - ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_start = .);}} + ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rela_iplt_start"));}} *(.rela.iplt) - ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__rela_iplt_end = .);}} + ${RELOCATING+${CREATE_PIC-PROVIDE_HIDDEN ($(def_symbol "__rela_iplt_end"));}} }" DYNAMIC=".dynamic ${RELOCATING-0} : { *(.dynamic) }" RODATA=".${RODATA_NAME} ${RELOCATING-0} : { *(.${RODATA_NAME}${RELOCATING+ .${RODATA_NAME}.* .gnu.linkonce.r.*}) }" @@ -267,23 +279,23 @@ else fi PREINIT_ARRAY=".preinit_array : { - ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__preinit_array_start = .);} + ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__preinit_array_start"));} KEEP (*(.preinit_array)) - ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__preinit_array_end = .);} + ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__preinit_array_end"));} }" INIT_ARRAY=".init_array : { - ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__init_array_start = .);} + ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__init_array_start"));} ${SORT_INIT_ARRAY} KEEP (*(.init_array ${CTORS_IN_INIT_ARRAY})) - ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__init_array_end = .);} + ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__init_array_end"));} }" FINI_ARRAY=".fini_array : { - ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);} + ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__fini_array_start"));} ${SORT_FINI_ARRAY} KEEP (*(.fini_array ${DTORS_IN_FINI_ARRAY})) - ${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);} + ${CREATE_SHLIB-PROVIDE_HIDDEN ($(def_symbol "__fini_array_end"));} }" CTOR=".ctors ${CONSTRUCTING-0} : { @@ -323,7 +335,7 @@ DTOR=".dtors ${CONSTRUCTING-0} : }" STACK=".stack ${RELOCATING-0}${RELOCATING+${STACK_ADDR}} : { - ${RELOCATING+${USER_LABEL_PREFIX}_stack = .;} + ${RELOCATING+$(def_symbol "_stack");} *(.stack) ${RELOCATING+${STACK_SENTINEL}} }" @@ -494,16 +506,16 @@ cat >> ldscripts/dyntmp.$$ <