te-cloudabi.h

This patch is aimed a fixing large numbers of x86_64-cloudabi failures
caused by gas selecting the wrong target name.

	* config/te-cloudabi.h: New file.
	* config/tc-aarch64.c (aarch64_after_parse_args): Use TE_CLOUDABI
	rather than TARGET_OS to select cloudabi.
	* config/tc-i386.h (ELF_TARGET_FORMAT64): Define for TE_CLOUDABI.
	* configure.tgt (*-*-cloudabi*): Set em=cloudabi.
This commit is contained in:
Alan Modra 2019-04-08 16:57:51 +09:30
parent 789ce185ac
commit 12400dcc0f
5 changed files with 41 additions and 6 deletions

View File

@ -1,3 +1,11 @@
2019-04-10 Alan Modra <amodra@gmail.com>
* config/te-cloudabi.h: New file.
* config/tc-aarch64.c (aarch64_after_parse_args): Use TE_CLOUDABI
rather than TARGET_OS to select cloudabi.
* config/tc-i386.h (ELF_TARGET_FORMAT64): Define for TE_CLOUDABI.
* configure.tgt (*-*-cloudabi*): Set em=cloudabi.
2019-04-09 Robert Suchanek <robert.suchanek@mips.com>
* testsuite/gas/mips/mips.exp: Run hwr-names test.

View File

@ -8331,15 +8331,18 @@ aarch64_after_parse_args (void)
const char *
elf64_aarch64_target_format (void)
{
if (strcmp (TARGET_OS, "cloudabi") == 0)
{
#ifdef TE_CLOUDABI
/* FIXME: What to do for ilp32_p ? */
return target_big_endian ? "elf64-bigaarch64-cloudabi" : "elf64-littleaarch64-cloudabi";
}
if (target_big_endian)
return "elf64-bigaarch64-cloudabi";
else
return "elf64-littleaarch64-cloudabi";
#else
if (target_big_endian)
return ilp32_p ? "elf32-bigaarch64" : "elf64-bigaarch64";
else
return ilp32_p ? "elf32-littleaarch64" : "elf64-littleaarch64";
#endif
}
void

View File

@ -63,6 +63,8 @@ extern unsigned long i386_mach (void);
#define ELF_TARGET_FORMAT "elf32-i386-nacl"
#define ELF_TARGET_FORMAT32 "elf32-x86-64-nacl"
#define ELF_TARGET_FORMAT64 "elf64-x86-64-nacl"
#elif defined TE_CLOUDABI
#define ELF_TARGET_FORMAT64 "elf64-x86-64-cloudabi"
#endif
#ifdef TE_SOLARIS

22
gas/config/te-cloudabi.h Normal file
View File

@ -0,0 +1,22 @@
/* Copyright (C) 2019 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3,
or (at your option) any later version.
GAS is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to the Free
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
#define TE_CLOUDABI
#include "obj-format.h"

View File

@ -423,7 +423,7 @@ case ${generic_target} in
z8k-*-coff | z8k-*-sim) fmt=coff ;;
*-*-aout | *-*-scout) fmt=aout ;;
*-*-cloudabi*) fmt=elf ;;
*-*-cloudabi*) fmt=elf em=cloudabi ;;
*-*-dragonfly*) fmt=elf em=dragonfly ;;
*-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
*-*-generic) fmt=generic ;;