[AArch64] Binutils/gas/ld port for ARM's new 64-bit architecture, AArch64 [5/6] ld changes v2

Yufeng Zhang Yufeng.Zhang@arm.com
Tue Aug 7 17:34:00 GMT 2012


Hi,

Please find the updated patch in the attachment.

On 07/30/12 16:08, Joseph S. Myers wrote:
> On Mon, 30 Jul 2012, Yufeng Zhang wrote:
>
>> +aarch64*-*-linux*)
>> +  MULTIARCHTUPLE=aarch64-linux-gnu
>> +  NATIVE_LIB_DIRS="/usr/local/lib/$MULTIARCHTUPLE /lib/$MULTIARCHTUPLE /usr/lib/$MULTIARCHTUPLE"
>> +  ;;
>
> As I said for the GCC port, it's inappropriate for this sort of thing to
> be present unconditionally for one architecture.  Someone needs to submit
> generic binutils support for this Debian scheme, *conditional on an
> appropriate configure option*, and *after that* this port can have the
> appropriate settings to support the scheme *conditionally*.

This change has been withdrawn; the AArch64 port now uses the default 
NATIVE_LIB_DIRS.


> I note you have some changes of the form:
>
>>   # No shared lib support on this target.
>> -if { [istarget "mcore-*-*"] } {
>> +if { [istarget "mcore-*-*"] || [istarget "aarch64-*-*"] } {
>
> Is it really the case that there is no shared library support for this
> port?  If not, the comments need updating.

Thanks for pointing this out.  The change to ld-elf/exclude.exp and 
ld-elf/frame.exp is no longer necessary and has been removed from the 
re-submitted patch.


> In general, please explain,
> for each test being disabled for this target, why it is correct to disable
> it.

The following tests have been disabled for the AArch64 port as 
--gc-sections is not supported yet:

          * ld-elf/group8a.d
          * ld-elf/group8b.d
          * ld-elf/group9a.d
          * ld-elf/group9b.d
          * ld-elf/pr12851.d
          * ld-elf/pr12975.d
          * ld-elf/pr13177.d
          * ld-elf/pr13195.d
          * ld-elfvers/vers.exp: Add AArch64.
          * ld-shared/shared.exp: Add AArch64.
          * ld-srec/srec.exp: Add AArch64.
          * lib/ld-lib.exp: Add AArch64.

ld-srec/srec.exp has been disabled as well since SREC is not supported.


Thanks,
Yufeng


Updated change log:

ld/ChangeLog
2012-08-07  Ian Bolton  <ian.bolton@arm.com>
              Laurent Desnogues  <laurent.desnogues@arm.com>
              Jim MacArthur  <jim.macarthur@arm.com>
              Marcus Shawcroft  <marcus.shawcroft@arm.com>
              Nigel Stephens  <nigel.stephens@arm.com>
              Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
              Richard Earnshaw  <rearnsha@arm.com>
              Sofiane Naci  <sofiane.naci@arm.com>
              Tejas Belagod  <tejas.belagod@arm.com>
              Yufeng Zhang  <yufeng.zhang@arm.com>

          * Makefile.am: Add AArch64.
          * Makefile.in: Regenerate.
          * configure.tgt: Add AArch64.
          * emulparams/aarch64elf.sh: New file.
          * emulparams/aarch64elfb.sh: New file.
          * emulparams/aarch64linux.sh: New file.
          * emulparams/aarch64linuxb.sh: New file.
          * emultempl/aarch64elf.em: New file.


ld/testsuite/ChangeLog
2012-08-07  Ian Bolton  <ian.bolton@arm.com>
              Laurent Desnogues  <laurent.desnogues@arm.com>
              Jim MacArthur  <jim.macarthur@arm.com>
              Marcus Shawcroft  <marcus.shawcroft@arm.com>
              Nigel Stephens  <nigel.stephens@arm.com>
              Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
              Richard Earnshaw  <rearnsha@arm.com>
              Sofiane Naci  <sofiane.naci@arm.com>
              Tejas Belagod  <tejas.belagod@arm.com>
              Yufeng Zhang  <yufeng.zhang@arm.com>

          * ld-aarch64/aarch64-elf.exp: New file.
          * ld-aarch64/aarch64.ld: New file.
          * ld-aarch64/eh-frame-bar.s: New file.
          * ld-aarch64/eh-frame-foo.s: New file.
          * ld-aarch64/eh-frame.d: New file.
          * ld-aarch64/emit-relocs-257-be.d: New file.
          * ld-aarch64/emit-relocs-257.d: New file.
          * ld-aarch64/emit-relocs-257.s: New file.
          * ld-aarch64/emit-relocs-260-be.d: New file.
          * ld-aarch64/emit-relocs-260.d: New file.
          * ld-aarch64/emit-relocs-260.s: New file.
          * ld-aarch64/emit-relocs-262.d: New file.
          * ld-aarch64/emit-relocs-262.s: New file.
          * ld-aarch64/emit-relocs-263.d: New file.
          * ld-aarch64/emit-relocs-263.s: New file.
          * ld-aarch64/emit-relocs-264.d: New file.
          * ld-aarch64/emit-relocs-264.s: New file.
          * ld-aarch64/emit-relocs-265.d: New file.
          * ld-aarch64/emit-relocs-265.s: New file.
          * ld-aarch64/emit-relocs-266.d: New file.
          * ld-aarch64/emit-relocs-266.s: New file.
          * ld-aarch64/emit-relocs-267.d: New file.
          * ld-aarch64/emit-relocs-267.s: New file.
          * ld-aarch64/emit-relocs-268.d: New file.
          * ld-aarch64/emit-relocs-268.s: New file.
          * ld-aarch64/emit-relocs-269.d: New file.
          * ld-aarch64/emit-relocs-269.s: New file.
          * ld-aarch64/emit-relocs-270-bad.d: New file.
          * ld-aarch64/emit-relocs-270.d: New file.
          * ld-aarch64/emit-relocs-270.s: New file.
          * ld-aarch64/emit-relocs-271.d: New file.
          * ld-aarch64/emit-relocs-271.s: New file.
          * ld-aarch64/emit-relocs-272.d: New file.
          * ld-aarch64/emit-relocs-272.s: New file.
          * ld-aarch64/emit-relocs-273.d: New file.
          * ld-aarch64/emit-relocs-273.s: New file.
          * ld-aarch64/emit-relocs-274.d: New file.
          * ld-aarch64/emit-relocs-274.s: New file.
          * ld-aarch64/emit-relocs-275.d: New file.
          * ld-aarch64/emit-relocs-275.s: New file.
          * ld-aarch64/emit-relocs-276.d: New file.
          * ld-aarch64/emit-relocs-276.s: New file.
          * ld-aarch64/emit-relocs-277.d: New file.
          * ld-aarch64/emit-relocs-277.s: New file.
          * ld-aarch64/emit-relocs-278.d: New file.
          * ld-aarch64/emit-relocs-278.s: New file.
          * ld-aarch64/emit-relocs-279-bad.d: New file.
          * ld-aarch64/emit-relocs-279.d: New file.
          * ld-aarch64/emit-relocs-279.s: New file.
          * ld-aarch64/emit-relocs-280.d: New file.
          * ld-aarch64/emit-relocs-280.s: New file.
          * ld-aarch64/emit-relocs-282.d: New file.
          * ld-aarch64/emit-relocs-282.s: New file.
          * ld-aarch64/emit-relocs-283.d: New file.
          * ld-aarch64/emit-relocs-283.s: New file.
          * ld-aarch64/emit-relocs-284.d: New file.
          * ld-aarch64/emit-relocs-284.s: New file.
          * ld-aarch64/emit-relocs-285.d: New file.
          * ld-aarch64/emit-relocs-285.s: New file.
          * ld-aarch64/emit-relocs-286-bad.d: New file.
          * ld-aarch64/emit-relocs-286.d: New file.
          * ld-aarch64/emit-relocs-286.s: New file.
          * ld-aarch64/emit-relocs-287.d: New file.
          * ld-aarch64/emit-relocs-287.s: New file.
          * ld-aarch64/emit-relocs-299.d: New file.
          * ld-aarch64/emit-relocs-299.s: New file.
          * ld-aarch64/emit-relocs-311.d: New file.
          * ld-aarch64/emit-relocs-311.s: New file.
          * ld-aarch64/emit-relocs-312.d: New file.
          * ld-aarch64/emit-relocs-312.s: New file.
          * ld-aarch64/emit-relocs1.s: New file.
          * ld-aarch64/farcall-b-none-function.d: New file.
          * ld-aarch64/farcall-b-none-function.s: New file.
          * ld-aarch64/farcall-b.d: New file.
          * ld-aarch64/farcall-b.s: New file.
          * ld-aarch64/farcall-back.d: New file.
          * ld-aarch64/farcall-back.s: New file.
          * ld-aarch64/farcall-bl-none-function.d: New file.
          * ld-aarch64/farcall-bl-none-function.s: New file.
          * ld-aarch64/farcall-bl.d: New file.
          * ld-aarch64/farcall-bl.s: New file.
          * ld-aarch64/farcall-section.d: New file.
          * ld-aarch64/farcall-section.s: New file.
          * ld-aarch64/limit-b.d: New file.
          * ld-aarch64/limit-b.s: New file.
          * ld-aarch64/limit-bl.d: New file.
          * ld-aarch64/limit-bl.s: New file.
          * ld-aarch64/relocs.ld: New file.
          * ld-aarch64/tls-desc-ie.d: New file.
          * ld-aarch64/tls-desc-ie.s: New file.
          * ld-aarch64/tls-relax-all.d: New file.
          * ld-aarch64/tls-relax-all.s: New file.
          * ld-aarch64/tls-relax-gd-ie.d: New file.
          * ld-aarch64/tls-relax-gd-ie.s: New file.
          * ld-aarch64/tls-relax-gd-le.d: New file.
          * ld-aarch64/tls-relax-gd-le.s: New file.
          * ld-aarch64/tls-relax-gdesc-ie-2.d: New file.
          * ld-aarch64/tls-relax-gdesc-ie-2.s: New file.
          * ld-aarch64/tls-relax-gdesc-ie.d: New file.
          * ld-aarch64/tls-relax-gdesc-ie.s: New file.
          * ld-aarch64/tls-relax-gdesc-le-2.d: New file.
          * ld-aarch64/tls-relax-gdesc-le-2.s: New file.
          * ld-aarch64/tls-relax-gdesc-le.d: New file.
          * ld-aarch64/tls-relax-gdesc-le.s: New file.
          * ld-aarch64/tls-relax-ie-le-2.d: New file.
          * ld-aarch64/tls-relax-ie-le-2.s: New file.
          * ld-aarch64/tls-relax-ie-le-3.d: New file.
          * ld-aarch64/tls-relax-ie-le-3.s: New file.
          * ld-aarch64/tls-relax-ie-le.d: New file.
          * ld-aarch64/tls-relax-ie-le.s: New file.
          * ld-aarch64/weak-undefined.d: New file.
          * ld-aarch64/weak-undefined.s: New file.
          * ld-elf/binutils.exp (binutils_test): Add optional parameter
          'test_name'; change to construct 'test_name' from the 'prog_name'
          and 'ld_options' only when "$test_name" == "".
          * ld-elf/group8a.d (#notarget): Add AArch64.
          * ld-elf/group8b.d (#notarget): Add AArch64.
          * ld-elf/group9a.d (#notarget): Add AArch64.
          * ld-elf/group9b.d (#notarget): Add AArch64.
          * ld-elf/pr12851.d (#notarget): Add AArch64.
          * ld-elf/pr12975.d (#notarget): Add AArch64.
          * ld-elf/pr13177.d (#notarget): Add AArch64.
          * ld-elf/pr13195.d (#notarget): Add AArch64.
          * ld-elfvers/vers.exp: Add AArch64.
          * ld-shared/shared.exp: Add AArch64.
          * ld-srec/srec.exp: Add AArch64.
          * lib/ld-lib.exp: Add AArch64.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aarch64-ld.v2.patch
Type: text/x-patch
Size: 99220 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20120807/65a0e872/attachment.bin>


More information about the Binutils mailing list