Re: [Patch: RL78] Add support for 64-bit doubles

2014-06-25 Thread DJ Delorie

> The RX toolchain has a similar patch where the option is "doubles"
> while the folder name is "double".

There's no reason for one toolchain to be consistent with another,
though.

> Would it be ok to revert this line from "64-bit-doubles" to "64-bit-double" 
> as this?
> +MULTILIB_DIRNAMES   = g10  64-bit-double
> https://gcc.gnu.org/ml/gcc-patches/2014-05/msg02350.html

It doesn't matter to me, but there's no rule in gcc that the directory
names need to match anything, so if your software depends on that,
your software has a problem.


RE: [Patch: RL78] Add support for 64-bit doubles

2014-06-25 Thread Kaushik Phatak
Hi DJ,
>> I assume this should be "doubles" not "double" though...
I had made this change as suggested, however we had some issue while integrating
the tools with our eclipse plug-ins.
The RX toolchain has a similar patch where the option is "doubles" while the 
folder name is "double".


Would it be ok to revert this line from "64-bit-doubles" to "64-bit-double" as 
this?
+MULTILIB_DIRNAMES   = g10  64-bit-double
https://gcc.gnu.org/ml/gcc-patches/2014-05/msg02350.html

Best Regards,
Kaushik


RE: [Patch: RL78] Add support for 64-bit doubles

2014-05-28 Thread Kaushik Phatak
Hi DJ,

> This is OK.  Thanks!  Do you need someone to commit it for you?
Thanks, I can commit these changes.

>> +MULTILIB_DIRNAMES   = g10  64-bit-double
> I assume this should be "doubles" not "double" though...
Yes, will make that change and commit it.

Best Regards,
Kaushik


Re: [Patch: RL78] Add support for 64-bit doubles

2014-05-27 Thread DJ Delorie

This is OK.  Thanks!  Do you need someone to commit it for you?

> +MULTILIB_OPTIONS= mg10 m64bit-doubles
> +MULTILIB_DIRNAMES   = g10  64-bit-double

I assume this should be "doubles" not "double" though...


RE: [Patch: RL78] Add support for 64-bit doubles

2014-05-25 Thread Kaushik Phatak
Hi DJ,
Please find below an updated patch which also adds the texi part.
My earlier patch which addressed your comments is below,
https://gcc.gnu.org/ml/gcc-patches/2014-05/msg01076.html

The newlib and binutils part of this patch have been reviewed and committed:
https://sourceware.org/ml/newlib/2014/msg00151.html
https://sourceware.org/ml/binutils/2014-05/msg00140.html

Let me know if below patch is ok to commit (also attached).

Thanks,
Kaushik

2014-05-26  Kaushik Phatak  

* config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
__RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
(ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
to the assembler.
(DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES
is true.
* gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
(m32bit-doubles) Likewise.
* gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
* doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
option for RL78.

Index: gcc/config/rl78/rl78.h
===
--- gcc/config/rl78/rl78.h  (revision 210920)
+++ gcc/config/rl78/rl78.h  (working copy)
@@ -23,18 +23,22 @@
 #define RL78_MUL_RL78  (rl78_mul_type == MUL_RL78)
 #define RL78_MUL_G13   (rl78_mul_type == MUL_G13)
 
-#define TARGET_CPU_CPP_BUILTINS()   \
-  do\
-{   \
-  builtin_define ("__RL78__"); \
-  builtin_assert ("cpu=RL78"); \
-  if (RL78_MUL_RL78)   \
-   builtin_define ("__RL78_MUL_RL78__");   \
-  if (RL78_MUL_G13)\
-   builtin_define ("__RL78_MUL_G13__");\
-  if (TARGET_G10)  \
-   builtin_define ("__RL78_G10__");\
-}   \
+#define TARGET_CPU_CPP_BUILTINS()  \
+  do\
+{   \
+  builtin_define ("__RL78__"); \
+  builtin_assert ("cpu=RL78"); \
+  if (RL78_MUL_RL78)   \
+   builtin_define ("__RL78_MUL_RL78__");   \
+  if (RL78_MUL_G13)\
+   builtin_define ("__RL78_MUL_G13__");\
+  if (TARGET_G10)  \
+   builtin_define ("__RL78_G10__");\
+  if (TARGET_64BIT_DOUBLES)\
+builtin_define ("__RL78_64BIT_DOUBLES__");  \
+  else \
+builtin_define ("__RL78_32BIT_DOUBLES__");  \
+}  \
   while (0)
 
 #undef  STARTFILE_SPEC
@@ -47,6 +51,8 @@
 #define ASM_SPEC "\
 %{mrelax:-relax} \
 %{mg10} \
+%{m64bit-doubles:-m64bit-doubles} \
+%{!m64bit-doubles:-m32bit-doubles} \
 "
 
 #undef  LINK_SPEC
@@ -95,7 +101,7 @@
 #define LONG_LONG_TYPE_SIZE64
 
 #define FLOAT_TYPE_SIZE32
-#define DOUBLE_TYPE_SIZE   32 /*64*/
+#define DOUBLE_TYPE_SIZE   (TARGET_64BIT_DOUBLES ? 64 : 32)
 #define LONG_DOUBLE_TYPE_SIZE  64 /*DOUBLE_TYPE_SIZE*/
 
 #define LIBGCC2_HAS_DF_MODE1
Index: gcc/config/rl78/rl78.opt
===
--- gcc/config/rl78/rl78.opt(revision 210920)
+++ gcc/config/rl78/rl78.opt(working copy)
@@ -30,6 +30,14 @@
 Target RejectNegative Joined Var(rl78_mul_type) Report Tolower 
Enum(rl78_mul_types) Init(MUL_NONE)
 Select hardware or software multiplication support.
 
+m64bit-doubles
+Target RejectNegative Mask(64BIT_DOUBLES) Report
+Store doubles in 64 bits.
+
+m32bit-doubles
+Target RejectNegative InverseMask(64BIT_DOUBLES) Report
+Stores doubles in 32 bits.  This is the default
+
 Enum
 Name(rl78_mul_types) Type(enum rl78_mul_types)
 
Index: gcc/config/rl78/t-rl78
===
--- gcc/config/rl78/t-rl78  (revision 210920)
+++ gcc/config/rl78/t-rl78  (working copy)
@@ -23,5 +23,5 @@
 
 # Enable multilibs:
 
-MULTILIB_OPTIONS= mg10
-MULTILIB_DIRNAMES   = g10
+MULTILIB_OPTIONS= mg10 m64bit-doubles
+MULTILIB_DIRNAMES   = g10  64-bit-double
Index: gcc/doc/invoke.texi
===
--- gcc/doc/invoke.texi (revision 210920)
+++ gcc/doc/invoke.texi (working copy)
@@ -873,7 +873,7 @@
 See RS/6000 and PowerPC Options.
 
 @emph{RL78 Options}
-@gccoptlist{-msim -mmul=none -mmul=g13 -mmul=rl78}
+@gccoptlist{-msim -mmul=none -mmul=g13 -mmul=rl78 -m64bit-doubles 
-m32bit-doubles}
 
 @emph{RS/6000 and PowerPC Options}
 @gccoptlist{-mcpu=@var{cpu-type} @gol
@@ -18917,6 +18917,14 @@
 only on the RL78/G13 targets.  The @code{rl78} option is for the
 standard hardware mu

RE: [Patch: RL78] Add support for 64-bit doubles

2014-05-14 Thread Kaushik Phatak
Hi DJ,

>> "long double" should always be 64 bits, which means that libgcc must 
>> always have DFmode helpers.

Please find below a modified patch which sets the long double to 64 bits.
This will use default settings for DFmode and libgcc long double types.

I have also posted the binutils part of my patch,
https://sourceware.org/ml/binutils/2014-05/msg00117.html

I have also posted the newlib part of thei patch,
https://sourceware.org/ml/newlib/2014/msg00150.html

I have also attached the following patch, to avoid issue with whitespaces being 
dropped.

Let me know if the below version is OK to commit.

Thanks,
Kaushik

2014-05-14  Kaushik Phatak  

* config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
__RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
(ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
to the assembler.
(DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES
is true.
* gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
(m32bit-doubles) Likewise.
* gcc/config/rl78/t-rl78: Add 64-bit-double multilib.

Index: gcc/config/rl78/rl78.h
===
--- gcc/config/rl78/rl78.h  (revision 210319)
+++ gcc/config/rl78/rl78.h  (working copy)
@@ -23,18 +23,22 @@
 #define RL78_MUL_RL78  (rl78_mul_type == MUL_RL78)
 #define RL78_MUL_G13   (rl78_mul_type == MUL_G13)
 
-#define TARGET_CPU_CPP_BUILTINS()   \
-  do\
-{   \
-  builtin_define ("__RL78__"); \
-  builtin_assert ("cpu=RL78"); \
-  if (RL78_MUL_RL78)   \
-   builtin_define ("__RL78_MUL_RL78__");   \
-  if (RL78_MUL_G13)\
-   builtin_define ("__RL78_MUL_G13__");\
-  if (TARGET_G10)  \
-   builtin_define ("__RL78_G10__");\
-}   \
+#define TARGET_CPU_CPP_BUILTINS()  \
+  do\
+{   \
+  builtin_define ("__RL78__"); \
+  builtin_assert ("cpu=RL78"); \
+  if (RL78_MUL_RL78)   \
+   builtin_define ("__RL78_MUL_RL78__");   \
+  if (RL78_MUL_G13)\
+   builtin_define ("__RL78_MUL_G13__");\
+  if (TARGET_G10)  \
+   builtin_define ("__RL78_G10__");\
+  if (TARGET_64BIT_DOUBLES)\
+builtin_define ("__RL78_64BIT_DOUBLES__");  \
+  else \
+builtin_define ("__RL78_32BIT_DOUBLES__");  \
+}  \
   while (0)
 
 #undef  STARTFILE_SPEC
@@ -47,6 +51,8 @@
 #define ASM_SPEC "\
 %{mrelax:-relax} \
 %{mg10} \
+%{m64bit-doubles:-m64bit-doubles} \
+%{!m64bit-doubles:-m32bit-doubles} \
 "
 
 #undef  LINK_SPEC
@@ -95,7 +101,7 @@
 #define LONG_LONG_TYPE_SIZE64
 
 #define FLOAT_TYPE_SIZE32
-#define DOUBLE_TYPE_SIZE   32 /*64*/
+#define DOUBLE_TYPE_SIZE   (TARGET_64BIT_DOUBLES ? 64 : 32)
 #define LONG_DOUBLE_TYPE_SIZE  64 /*DOUBLE_TYPE_SIZE*/
 
 #define LIBGCC2_HAS_DF_MODE1
Index: gcc/config/rl78/rl78.opt
===
--- gcc/config/rl78/rl78.opt(revision 210319)
+++ gcc/config/rl78/rl78.opt(working copy)
@@ -30,6 +30,14 @@
 Target RejectNegative Joined Var(rl78_mul_type) Report Tolower 
Enum(rl78_mul_types) Init(MUL_NONE)
 Select hardware or software multiplication support.
 
+m64bit-doubles
+Target RejectNegative Mask(64BIT_DOUBLES) Report
+Store doubles in 64 bits.
+
+m32bit-doubles
+Target RejectNegative InverseMask(64BIT_DOUBLES) Report
+Stores doubles in 32 bits.  This is the default
+
 Enum
 Name(rl78_mul_types) Type(enum rl78_mul_types)
 
Index: gcc/config/rl78/t-rl78
===
--- gcc/config/rl78/t-rl78  (revision 210319)
+++ gcc/config/rl78/t-rl78  (working copy)
@@ -23,5 +23,5 @@
 
 # Enable multilibs:
 
-MULTILIB_OPTIONS= mg10
-MULTILIB_DIRNAMES   = g10
+MULTILIB_OPTIONS= mg10 m64bit-doubles
+MULTILIB_DIRNAMES   = g10  64-bit-double



rl78_64bit .diff
Description: rl78_64bit .diff


Re: [Patch: RL78] Add support for 64-bit doubles

2014-05-12 Thread DJ Delorie

I think this part is wrong (and your mailer is dropping some
whitespace).  "long double" should always be 64 bits, which means that
libgcc must always have DFmode helpers.


 #define LONG_DOUBLE_TYPE_SIZE64 /*DOUBLE_TYPE_SIZE*/

-#define LIBGCC2_HAS_DF_MODE1
+#ifdef __RL78_32BIT_DOUBLES__
+#define LIBGCC2_HAS_DF_MODE 0
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE   32
+#else
+#define LIBGCC2_HAS_DF_MODE 1
 #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE   64
+#endif


RE: [Patch: RL78] Add support for 64-bit doubles

2014-05-12 Thread Kaushik Phatak
Hi DJ,
Thanks for your review earlier.

>> It looks OK, it's just the timing is bad.  Please remind us after GCC is 
>> back in stage1.
I am reposting this patch with GCC in stage 1.

>> I would also like to see an explicit initialization for the variable to 
>> guarantee that the 
>> default is 32-bit-doubles, or some other notation that guarantees the 
>> default.
Does the macro ' TARGET_64BIT_DOUBLES ' not guarantee this? 
'sizeof' returns length as 4 for doubles for default options and 8 for 
-m64bit-doubles.
Is there any other way to do this explicitly?

>> Also, please note in the reminder that you've tested both options and don't 
>> see any differences in the testsuite results 
>> between them that reflect bugs in DFmode double support.  Just because 
>> you've enabled the type doesn't mean it 
>> will work properly.
We have regression tested this for -m32bit-doubles, -m64bit-doubles and default 
-msim options and results look OK.
Few additional failures for 64 bit types which were linker errors due to ROM 
overflow. These were verified manually
by adjusting the linker script.

Please let me know if any modifications are required. Below patch is identical 
to one submitted earlier.

Regards,
Kaushik

2014-05-12  Kaushik Phatak  

* config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
__RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
(ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
to the assembler.
(DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES
is true.
(LIBGCC2_HAS_DF_MODE): Define based on __RL78_32BIT_DOUBLES__.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Use 64 bit is
__RL78_64BIT_DOUBLES__ is defined.
* gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
(m32bit-doubles) Likewise.
* gcc/config/rl78/t-rl78: Add 64-bit-double multilib.

Index: gcc/config/rl78/rl78.h
===
--- gcc/config/rl78/rl78.h  (revision 210319)
+++ gcc/config/rl78/rl78.h  (working copy)
@@ -23,18 +23,22 @@
 #define RL78_MUL_RL78  (rl78_mul_type == MUL_RL78)
 #define RL78_MUL_G13   (rl78_mul_type == MUL_G13)
 
-#define TARGET_CPU_CPP_BUILTINS()   \
-  do\
-{   \
-  builtin_define ("__RL78__"); \
-  builtin_assert ("cpu=RL78"); \
-  if (RL78_MUL_RL78)   \
-   builtin_define ("__RL78_MUL_RL78__");   \
-  if (RL78_MUL_G13)\
-   builtin_define ("__RL78_MUL_G13__");\
-  if (TARGET_G10)  \
-   builtin_define ("__RL78_G10__");\
-}   \
+#define TARGET_CPU_CPP_BUILTINS()  \
+  do\
+{   \
+  builtin_define ("__RL78__"); \
+  builtin_assert ("cpu=RL78"); \
+  if (RL78_MUL_RL78)   \
+   builtin_define ("__RL78_MUL_RL78__");   \
+  if (RL78_MUL_G13)\
+   builtin_define ("__RL78_MUL_G13__");\
+  if (TARGET_G10)  \
+   builtin_define ("__RL78_G10__");\
+  if (TARGET_64BIT_DOUBLES)\
+builtin_define ("__RL78_64BIT_DOUBLES__");  \
+  else \
+builtin_define ("__RL78_32BIT_DOUBLES__");  \
+}  \
   while (0)
 
 #undef  STARTFILE_SPEC
@@ -47,6 +51,8 @@
 #define ASM_SPEC "\
 %{mrelax:-relax} \
 %{mg10} \
+%{m64bit-doubles:-m64bit-doubles} \
+%{!m64bit-doubles:-m32bit-doubles} \
 "
 
 #undef  LINK_SPEC
@@ -95,11 +101,16 @@
 #define LONG_LONG_TYPE_SIZE64
 
 #define FLOAT_TYPE_SIZE32
-#define DOUBLE_TYPE_SIZE   32 /*64*/
+#define DOUBLE_TYPE_SIZE(TARGET_64BIT_DOUBLES ? 64 : 32)
 #define LONG_DOUBLE_TYPE_SIZE  64 /*DOUBLE_TYPE_SIZE*/
 
-#define LIBGCC2_HAS_DF_MODE1
+#ifdef __RL78_32BIT_DOUBLES__
+#define LIBGCC2_HAS_DF_MODE 0
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE   32
+#else
+#define LIBGCC2_HAS_DF_MODE 1
 #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE   64
+#endif
 
 #define DEFAULT_SIGNED_CHAR0
 
Index: gcc/config/rl78/rl78.opt
===
--- gcc/config/rl78/rl78.opt(revision 210319)
+++ gcc/config/rl78/rl78.opt(working copy)
@@ -30,6 +30,14 @@
 Target RejectNegative Joined Var(rl78_mul_type) Report Tolower 
Enum(rl78_mul_types) Init(MUL_NONE)
 Select hardware or software multiplication support.
 
+m64bit-doubles
+Target RejectNegative Mask(64BIT_DOUBLES) Report
+Store doubles in 64 bits.
+
+m32bit-doubl

Re: [Patch: RL78] Add support for 64-bit doubles

2014-03-26 Thread DJ Delorie

Sorry about the delay on this.  As GCC is in pre-release and it would
be bad for 4.9 to pass options that a released binutils doesn't
support, I hesitate to approve this at this time.  It looks OK, it's
just the timing is bad.  Please remind us after GCC is back in stage1.

I would also like to see an explicit initialization for the variable
to guarantee that the default is 32-bit-doubles, or some other
notation that guarantees the default.

Also, please note in the reminder that you've tested both options and
don't see any differences in the testsuite results between them that
reflect bugs in DFmode double support.  Just because you've enabled
the type doesn't mean it will work properly.


[Patch: RL78] Add support for 64-bit doubles

2014-03-06 Thread Kaushik Phatak
Hi,
Please find below a patch which adds support for 64-bit doubles to the RL78 
target.
This is largely based on the rx target port and uses similar option and 
multilibs.
I will be posting the binutils and newlib part of this patch shortly.

Kindly review the same and let me know if OK to commit.

Thanks & Best Regards,
Kaushik

2013-03-06  Kaushik Phatak  

* config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
__RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
(ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
to the assembler.
(DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES
is true.
(LIBGCC2_HAS_DF_MODE): Define based on __RL78_32BIT_DOUBLES__.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Use 64 bit is
__RL78_64BIT_DOUBLES__ is defined.
* gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
(m32bit-doubles) Likewise.
* gcc/config/rl78/t-rl78: Add 64-bit-double multilib.

Index: gcc/config/rl78/rl78.h
===
--- gcc/config/rl78/rl78.h  (revision 208379)
+++ gcc/config/rl78/rl78.h  (working copy)
@@ -23,18 +23,22 @@
 #define RL78_MUL_RL78  (rl78_mul_type == MUL_RL78)
 #define RL78_MUL_G13   (rl78_mul_type == MUL_G13)
 
-#define TARGET_CPU_CPP_BUILTINS()   \
-  do\
-{   \
-  builtin_define ("__RL78__"); \
-  builtin_assert ("cpu=RL78"); \
-  if (RL78_MUL_RL78)   \
-   builtin_define ("__RL78_MUL_RL78__");   \
-  if (RL78_MUL_G13)\
-   builtin_define ("__RL78_MUL_G13__");\
-  if (TARGET_G10)  \
-   builtin_define ("__RL78_G10__");\
-}   \
+#define TARGET_CPU_CPP_BUILTINS()  \
+  do\
+{   \
+  builtin_define ("__RL78__"); \
+  builtin_assert ("cpu=RL78"); \
+  if (RL78_MUL_RL78)   \
+   builtin_define ("__RL78_MUL_RL78__");   \
+  if (RL78_MUL_G13)\
+   builtin_define ("__RL78_MUL_G13__");\
+  if (TARGET_G10)  \
+   builtin_define ("__RL78_G10__");\
+  if (TARGET_64BIT_DOUBLES)\
+builtin_define ("__RL78_64BIT_DOUBLES__");  \
+  else \
+builtin_define ("__RL78_32BIT_DOUBLES__");  \
+}  \
   while (0)
 
 #undef  STARTFILE_SPEC
@@ -47,6 +51,8 @@
 #define ASM_SPEC "\
 %{mrelax:-relax} \
 %{mg10} \
+%{m64bit-doubles:-m64bit-doubles} \
+%{!m64bit-doubles:-m32bit-doubles} \
 "
 
 #undef  LINK_SPEC
@@ -95,11 +101,16 @@
 #define LONG_LONG_TYPE_SIZE64
 
 #define FLOAT_TYPE_SIZE32
-#define DOUBLE_TYPE_SIZE   32 /*64*/
+#define DOUBLE_TYPE_SIZE(TARGET_64BIT_DOUBLES ? 64 : 32)
 #define LONG_DOUBLE_TYPE_SIZE  64 /*DOUBLE_TYPE_SIZE*/
 
-#define LIBGCC2_HAS_DF_MODE1
+#ifdef __RL78_32BIT_DOUBLES__
+#define LIBGCC2_HAS_DF_MODE 0
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE   32
+#else
+#define LIBGCC2_HAS_DF_MODE 1
 #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE   64
+#endif
 
 #define DEFAULT_SIGNED_CHAR0
 
Index: gcc/config/rl78/rl78.opt
===
--- gcc/config/rl78/rl78.opt(revision 208379)
+++ gcc/config/rl78/rl78.opt(working copy)
@@ -30,6 +30,14 @@
 Target RejectNegative Joined Var(rl78_mul_type) Report Tolower 
Enum(rl78_mul_types) Init(MUL_NONE)
 Select hardware or software multiplication support.
 
+m64bit-doubles
+Target RejectNegative Mask(64BIT_DOUBLES) Report
+Store doubles in 64 bits.
+
+m32bit-doubles
+Target RejectNegative InverseMask(64BIT_DOUBLES) Report
+Stores doubles in 32 bits.  This is the default
+
 Enum
 Name(rl78_mul_types) Type(enum rl78_mul_types)
 
Index: gcc/config/rl78/t-rl78
===
--- gcc/config/rl78/t-rl78  (revision 208379)
+++ gcc/config/rl78/t-rl78  (working copy)
@@ -23,5 +23,5 @@
 
 # Enable multilibs:
 
-MULTILIB_OPTIONS= mg10
-MULTILIB_DIRNAMES   = g10
+MULTILIB_OPTIONS= mg10 m64bit-doubles
+MULTILIB_DIRNAMES   = g10  64-bit-double