From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by sourceware.org (Postfix) with ESMTPS id AFE933858C78 for ; Thu, 16 Mar 2023 10:17:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AFE933858C78 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com Received: by mail-wm1-x329.google.com with SMTP id r19-20020a05600c459300b003eb3e2a5e7bso714855wmo.0 for ; Thu, 16 Mar 2023 03:17:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1678961865; 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=m72bejLgmSWfWUfyoLSDuA5GdgkVXtLDlzGuSugGYLU=; b=BiUBZnicBuBDy52eZoVWb2NzMUcgF+o8B7uzzGYCCqMANG4003+EHBoyMlL1zwBG7g wM1kgvYWsutqvoS7mpmboAHdfF/pMaTtpOqrYIInBNZRk4ZO2LCtte0l7OvOlk991pF1 cYhE0F+8dAyNpgc/5Dr5vZmU9VU93oHqF11+AG/6r+5ekKel5NlyhnY8GYtgeHCk2cVb B5yA3v1n+tImCUDihRuC4lv81wrnz8HLbQYBwiPYiF8jypOJ8opwXEpRcFEn/iyhN1b2 KdBZfxK8+dnaoI1RHmIKFInz7xEFi58FkJCsSC4/Ka3X/dC/3GTxt0Dig/UjI49DyTpU Ei4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678961865; 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=m72bejLgmSWfWUfyoLSDuA5GdgkVXtLDlzGuSugGYLU=; b=tRzllJ479eooaGMqEXJ7ZWtHYKRrQ9u/xWcFHNJLcLUxK41wb0Iuvc0PLZHPEAgP1J 7HkeOlWoKJ8MD8I5SSw+Ely/46wUXnCJ9OgfBgZmPPehfl7piNF2mhDyezHGL7dKm9L+ Ab5OudETuxLxhAoQIFUkiheWh72OH4m+z4PRIpz7Yv5IRr6V+iit9V3cKE5v1ph+LvDY 8WtEfJsAzEi2afHjF6d4t6FGxH0vXAv759MDr+nECVlaRvP3TUuHqJBImUtbjVEoUmRK +0YA21Tml1kFPPsrnztNbEcefd7I2dK6aPwSUWWGqaSmVHqzAOT+GqN0E8r+baUgkJyo EZ7g== X-Gm-Message-State: AO0yUKUEZFKB4AylM6KmVEsbbhKgKujPovga8le6Mw8/lX/F2KaAcL2H E/7Go1+Bv9mokHWY0/Q09MOoiKr6Cb1m6iPEuAE= X-Google-Smtp-Source: AK7set92ZOxDW/g0zHi8Tmh99BzN/2vQJq2wWbUIQUsdhtuJB7bfknmdBGcsKaQ94pHTeF7QevO+Yg== X-Received: by 2002:a05:600c:a41:b0:3eb:9822:f0 with SMTP id c1-20020a05600c0a4100b003eb982200f0mr22201407wmq.30.1678961865200; Thu, 16 Mar 2023 03:17:45 -0700 (PDT) Received: from chigot-Dell.home ([2a01:cb15:8123:8100:ae34:31dc:b564:f3da]) by smtp.gmail.com with ESMTPSA id t10-20020a05600c450a00b003e7c89b3514sm4592563wmo.23.2023.03.16.03.17.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Mar 2023 03:17:44 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20Chigot?= To: binutils@sourceware.org Cc: =?UTF-8?q?Cl=C3=A9ment=20Chigot?= Subject: [PATCH 1/5] configure: add new target aarch64-*-nto* Date: Thu, 16 Mar 2023 11:17:32 +0100 Message-Id: <20230316101736.482737-2-chigot@adacore.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230316101736.482737-1-chigot@adacore.com> References: <20230316101736.482737-1-chigot@adacore.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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: This target has its own ld emulation based on aarch64elf.em. --- bfd/config.bfd | 2 +- gas/configure.tgt | 1 + ld/Makefile.am | 2 ++ ld/Makefile.in | 3 +++ ld/configure.tgt | 3 +++ ld/emulparams/aarch64nto.sh | 41 +++++++++++++++++++++++++++++++++++++ 6 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 ld/emulparams/aarch64nto.sh diff --git a/bfd/config.bfd b/bfd/config.bfd index 0b0f7d50602..7af481048db 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -283,7 +283,7 @@ case "${targ}" in targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec" want64=true ;; - aarch64-*-linux* | aarch64-*-netbsd*) + aarch64-*-linux* | aarch64-*-netbsd* | aarch64-*-nto*) targ_defvec=aarch64_elf64_le_vec targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec aarch64_pei_le_vec aarch64_pe_le_vec" want64=true diff --git a/gas/configure.tgt b/gas/configure.tgt index 5fb7d880122..3429f850d05 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -134,6 +134,7 @@ case ${generic_target} in aarch64*-linux-gnu_ilp32) arch=aarch64:32 ;; esac ;; aarch64*-*-netbsd*) fmt=elf em=nbsd;; + aarch64*-*-nto*) fmt=elf;; aarch64*-*-openbsd*) fmt=elf;; aarch64*-*-pe* | aarch64*-*-mingw*) fmt=coff em=pepaarch64 ;; alpha-*-*vms*) fmt=evax ;; diff --git a/ld/Makefile.am b/ld/Makefile.am index d9449a66066..0e9bed88f65 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -388,6 +388,7 @@ ALL_64_EMULATION_SOURCES = \ eaarch64linux32.c \ eaarch64linux32b.c \ eaarch64linuxb.c \ + eaarch64nto.c \ eaarch64pe.c \ earm64pe.c \ eelf32_x86_64.c \ @@ -881,6 +882,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS) @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32b.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linuxb.Pc@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64nto.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64pe.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm64pe.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32_x86_64.Pc@am__quote@ diff --git a/ld/Makefile.in b/ld/Makefile.in index 0a2981616f0..15f88bf606d 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -888,6 +888,7 @@ ALL_64_EMULATION_SOURCES = \ eaarch64linux32.c \ eaarch64linux32b.c \ eaarch64linuxb.c \ + eaarch64nto.c \ eaarch64pe.c \ earm64pe.c \ eelf32_x86_64.c \ @@ -1266,6 +1267,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32b.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linuxb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64nto.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64pe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaix5ppc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaix5rs6.Po@am__quote@ @@ -2597,6 +2599,7 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS) @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32b.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linuxb.Pc@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64nto.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64pe.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm64pe.Pc@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32_x86_64.Pc@am__quote@ diff --git a/ld/configure.tgt b/ld/configure.tgt index efd43095844..34c9d67c365 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -118,6 +118,9 @@ aarch64-*-linux*) targ_emul=aarch64linux aarch64-*-haiku*) targ_emul=aarch64haiku targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb armelf_haiku $targ_extra_libpath" ;; +aarch64-*-nto*) targ_emul=aarch64nto + targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb" + ;; aarch64-*-pe* | aarch64-*-mingw*) targ_emul=aarch64pe targ_extra_emuls="arm64pe" diff --git a/ld/emulparams/aarch64nto.sh b/ld/emulparams/aarch64nto.sh new file mode 100644 index 00000000000..4f0657def55 --- /dev/null +++ b/ld/emulparams/aarch64nto.sh @@ -0,0 +1,41 @@ +ARCH=aarch64 +MACHINE= +NOP=0x1f2003d5 + +SCRIPT_NAME=elf +ELFSIZE=64 +OUTPUT_FORMAT="elf64-littleaarch64" +BIG_OUTPUT_FORMAT="elf64-bigaarch64" +LITTLE_OUTPUT_FORMAT="elf64-littleaarch64" +NO_REL_RELOCS=yes + +TEMPLATE_NAME=elf +EXTRA_EM_FILE=aarch64elf + +GENERATE_SHLIB_SCRIPT=yes +GENERATE_PIE_SCRIPT=yes + +MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" +COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" +SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0" +IREL_IN_PLT= + +TEXT_START_ADDR=0x400000 + +TEXT_START_SYMBOLS='PROVIDE (_btext = .);' +DATA_START_SYMBOLS='PROVIDE (__data_start = .);'; + +# AArch64 does not support .s* sections. +NO_SMALL_DATA=yes + +OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__bss_start__ = .${CREATE_SHLIB+)};" +OTHER_BSS_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_bss_end__ = .${CREATE_SHLIB+)}; ${CREATE_SHLIB+PROVIDE (}__bss_end__ = .${CREATE_SHLIB+)};" +OTHER_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__end__ = .${CREATE_SHLIB+)};" + +OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }' +ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }' +# Ensure each PLT entry is aligned to a cache line. +PLT=".plt ${RELOCATING-0} : ALIGN(16) { *(.plt)${RELOCATING+${IREL_IN_PLT+ *(.iplt)}} }" + + +ELF_INTERPRETER_NAME=\"/usr/lib/ldqnx-64.so.2\" -- 2.25.1