On May 19, 2020, Alexandre Oliva <ol...@adacore.com> wrote:

> - fix a build problem when targeting platforms with an executable suffix

aux and dump revamp: fix target exec suffix handling

HAVE_TARGET_EXECUTABLE_SUFFIX is defined only in gcc.c, and in a way
that requires testing whether it's defined, rather than for nonzero.
Fixed the new use in gcc.c, copied the fix and the definition to
lto-wrapper.c.


for  gcc/ChangeLog

        * lto-wrapper.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Define if...
        (TARGET_EXECUTABLE_SUFFIX): ... is defined; define this to the
        empty string otherwise.
        (run_gcc): Test for HAVE_TARGET_EXECUTABLE_SUFFIX with defined.
        * gcc.c (process_command): Likewise.
---
 gcc/gcc.c         |    2 +-
 gcc/lto-wrapper.c |    9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/gcc/gcc.c b/gcc/gcc.c
index 1e4ac9d..8c851d7 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4966,7 +4966,7 @@ process_command (unsigned int decoded_options_count,
              : ((temp = strrchr (obase + 1, '.'))
                 && (xlen = strlen (temp))
                 && (strcmp (temp, ".exe") == 0
-#if HAVE_TARGET_EXECUTABLE_SUFFIX
+#if defined(HAVE_TARGET_EXECUTABLE_SUFFIX)
                     || strcmp (temp, TARGET_EXECUTABLE_SUFFIX) == 0
 #endif
                     || strcmp (obase, "a.out") == 0)))
diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c
index 026c419..d565b08 100644
--- a/gcc/lto-wrapper.c
+++ b/gcc/lto-wrapper.c
@@ -53,6 +53,13 @@ along with GCC; see the file COPYING3.  If not see
    driver to lto-wrapper.  */
 #define OFFLOAD_TARGET_NAMES_ENV       "OFFLOAD_TARGET_NAMES"
 
+/* By default there is no special suffix for target executables.  */
+#ifdef TARGET_EXECUTABLE_SUFFIX
+#define HAVE_TARGET_EXECUTABLE_SUFFIX
+#else
+#define TARGET_EXECUTABLE_SUFFIX ""
+#endif
+
 enum lto_mode_d {
   LTO_MODE_NONE,                       /* Not doing LTO.  */
   LTO_MODE_LTO,                                /* Normal LTO.  */
@@ -1509,7 +1516,7 @@ run_gcc (unsigned argc, char *argv[])
          if ((temp = strrchr (obase + 1, '.'))
              && (xlen = strlen (temp))
              && (strcmp (temp, ".exe") == 0
-#if HAVE_TARGET_EXECUTABLE_SUFFIX
+#if defined(HAVE_TARGET_EXECUTABLE_SUFFIX)
                  || strcmp (temp, TARGET_EXECUTABLE_SUFFIX) == 0
 #endif
                  || strcmp (obase, "a.out") == 0))


-- 
Alexandre Oliva, freedom fighter    he/him    https://FSFLA.org/blogs/lxo/
Free Software Evangelist              Stallman was right, but he's left :(
GNU Toolchain Engineer           Live long and free, and prosper ethically

Reply via email to