aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/tc-aarch64.c13
-rw-r--r--gas/config/tc-i386.h2
-rw-r--r--gas/config/te-cloudabi.h22
-rw-r--r--gas/configure.tgt2
5 files changed, 41 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 354aae1..4ca3bae 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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.
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index d04e9a1..8008cd8 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -8331,15 +8331,18 @@ aarch64_after_parse_args (void)
const char *
elf64_aarch64_target_format (void)
{
- if (strcmp (TARGET_OS, "cloudabi") == 0)
- {
- /* FIXME: What to do for ilp32_p ? */
- return target_big_endian ? "elf64-bigaarch64-cloudabi" : "elf64-littleaarch64-cloudabi";
- }
+#ifdef TE_CLOUDABI
+ /* FIXME: What to do for ilp32_p ? */
+ 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
diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h
index 1f740e4..b02a256 100644
--- a/gas/config/tc-i386.h
+++ b/gas/config/tc-i386.h
@@ -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
diff --git a/gas/config/te-cloudabi.h b/gas/config/te-cloudabi.h
new file mode 100644
index 0000000..6ddbbd6
--- /dev/null
+++ b/gas/config/te-cloudabi.h
@@ -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"
diff --git a/gas/configure.tgt b/gas/configure.tgt
index e342acb..2d08c09 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -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 ;;