On Tue, 19 May 2020, Alexandre Oliva wrote: > 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.
OK. > > 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)) > > > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)