Hi!
On 10/07/2015 08:51 AM, David Edelsohn wrote:
On Wed, Oct 7, 2015 at 4:02 AM, Thomas Schwinge <tho...@codesourcery.com> wrote:
From a quick look at the *_TYPE_SIZE definitions in
gcc/config/rs6000/rs6000.h as well as
<http://refspecs.linuxfoundation.org/elf/elfspec_ppc.pdf>, "3-1
Fundamental Types", and
<http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#FUND-TYPE>,
I gather we're dealing with regular ilp32/lp64 here. Then, I assume the
right thing is to use the 64BIT flag from gcc/config/rs6000/sysv4.opt
(which, per gcc/config.gcc I suppose is used for the relevant
powerpc64le-linux-gnu configuration). (David?)
TARGET_64BIT is the appropriate macro to test.
I'm not sure where to place the TARGET_OFFLOAD_OPTIONS #define and the
function definition in rs6000.c. (David?)
As mentioned earlier, only PPC64LE is supported.
I'm not sure if it really matters if this is defined in ELF-specific
portion of the file or a general place, although it never will be
called by other configurations.
Thanks, David
I've revised the patch from the review comments (thank you) and
is attached.
Regtested on x86_64 and powerpcle64.
OK for trunk?
Thanks!
Jim
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index e095f03..e775e9a 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1690,6 +1690,9 @@ static const struct attribute_spec rs6000_attribute_table[] =
#define TARGET_LIBGCC_SHIFT_COUNT_MODE rs6000_abi_word_mode
#undef TARGET_UNWIND_WORD_MODE
#define TARGET_UNWIND_WORD_MODE rs6000_abi_word_mode
+
+#undef TARGET_OFFLOAD_OPTIONS
+#define TARGET_OFFLOAD_OPTIONS rs6000_offload_options
/* Processor table. */
@@ -9530,6 +9533,13 @@ rs6000_abi_word_mode (void)
return TARGET_32BIT ? SImode : DImode;
}
+/* Implement the TARGET_OFFLOAD_OPTIONS hook. */
+static char *
+rs6000_offload_options (void)
+{
+ return xstrdup ("-foffload-abi=lp64");
+}
+
/* On rs6000, function arguments are promoted, as are function return
values. */