From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) by sourceware.org (Postfix) with ESMTPS id 580BF385734B for ; Mon, 25 Sep 2023 08:36:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 580BF385734B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-533e7d127d4so2645057a12.3 for ; Mon, 25 Sep 2023 01:36:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695630964; x=1696235764; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kiJKbrgz3zIR4Gnuu4epIvAsK2fbeGAkXS7lQjkOGIQ=; b=WPDJWckocH1B5l945x6VhwXFYP2Oa5UwcNciCSq9+7F0xDZPgq1cNHsDFPfenVlJRJ xaujKrXL41u65acvJb4LgZNKkC1zO5u6EU/5WeGa+/RagBghaaTufEeVHd/nCFvcz88A 5HvGf7Ml9+UnQajYYOAZrgKCBtYzA6uTLcAng+sxpWap6BDs9zWiy/UcFFcOywiSZk/f Fy2BI8galLNmm2n2uRpYiIhMcmlaMcXb09EgDviPuWNiMo7ja2ILSA6gJm9aLZ1Mj3dk cRjxZQB6oWSR6clXCFkB1KkkzDvspEbv+MoROrQQOMeIZEHVW2fDAlIQmIPUI68XHomb qwHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695630964; x=1696235764; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kiJKbrgz3zIR4Gnuu4epIvAsK2fbeGAkXS7lQjkOGIQ=; b=ima5n+juIiUYN140macL97Is/Abc+wOdxM/UQHEA5EHX1mNH3REiq4Bcav1MYXps0q 1hQjT/L9twjefyPrUVcVCW0OkYAFESvxmXf/J5Y57XME8VCAqfdiuBuSEh91WoMcLT8U 0EprnS+PfN/6FfUhOhMPzKn0D5LV53DXp3bcisSCBbjgxr/61pKJjDG8eOUFzupAGK3F X6K+ifKqtkSakbzDhDsCOW7oEKF9hpBa/pujK3doOGxmf6KVK4kfpFUp5KNz2uzfogr6 C74m9Mfdx0kllK4QObeddGtXUmA5IeFPKpjfSadgMKsT8yjdzk3OzWDtAwbwQwLEvla/ qJdg== X-Gm-Message-State: AOJu0YzWAlLAeE/zKDYoBGw9SRbKIpncwDoJ3nIv/td815Tkyo0KP8iE twZ8uR5YW+6onz+a40vE9OnNY2H+qkw= X-Google-Smtp-Source: AGHT+IG9GhA3QrGwkgXhi/dn+QxMxOJu8nqjxwjAWXMve4k3Ze8cXlt6IF3/tWRjxRjubzS2RR8jfw== X-Received: by 2002:a05:6402:1a25:b0:52d:212d:78ee with SMTP id be5-20020a0564021a2500b0052d212d78eemr4941049edb.25.1695630964033; Mon, 25 Sep 2023 01:36:04 -0700 (PDT) Received: from fatty.nomansland ([193.187.151.25]) by smtp.gmail.com with ESMTPSA id n2-20020aa7c442000000b0052e1959db1csm5206903edr.20.2023.09.25.01.36.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Sep 2023 01:36:03 -0700 (PDT) From: Claudiu Zissulescu To: binutils@sourceware.org Cc: fbedard@synopsys.com, Claudiu Zissulescu Subject: [committed 04/10] arc: Add new linker emulation and scripts for ARCv3 ISA. Date: Mon, 25 Sep 2023 11:35:41 +0300 Message-Id: <20230925083547.432083-4-claziss@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230925083547.432083-1-claziss@gmail.com> References: <20230925083547.432083-1-claziss@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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: From: Claudiu Zissulescu Add ARCv3's linker bits. Remove obsolete tests. ld/ xxxx-xx-xx Claudiu Zissulescu * ld/Makefile.am: Add ARC64 targets. * ld/configure.tgt: Likewise. * ld/Makefile.in: Regenerate. * ld/emulparams/arc64elf32.sh: New file. * ld/emulparams/arc64elf64.sh: Likewise. * ld/emulparams/arc64linux32.sh: Likewise. * ld/emulparams/arc64linux64.sh: Likewise. * ld/scripttempl/elfarc.sc: Update stack and heap definitions. * ld/testsuite/ld-arc/got-weak.d: Deleted file. * ld/testsuite/ld-arc/got-weak.s: Likewise. Signed-off-by: Claudiu Zissulescu --- ld/Makefile.am | 4 ++++ ld/Makefile.in | 8 ++++++++ ld/configure.tgt | 21 +++++++++++++++++++-- ld/emulparams/arc64elf32.sh | 12 ++++++++++++ ld/emulparams/arc64elf64.sh | 12 ++++++++++++ ld/emulparams/arc64linux32.sh | 22 ++++++++++++++++++++++ ld/emulparams/arc64linux64.sh | 22 ++++++++++++++++++++++ ld/scripttempl/elfarc.sc | 18 ++++-------------- ld/testsuite/ld-arc/got-weak.d | 12 ------------ ld/testsuite/ld-arc/got-weak.s | 7 ------- 10 files changed, 103 insertions(+), 35 deletions(-) create mode 100644 ld/emulparams/arc64elf32.sh create mode 100644 ld/emulparams/arc64elf64.sh create mode 100644 ld/emulparams/arc64linux32.sh create mode 100644 ld/emulparams/arc64linux64.sh delete mode 100644 ld/testsuite/ld-arc/got-weak.d delete mode 100644 ld/testsuite/ld-arc/got-weak.s diff --git a/ld/Makefile.am b/ld/Makefile.am index 9664d4c7709..1efb1726f65 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -391,6 +391,10 @@ ALL_64_EMULATION_SOURCES = \ eaarch64nto.c \ eaarch64pe.c \ earm64pe.c \ + earc64elf32.c \ + earc64elf64.c \ + earc64linux32.c \ + earc64linux64.c \ eelf32_x86_64.c \ eelf32b4300.c \ eelf32bmip.c \ diff --git a/ld/Makefile.in b/ld/Makefile.in index afd22d479ec..ce2fb16ec83 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -890,6 +890,10 @@ ALL_64_EMULATION_SOURCES = \ eaarch64nto.c \ eaarch64pe.c \ earm64pe.c \ + earc64elf32.c \ + earc64elf64.c \ + earc64linux32.c \ + earc64linux64.c \ eelf32_x86_64.c \ eelf32b4300.c \ eelf32bmip.c \ @@ -1279,6 +1283,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaixrs6.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ealpha.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ealphavms.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earc64elf32.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earc64elf64.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earc64linux32.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earc64linux64.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcelf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earclinux_nps.Po@am__quote@ diff --git a/ld/configure.tgt b/ld/configure.tgt index ff0aaaae257..d69dee8c355 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -153,10 +153,27 @@ alpha*-*-*vms*) targ_emul=alphavms ;; am33_2.0-*-linux*) targ_emul=elf32am33lin # mn10300 variant ;; -arc*-*-elf*) targ_emul=arcelf +arc-*-elf* | arc[be]*-*-elf*) targ_emul=arcelf targ_extra_emuls="arclinux arclinux_nps arcv2elf arcv2elfx" ;; -arc*-*-linux*) case "${with_cpu}" in +arc64-*-elf*) targ_emul=arc64elf64 + targ_extra_emuls="arc64elf32 arc64linux64 arc64linux32" + targ_extra_libpath=$targ_extra_emuls + ;; +arc32-*-elf*) targ_emul=arc64elf32 + targ_extra_emuls="arc64linux32 arc64elf64 arc64linux64" + targ_extra_libpath=$targ_extra_emuls + ;; +arc64-*-linux*) targ_emul=arc64linux64 + targ_extra_emuls="arc64elf64 arc64elf32 arc64linux32" + targ_extra_libpath=$targ_extra_emuls + ;; +arc32-*-linux*) targ_emul=arc64linux32 + targ_extra_emuls="arc64elf32 arc64elf64 arc64linux64" + targ_extra_libpath=$targ_extra_emuls + ;; +arc-*-linux* | arc[eb]*-linux*) + case "${with_cpu}" in nps400) targ_emul=arclinux_nps targ_extra_emuls=arclinux ;; diff --git a/ld/emulparams/arc64elf32.sh b/ld/emulparams/arc64elf32.sh new file mode 100644 index 00000000000..0f8389a0a6f --- /dev/null +++ b/ld/emulparams/arc64elf32.sh @@ -0,0 +1,12 @@ +SCRIPT_NAME=elf +ELFSIZE=32 +SCRIPT_NAME=elfarc +TEMPLATE_NAME=elf +OUTPUT_FORMAT="elf32-littlearc64" + +TEXT_START_ADDR=0x00 + +MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" +ARCH="arc64:32" +ENTRY=__start +EMBEDDED=yes diff --git a/ld/emulparams/arc64elf64.sh b/ld/emulparams/arc64elf64.sh new file mode 100644 index 00000000000..d4291345206 --- /dev/null +++ b/ld/emulparams/arc64elf64.sh @@ -0,0 +1,12 @@ +SCRIPT_NAME=elf +ELFSIZE=64 +SCRIPT_NAME=elfarc +TEMPLATE_NAME=elf +OUTPUT_FORMAT="elf64-littlearc64" + +TEXT_START_ADDR=0x00 + +MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" +ARCH="arc64:64" +ENTRY=__start +EMBEDDED=yes diff --git a/ld/emulparams/arc64linux32.sh b/ld/emulparams/arc64linux32.sh new file mode 100644 index 00000000000..1ad8f3de41e --- /dev/null +++ b/ld/emulparams/arc64linux32.sh @@ -0,0 +1,22 @@ +ARCH="arc64:32" + +SCRIPT_NAME=elf +ELFSIZE=32 +OUTPUT_FORMAT="elf32-littlearc64" + +TEMPLATE_NAME=elf + +GENERATE_SHLIB_SCRIPT=yes +GENERATE_PIE_SCRIPT=yes + +MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" +COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" + +TEXT_START_ADDR=0x10000 + +ENTRY=__start + +# To support RELRO security feature. +NO_SMALL_DATA=yes +SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0" +GENERATE_COMBRELOC_SCRIPT=yes diff --git a/ld/emulparams/arc64linux64.sh b/ld/emulparams/arc64linux64.sh new file mode 100644 index 00000000000..89ff73dc4f2 --- /dev/null +++ b/ld/emulparams/arc64linux64.sh @@ -0,0 +1,22 @@ +ARCH="arc64:64" + +SCRIPT_NAME=elf +ELFSIZE=64 +OUTPUT_FORMAT="elf64-littlearc64" + +TEMPLATE_NAME=elf + +GENERATE_SHLIB_SCRIPT=yes +GENERATE_PIE_SCRIPT=yes + +MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" +COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" + +TEXT_START_ADDR=0x10000 + +ENTRY=__start + +# To support RELRO security feature. +NO_SMALL_DATA=yes +SEPARATE_GOTPLT=8 #FIXME! what is the true value here? +GENERATE_COMBRELOC_SCRIPT=yes diff --git a/ld/scripttempl/elfarc.sc b/ld/scripttempl/elfarc.sc index 1ae0248a900..78cb0fa9540 100644 --- a/ld/scripttempl/elfarc.sc +++ b/ld/scripttempl/elfarc.sc @@ -394,20 +394,10 @@ test -n "${RELOCATING}" && cat <: -^\s+[0-9a-f]+:\s+2730\s7f80\s[0-9a-f]+\s[0-9a-f]+\s+ld\s+r\d+,\[pcl,.* diff --git a/ld/testsuite/ld-arc/got-weak.s b/ld/testsuite/ld-arc/got-weak.s deleted file mode 100644 index 8ea18be3780..00000000000 --- a/ld/testsuite/ld-arc/got-weak.s +++ /dev/null @@ -1,7 +0,0 @@ - .cpu archs - - .weak symb - .global __start - .text -__start: - ld r0,[pcl,@symb@gotpc] -- 2.30.2