On 6 January 2017 at 17:46, Jakub Jelinek <ja...@redhat.com> wrote:
> On Fri, Jan 06, 2017 at 05:33:03PM +0100, Jakub Jelinek wrote:
>> On Fri, Jan 06, 2017 at 05:12:54PM +0100, Christophe Lyon wrote:
>> > This makes all my builds fail.
>> > (The *linux* ones are broken after Alexandre's pragma, and
>> > this commit breaks the remaining bare-metal configurations).
>> > make[2]: Entering directory
>> > `/tmp/3119026_6.tmpdir/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-aarch64-none-linux-gnu/gcc1/libdecnumber'
>> > source='/tmp/3119026_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libdecnumber/decNumber.c'
>> > object='decNumber.o' libtool=no gcc  -I/tmp/3
>> > 119026_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libdecnumber -I.
>> > -fno-lto -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissi
>> > ng-prototypes -Wold-style-definition -Wmissing-format-attribute
>> > -Wcast-qual -pedantic -Wno-long-long
>> > -I/tmp/3119026_6.tmpdir/aci-gcc-fs
>> > f/sources/gcc-fsf/gccsrc/libdecnumber -I. -fno-lto  -c
>> > /tmp/3119026_6.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libdecnumber/decNumber.c
>> > cc1: error: unrecognized command line option "-fno-lto"
>> > cc1: error: unrecognized command line option "-fno-lto"
>> >
>> > Still using gcc-4.4.7 on RHEL6....
>>
>> Actually, I'm surprised it is doing anything, because the toplevel
>> Makefile should be doing:
>>         $(HOST_EXPORTS)  \
>>         (cd $(HOST_SUBDIR)/libdecnumber && \
>>           $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) 
>> $(STAGE1_FLAGS_TO_PASS)  \
>>                 $(TARGET-libdecnumber))
>> and both HOST_EXPORTS and BASE_FLAGS_TO_PASS include
>>         "CFLAGS=$(CFLAGS)" \
>>         "CXXFLAGS=$(CXXFLAGS)" \
>>         "LDFLAGS=$(LDFLAGS)" \
>> so it should override the libdecnumber/Makefile vars that way.
The actual invocation does not appear in the logs, so I can't see
what is actually wrong.

>> In any case, I think libdecnumber/configure* should check for whether
>> -fno-lto works and if yes, should substitute it into some var that is then
>> CFLAGS += $(NO_LTO)
>> CXXFLAGS += $(NO_LTO)
>> LDFLAGS += $(NO_LTO)
>
> Trying now:
>
> 2017-01-06  Jakub Jelinek  <ja...@redhat.com>
>
>         * Makefile.in (CFLAGS, CPPFLAGS, LDFLAGS): Remove -fno-lto.
>         (NOLTO_FLAGS): New variable.
>         (ALL_CFLAGS): Use it.
>         * configure.ac (nolto_flags): New ACX_PROG_CC_WARNING_OPTS,
>         check for whether -fno-lto works.
>         * configure: Regenerated.
>
OK thanks for the prompt fix, I'll let you know if it doesn't work.

Christophe

> --- libdecnumber/Makefile.in.jj 2017-01-06 16:58:42.000000000 +0100
> +++ libdecnumber/Makefile.in    2017-01-06 17:40:31.520582350 +0100
> @@ -31,19 +31,20 @@ ACLOCAL = @ACLOCAL@
>  AUTOCONF = @AUTOCONF@
>  AUTOHEADER = @AUTOHEADER@
>  CC = @CC@
> -CFLAGS = @CFLAGS@ -fno-lto
> +CFLAGS = @CFLAGS@
>  WARN_CFLAGS = @WARN_CFLAGS@ @WARN_PEDANTIC@ @WERROR@
>  CPP = @CPP@
> -CPPFLAGS = @CPPFLAGS@ -fno-lto
> +CPPFLAGS = @CPPFLAGS@
>  INSTALL_DATA = @INSTALL_DATA@
>  INSTALL_PROGRAM = @INSTALL_PROGRAM@
> -LDFLAGS = @LDFLAGS@ -fno-lto
> +LDFLAGS = @LDFLAGS@
>  LIBICONV = @LIBICONV@
>  PACKAGE = @PACKAGE@
>  PICFLAG = @PICFLAG@
>  RANLIB = @RANLIB@
>  SHELL = @SHELL@
>  objext = @OBJEXT@
> +NOLTO_FLAGS = @nolto_flags@
>
>  datarootdir = @datarootdir@
>  datadir = @datadir@
> @@ -58,7 +59,8 @@ enable_decimal_float= @enable_decimal_fl
>
>  INCLUDES = -I$(srcdir) -I.
>
> -ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG)
> +ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(NOLTO_FLAGS) $(INCLUDES) $(CPPFLAGS) 
> \
> +            $(PICFLAG)
>
>  bid_OBJS = bid2dpd_dpd2bid.$(objext) host-ieee32.$(objext) \
>         host-ieee64.$(objext) host-ieee128.$(objext)
> --- libdecnumber/configure.ac.jj        2017-01-02 18:15:32.000000000 +0100
> +++ libdecnumber/configure.ac   2017-01-06 17:38:37.391078242 +0100
> @@ -43,6 +43,8 @@ ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwri
>                           -Wmissing-format-attribute -Wcast-qual])
>  ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long])
>
> +ACX_PROG_CC_WARNING_OPTS([-fno-lto], [nolto_flags])
> +
>  # Only enable with --enable-werror-always until existing warnings are
>  # corrected.
>  ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual])
> --- libdecnumber/configure.jj   2016-11-16 16:38:07.000000000 +0100
> +++ libdecnumber/configure      2017-01-06 17:41:44.430626719 +0100
> @@ -613,6 +613,7 @@ EGREP
>  GREP
>  CPP
>  WERROR
> +nolto_flags
>  WARN_PEDANTIC
>  WARN_CFLAGS
>  AUTOHEADER
> @@ -3377,6 +3378,64 @@ fi
>  ac_ext=c
>  ac_cpp='$CPP $CPPFLAGS'
>  ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
> +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS 
> conftest.$ac_ext $LIBS >&5'
> +ac_compiler_gnu=$ac_cv_c_compiler_gnu
> +
> +
> +
> +ac_ext=c
> +ac_cpp='$CPP $CPPFLAGS'
> +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
> +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS 
> conftest.$ac_ext $LIBS >&5'
> +ac_compiler_gnu=$ac_cv_c_compiler_gnu
> +
> +nolto_flags=
> +save_CFLAGS="$CFLAGS"
> +for real_option in -fno-lto; do
> +  # Do the check with the no- prefix removed since gcc silently
> +  # accepts any -Wno-* option on purpose
> +  case $real_option in
> +    -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
> +    *) option=$real_option ;;
> +  esac
> +  as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
> +
> +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports 
> $option" >&5
> +$as_echo_n "checking whether $CC supports $option... " >&6; }
> +if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
> +  $as_echo_n "(cached) " >&6
> +else
> +  CFLAGS="$option"
> +    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h.  */
> +
> +int
> +main ()
> +{
> +
> +  ;
> +  return 0;
> +}
> +_ACEOF
> +if ac_fn_c_try_compile "$LINENO"; then :
> +  eval "$as_acx_Woption=yes"
> +else
> +  eval "$as_acx_Woption=no"
> +fi
> +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> +
> +fi
> +eval ac_res=\$$as_acx_Woption
> +              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
> +$as_echo "$ac_res" >&6; }
> +  if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; 
> then :
> +  nolto_flags="$nolto_flags${nolto_flags:+ }$real_option"
> +fi
> +  done
> +CFLAGS="$save_CFLAGS"
> +ac_ext=c
> +ac_cpp='$CPP $CPPFLAGS'
> +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
>  ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS 
> conftest.$ac_ext $LIBS >&5'
>  ac_compiler_gnu=$ac_cv_c_compiler_gnu
>
>
>
>         Jakub

Reply via email to