diff mbox

[i386] Fix PR 57756

Message ID 20131017174946.GD19160@lug-owl.de
State New
Headers show

Commit Message

Jan-Benedict Glaw Oct. 17, 2013, 5:49 p.m. UTC
On Thu, 2013-10-17 10:23:27 -0700, Sriraman Tallam <tmsriram@google.com> wrote:
[...]
> I would need the help of target maintainers to fix it this way since
> it touches every target and it would take time for me to build and
> test every target.

Then you should have probably waited some time, mark your patch as RFC
until there's consent on what exactly needs to be done for all target
archs.

> Michael, OTOH, I dont see any other targets other than i386 and rs6000
> (grepping for "specific_save" and "specific_restore") using
> function_specific save and restore functions. Would it be easier then
> to just add back that line to "opth-gen.awk"?,the patch is below.
> Since, they are not using function specific opts, they presumably
> should not be validating target options a lot.

Some examples for breakage:

sparc64 (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20481)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o sparc.o -MT sparc.o -MMD -MP -MF ./.deps/sparc.TPo /home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c
/home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c: In function ‘void sparc_option_override()’:
/home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c:1228:50: error: ‘target_flags_explicit’ was not declared in this scope
       dump_target_flags("target_flags_explicit", target_flags_explicit);
                                                  ^
/home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c:1322:7: error: ‘target_flags_explicit’ was not declared in this scope
   if (target_flags_explicit & MASK_FPU)
       ^
make[1]: *** [sparc.o] Error 1


s390-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20482)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o s390.o -MT s390.o -MMD -MP -MF ./.deps/s390.TPo /home/jbglaw/repos/gcc/gcc/config/s390/s390.c
/home/jbglaw/repos/gcc/gcc/config/s390/s390.c: In function ‘void s390_option_override()’:
/home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1612: error: ‘target_flags_explicit’ was not declared in this scope
/home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1644: error: ‘target_flags_explicit’ was not declared in this scope
/home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1649: error: ‘target_flags_explicit’ was not declared in this scope
/home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1654: error: ‘target_flags_explicit’ was not declared in this scope
/home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1667: error: ‘target_flags_explicit’ was not declared in this scope
make[1]: *** [s390.o] Error 1


mips64-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20471)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -c  -DIN_GCC_FRONTEND -DIN_GCC_FRONTEND -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -Ic-family -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/c-family -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o c-family/c-cppbuiltin.o -MT c-family/c-cppbuiltin.o -MMD -MP -MF c-family/.deps/c-cppbuiltin.TPo /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c
In file included from ./tm.h:31:0,
                 from /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:23:
/home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c: In function ‘void cpp_atomic_builtins(cpp_reader*)’:
/home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
   (target_flags_explicit & MASK_LLSC \
    ^
./insn-flags.h:814:39: note: in expansion of macro ‘GENERATE_LL_SC’
 #define HAVE_sync_compare_and_swapqi (GENERATE_LL_SC)
                                       ^
/home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:594:7: note: in expansion of macro ‘HAVE_sync_compare_and_swapqi’
   if (HAVE_sync_compare_and_swapqi || HAVE_atomic_compare_and_swapqi)
       ^
/home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
   (target_flags_explicit & MASK_LLSC \
    ^
./insn-flags.h:815:39: note: in expansion of macro ‘GENERATE_LL_SC’
 #define HAVE_sync_compare_and_swaphi (GENERATE_LL_SC)
                                       ^
/home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:606:7: note: in expansion of macro ‘HAVE_sync_compare_and_swaphi’
   if (HAVE_sync_compare_and_swaphi || HAVE_atomic_compare_and_swaphi)
       ^
/home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
   (target_flags_explicit & MASK_LLSC \
    ^
./insn-flags.h:261:39: note: in expansion of macro ‘GENERATE_LL_SC’
 #define HAVE_sync_compare_and_swapsi (GENERATE_LL_SC)
                                       ^
/home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:618:7: note: in expansion of macro ‘HAVE_sync_compare_and_swapsi’
   if (HAVE_sync_compare_and_swapsi || HAVE_atomic_compare_and_swapsi)
       ^
/home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
   (target_flags_explicit & MASK_LLSC \
    ^
./insn-flags.h:262:40: note: in expansion of macro ‘GENERATE_LL_SC’
 #define HAVE_sync_compare_and_swapdi ((GENERATE_LL_SC) && (TARGET_64BIT))
                                        ^
/home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:630:7: note: in expansion of macro ‘HAVE_sync_compare_and_swapdi’
   if (HAVE_sync_compare_and_swapdi || HAVE_atomic_compare_and_swapdi)
       ^
make[1]: *** [c-family/c-cppbuiltin.o] Error 1


spu-elf (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20459)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o spu.o -MT spu.o -MMD -MP -MF ./.deps/spu.TPo /home/jbglaw/repos/gcc/gcc/config/spu/spu.c
/home/jbglaw/repos/gcc/gcc/config/spu/spu.c: In function ‘void spu_option_override()’:
/home/jbglaw/repos/gcc/gcc/config/spu/spu.c:271: error: ‘target_flags_explicit’ was not declared in this scope
/home/jbglaw/repos/gcc/gcc/config/spu/spu.c: In function ‘tree_node* spu_handle_fndecl_attribute(tree_node**, tree_node*, tree_node*, int, bool*)’:
/home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3690: warning: unknown conversion type character ‘E’ in format
/home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3690: warning: too many arguments for format
/home/jbglaw/repos/gcc/gcc/config/spu/spu.c: In function ‘tree_node* spu_handle_vector_attribute(tree_node**, tree_node*, tree_node*, int, bool*)’:
/home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3747: warning: unknown conversion type character ‘E’ in format
/home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3747: warning: too many arguments for format
make[1]: *** [spu.o] Error 1


alpha-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20456)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o alpha.o -MT alpha.o -MMD -MP -MF ./.deps/alpha.TPo /home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c
/home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c: In function ‘void alpha_option_override()’:
/home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c:270: error: ‘target_flags_explicit’ was not declared in this scope
/home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c:403: error: ‘target_flags_explicit’ was not declared in this scope
make[1]: *** [alpha.o] Error 1


m68k-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20408)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o m68k.o -MT m68k.o -MMD -MP -MF ./.deps/m68k.TPo /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c
/home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c: In function ‘void m68k_option_override()’:
/home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c:503: error: ‘target_flags_explicit’ was not declared in this scope
/home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c: In function ‘tree_node* m68k_handle_fndecl_attribute(tree_node**, tree_node*, tree_node*, int, bool*)’:
/home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c:730: warning: unknown conversion type character ‘E’ in format
/home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c:730: warning: too many arguments for format
make[1]: *** [m68k.o] Error 1


frv-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20396)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o frv.o -MT frv.o -MMD -MP -MF ./.deps/frv.TPo /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c
/home/vaxbuild/repos/gcc/gcc/config/frv/frv.c: In function ‘void frv_option_override()’:
/home/vaxbuild/repos/gcc/gcc/config/frv/frv.c:642:52: error: ‘target_flags_explicit’ was not declared in this scope
   target_flags |= (frv_default_flags_for_cpu () & ~target_flags_explicit);
                                                    ^
/home/vaxbuild/repos/gcc/gcc/config/frv/frv.c: In function ‘void frv_init_cumulative_args(int*, tree, rtx, tree, int)’:
/home/vaxbuild/repos/gcc/gcc/config/frv/frv.c:3097:51: error: invalid conversion from ‘int’ to ‘tree_code’ [-fpermissive]
      get_tree_code_name ((int)TREE_CODE (ret_type)));
                                                   ^
make[1]: *** [frv.o] Error 1



The actual breakage is uncovered by this fragment:



...which means that all code using target_flags_explicit needs to be
cared for.

> FWIW, I am testing this patch on i386 and powerpc right now.

Please also test it on at least the targets I reported breakages on.
Have a look here:

http://toolchain.lug-owl.de/buildbot/?limit=1500
http://toolchain.lug-owl.de/buildbot/timeline.php?limit=1500

Generally, if you're looking for targets that are at least somewhat
supported, you find a good list to start with at
contrib/config-list.mk .

MfG, JBG

Comments

Sriraman Tallam Oct. 17, 2013, 5:59 p.m. UTC | #1
On Thu, Oct 17, 2013 at 10:49 AM, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> On Thu, 2013-10-17 10:23:27 -0700, Sriraman Tallam <tmsriram@google.com> wrote:
> [...]
>> I would need the help of target maintainers to fix it this way since
>> it touches every target and it would take time for me to build and
>> test every target.
>
> Then you should have probably waited some time, mark your patch as RFC
> until there's consent on what exactly needs to be done for all target
> archs.
>
>> Michael, OTOH, I dont see any other targets other than i386 and rs6000
>> (grepping for "specific_save" and "specific_restore") using
>> function_specific save and restore functions. Would it be easier then
>> to just add back that line to "opth-gen.awk"?,the patch is below.
>> Since, they are not using function specific opts, they presumably
>> should not be validating target options a lot.
>
> Some examples for breakage:
>
> sparc64 (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20481)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o sparc.o -MT sparc.o -MMD -MP -MF ./.deps/sparc.TPo /home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c
> /home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c: In function ‘void sparc_option_override()’:
> /home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c:1228:50: error: ‘target_flags_explicit’ was not declared in this scope
>        dump_target_flags("target_flags_explicit", target_flags_explicit);
>                                                   ^
> /home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c:1322:7: error: ‘target_flags_explicit’ was not declared in this scope
>    if (target_flags_explicit & MASK_FPU)
>        ^
> make[1]: *** [sparc.o] Error 1
>
>
> s390-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20482)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o s390.o -MT s390.o -MMD -MP -MF ./.deps/s390.TPo /home/jbglaw/repos/gcc/gcc/config/s390/s390.c
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c: In function ‘void s390_option_override()’:
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1612: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1644: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1649: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1654: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1667: error: ‘target_flags_explicit’ was not declared in this scope
> make[1]: *** [s390.o] Error 1
>
>
> mips64-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20471)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c  -DIN_GCC_FRONTEND -DIN_GCC_FRONTEND -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -Ic-family -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/c-family -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o c-family/c-cppbuiltin.o -MT c-family/c-cppbuiltin.o -MMD -MP -MF c-family/.deps/c-cppbuiltin.TPo /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c
> In file included from ./tm.h:31:0,
>                  from /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:23:
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c: In function ‘void cpp_atomic_builtins(cpp_reader*)’:
> /home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
>    (target_flags_explicit & MASK_LLSC \
>     ^
> ./insn-flags.h:814:39: note: in expansion of macro ‘GENERATE_LL_SC’
>  #define HAVE_sync_compare_and_swapqi (GENERATE_LL_SC)
>                                        ^
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:594:7: note: in expansion of macro ‘HAVE_sync_compare_and_swapqi’
>    if (HAVE_sync_compare_and_swapqi || HAVE_atomic_compare_and_swapqi)
>        ^
> /home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
>    (target_flags_explicit & MASK_LLSC \
>     ^
> ./insn-flags.h:815:39: note: in expansion of macro ‘GENERATE_LL_SC’
>  #define HAVE_sync_compare_and_swaphi (GENERATE_LL_SC)
>                                        ^
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:606:7: note: in expansion of macro ‘HAVE_sync_compare_and_swaphi’
>    if (HAVE_sync_compare_and_swaphi || HAVE_atomic_compare_and_swaphi)
>        ^
> /home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
>    (target_flags_explicit & MASK_LLSC \
>     ^
> ./insn-flags.h:261:39: note: in expansion of macro ‘GENERATE_LL_SC’
>  #define HAVE_sync_compare_and_swapsi (GENERATE_LL_SC)
>                                        ^
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:618:7: note: in expansion of macro ‘HAVE_sync_compare_and_swapsi’
>    if (HAVE_sync_compare_and_swapsi || HAVE_atomic_compare_and_swapsi)
>        ^
> /home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
>    (target_flags_explicit & MASK_LLSC \
>     ^
> ./insn-flags.h:262:40: note: in expansion of macro ‘GENERATE_LL_SC’
>  #define HAVE_sync_compare_and_swapdi ((GENERATE_LL_SC) && (TARGET_64BIT))
>                                         ^
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:630:7: note: in expansion of macro ‘HAVE_sync_compare_and_swapdi’
>    if (HAVE_sync_compare_and_swapdi || HAVE_atomic_compare_and_swapdi)
>        ^
> make[1]: *** [c-family/c-cppbuiltin.o] Error 1
>
>
> spu-elf (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20459)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o spu.o -MT spu.o -MMD -MP -MF ./.deps/spu.TPo /home/jbglaw/repos/gcc/gcc/config/spu/spu.c
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c: In function ‘void spu_option_override()’:
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:271: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c: In function ‘tree_node* spu_handle_fndecl_attribute(tree_node**, tree_node*, tree_node*, int, bool*)’:
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3690: warning: unknown conversion type character ‘E’ in format
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3690: warning: too many arguments for format
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c: In function ‘tree_node* spu_handle_vector_attribute(tree_node**, tree_node*, tree_node*, int, bool*)’:
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3747: warning: unknown conversion type character ‘E’ in format
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3747: warning: too many arguments for format
> make[1]: *** [spu.o] Error 1
>
>
> alpha-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20456)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o alpha.o -MT alpha.o -MMD -MP -MF ./.deps/alpha.TPo /home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c
> /home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c: In function ‘void alpha_option_override()’:
> /home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c:270: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c:403: error: ‘target_flags_explicit’ was not declared in this scope
> make[1]: *** [alpha.o] Error 1
>
>
> m68k-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20408)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o m68k.o -MT m68k.o -MMD -MP -MF ./.deps/m68k.TPo /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c: In function ‘void m68k_option_override()’:
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c:503: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c: In function ‘tree_node* m68k_handle_fndecl_attribute(tree_node**, tree_node*, tree_node*, int, bool*)’:
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c:730: warning: unknown conversion type character ‘E’ in format
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c:730: warning: too many arguments for format
> make[1]: *** [m68k.o] Error 1
>
>
> frv-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20396)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o frv.o -MT frv.o -MMD -MP -MF ./.deps/frv.TPo /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c
> /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c: In function ‘void frv_option_override()’:
> /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c:642:52: error: ‘target_flags_explicit’ was not declared in this scope
>    target_flags |= (frv_default_flags_for_cpu () & ~target_flags_explicit);
>                                                     ^
> /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c: In function ‘void frv_init_cumulative_args(int*, tree, rtx, tree, int)’:
> /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c:3097:51: error: invalid conversion from ‘int’ to ‘tree_code’ [-fpermissive]
>       get_tree_code_name ((int)TREE_CODE (ret_type)));
>                                                    ^
> make[1]: *** [frv.o] Error 1
>
>
>
> The actual breakage is uncovered by this fragment:
>
> --- a/gcc/opth-gen.awk
> +++ b/gcc/opth-gen.awk
> @@ -114,7 +114,6 @@ print "};"
>  print "extern struct gcc_options global_options;"
>  print "extern const struct gcc_options global_options_init;"
>  print "extern struct gcc_options global_options_set;"
> -print "#define target_flags_explicit global_options_set.x_target_flags"
>  print "#endif"
>  print "#endif"
>  print ""
>
>
> ...which means that all code using target_flags_explicit needs to be
> cared for.
>
>> FWIW, I am testing this patch on i386 and powerpc right now.
>
> Please also test it on at least the targets I reported breakages on.

Yes, I do not intend to let any other patch fixing this go in without
having it explicitly tested on all targets. I am first trying to see
if this patch will work at all with i386 and powerpc.

> Have a look here:
>
> http://toolchain.lug-owl.de/buildbot/?limit=1500
> http://toolchain.lug-owl.de/buildbot/timeline.php?limit=1500
>
> Generally, if you're looking for targets that are at least somewhat
> supported, you find a good list to start with at
> contrib/config-list.mk .
>
> MfG, JBG
>
> --
>       Jan-Benedict Glaw      jbglaw@lug-owl.de              +49-172-7608481
>   Signature of:                           Wenn ich wach bin, träume ich.
>   the second  :
Xinliang David Li Oct. 17, 2013, 6:06 p.m. UTC | #2
JBG, Steve, Can you help testing Sri's latest patch on your targets?
This will help speed up the process.

thanks,

David

On Thu, Oct 17, 2013 at 10:49 AM, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> On Thu, 2013-10-17 10:23:27 -0700, Sriraman Tallam <tmsriram@google.com> wrote:
> [...]
>> I would need the help of target maintainers to fix it this way since
>> it touches every target and it would take time for me to build and
>> test every target.
>
> Then you should have probably waited some time, mark your patch as RFC
> until there's consent on what exactly needs to be done for all target
> archs.
>
>> Michael, OTOH, I dont see any other targets other than i386 and rs6000
>> (grepping for "specific_save" and "specific_restore") using
>> function_specific save and restore functions. Would it be easier then
>> to just add back that line to "opth-gen.awk"?,the patch is below.
>> Since, they are not using function specific opts, they presumably
>> should not be validating target options a lot.
>
> Some examples for breakage:
>
> sparc64 (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20481)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o sparc.o -MT sparc.o -MMD -MP -MF ./.deps/sparc.TPo /home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c
> /home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c: In function ‘void sparc_option_override()’:
> /home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c:1228:50: error: ‘target_flags_explicit’ was not declared in this scope
>        dump_target_flags("target_flags_explicit", target_flags_explicit);
>                                                   ^
> /home/vaxbuild/repos/gcc/gcc/config/sparc/sparc.c:1322:7: error: ‘target_flags_explicit’ was not declared in this scope
>    if (target_flags_explicit & MASK_FPU)
>        ^
> make[1]: *** [sparc.o] Error 1
>
>
> s390-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20482)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o s390.o -MT s390.o -MMD -MP -MF ./.deps/s390.TPo /home/jbglaw/repos/gcc/gcc/config/s390/s390.c
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c: In function ‘void s390_option_override()’:
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1612: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1644: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1649: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1654: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/s390/s390.c:1667: error: ‘target_flags_explicit’ was not declared in this scope
> make[1]: *** [s390.o] Error 1
>
>
> mips64-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20471)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c  -DIN_GCC_FRONTEND -DIN_GCC_FRONTEND -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -Ic-family -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/c-family -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o c-family/c-cppbuiltin.o -MT c-family/c-cppbuiltin.o -MMD -MP -MF c-family/.deps/c-cppbuiltin.TPo /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c
> In file included from ./tm.h:31:0,
>                  from /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:23:
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c: In function ‘void cpp_atomic_builtins(cpp_reader*)’:
> /home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
>    (target_flags_explicit & MASK_LLSC \
>     ^
> ./insn-flags.h:814:39: note: in expansion of macro ‘GENERATE_LL_SC’
>  #define HAVE_sync_compare_and_swapqi (GENERATE_LL_SC)
>                                        ^
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:594:7: note: in expansion of macro ‘HAVE_sync_compare_and_swapqi’
>    if (HAVE_sync_compare_and_swapqi || HAVE_atomic_compare_and_swapqi)
>        ^
> /home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
>    (target_flags_explicit & MASK_LLSC \
>     ^
> ./insn-flags.h:815:39: note: in expansion of macro ‘GENERATE_LL_SC’
>  #define HAVE_sync_compare_and_swaphi (GENERATE_LL_SC)
>                                        ^
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:606:7: note: in expansion of macro ‘HAVE_sync_compare_and_swaphi’
>    if (HAVE_sync_compare_and_swaphi || HAVE_atomic_compare_and_swaphi)
>        ^
> /home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
>    (target_flags_explicit & MASK_LLSC \
>     ^
> ./insn-flags.h:261:39: note: in expansion of macro ‘GENERATE_LL_SC’
>  #define HAVE_sync_compare_and_swapsi (GENERATE_LL_SC)
>                                        ^
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:618:7: note: in expansion of macro ‘HAVE_sync_compare_and_swapsi’
>    if (HAVE_sync_compare_and_swapsi || HAVE_atomic_compare_and_swapsi)
>        ^
> /home/vaxbuild/repos/gcc/gcc/config/mips/mips.h:1091:4: error: ‘target_flags_explicit’ was not declared in this scope
>    (target_flags_explicit & MASK_LLSC \
>     ^
> ./insn-flags.h:262:40: note: in expansion of macro ‘GENERATE_LL_SC’
>  #define HAVE_sync_compare_and_swapdi ((GENERATE_LL_SC) && (TARGET_64BIT))
>                                         ^
> /home/vaxbuild/repos/gcc/gcc/c-family/c-cppbuiltin.c:630:7: note: in expansion of macro ‘HAVE_sync_compare_and_swapdi’
>    if (HAVE_sync_compare_and_swapdi || HAVE_atomic_compare_and_swapdi)
>        ^
> make[1]: *** [c-family/c-cppbuiltin.o] Error 1
>
>
> spu-elf (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20459)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o spu.o -MT spu.o -MMD -MP -MF ./.deps/spu.TPo /home/jbglaw/repos/gcc/gcc/config/spu/spu.c
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c: In function ‘void spu_option_override()’:
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:271: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c: In function ‘tree_node* spu_handle_fndecl_attribute(tree_node**, tree_node*, tree_node*, int, bool*)’:
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3690: warning: unknown conversion type character ‘E’ in format
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3690: warning: too many arguments for format
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c: In function ‘tree_node* spu_handle_vector_attribute(tree_node**, tree_node*, tree_node*, int, bool*)’:
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3747: warning: unknown conversion type character ‘E’ in format
> /home/jbglaw/repos/gcc/gcc/config/spu/spu.c:3747: warning: too many arguments for format
> make[1]: *** [spu.o] Error 1
>
>
> alpha-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20456)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o alpha.o -MT alpha.o -MMD -MP -MF ./.deps/alpha.TPo /home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c
> /home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c: In function ‘void alpha_option_override()’:
> /home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c:270: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/alpha/alpha.c:403: error: ‘target_flags_explicit’ was not declared in this scope
> make[1]: *** [alpha.o] Error 1
>
>
> m68k-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20408)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/jbglaw/repos/gcc/gcc -I/home/jbglaw/repos/gcc/gcc/. -I/home/jbglaw/repos/gcc/gcc/../include -I/home/jbglaw/repos/gcc/gcc/../libcpp/include  -I/home/jbglaw/repos/gcc/gcc/../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/jbglaw/repos/gcc/gcc/../libbacktrace    -o m68k.o -MT m68k.o -MMD -MP -MF ./.deps/m68k.TPo /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c: In function ‘void m68k_option_override()’:
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c:503: error: ‘target_flags_explicit’ was not declared in this scope
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c: In function ‘tree_node* m68k_handle_fndecl_attribute(tree_node**, tree_node*, tree_node*, int, bool*)’:
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c:730: warning: unknown conversion type character ‘E’ in format
> /home/jbglaw/repos/gcc/gcc/config/m68k/m68k.c:730: warning: too many arguments for format
> make[1]: *** [m68k.o] Error 1
>
>
> frv-linux (http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=20396)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include  -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o frv.o -MT frv.o -MMD -MP -MF ./.deps/frv.TPo /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c
> /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c: In function ‘void frv_option_override()’:
> /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c:642:52: error: ‘target_flags_explicit’ was not declared in this scope
>    target_flags |= (frv_default_flags_for_cpu () & ~target_flags_explicit);
>                                                     ^
> /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c: In function ‘void frv_init_cumulative_args(int*, tree, rtx, tree, int)’:
> /home/vaxbuild/repos/gcc/gcc/config/frv/frv.c:3097:51: error: invalid conversion from ‘int’ to ‘tree_code’ [-fpermissive]
>       get_tree_code_name ((int)TREE_CODE (ret_type)));
>                                                    ^
> make[1]: *** [frv.o] Error 1
>
>
>
> The actual breakage is uncovered by this fragment:
>
> --- a/gcc/opth-gen.awk
> +++ b/gcc/opth-gen.awk
> @@ -114,7 +114,6 @@ print "};"
>  print "extern struct gcc_options global_options;"
>  print "extern const struct gcc_options global_options_init;"
>  print "extern struct gcc_options global_options_set;"
> -print "#define target_flags_explicit global_options_set.x_target_flags"
>  print "#endif"
>  print "#endif"
>  print ""
>
>
> ...which means that all code using target_flags_explicit needs to be
> cared for.
>
>> FWIW, I am testing this patch on i386 and powerpc right now.
>
> Please also test it on at least the targets I reported breakages on.
> Have a look here:
>
> http://toolchain.lug-owl.de/buildbot/?limit=1500
> http://toolchain.lug-owl.de/buildbot/timeline.php?limit=1500
>
> Generally, if you're looking for targets that are at least somewhat
> supported, you find a good list to start with at
> contrib/config-list.mk .
>
> MfG, JBG
>
> --
>       Jan-Benedict Glaw      jbglaw@lug-owl.de              +49-172-7608481
>   Signature of:                           Wenn ich wach bin, träume ich.
>   the second  :
Steve Ellcey Oct. 17, 2013, 6:16 p.m. UTC | #3
On Thu, 2013-10-17 at 11:06 -0700, Xinliang David Li wrote:
> JBG, Steve, Can you help testing Sri's latest patch on your targets?
> This will help speed up the process.
> 
> thanks,
> 
> David

I have already tested the one line patch to opth-gen.awk.  It fixes the
MIPS build and a testsuite run looked OK too.

Steve Ellcey
sellcey@mips.com
Jan-Benedict Glaw Oct. 17, 2013, 6:25 p.m. UTC | #4
On Thu, 2013-10-17 11:06:44 -0700, Xinliang David Li <davidxl@google.com> wrote:
> JBG, Steve, Can you help testing Sri's latest patch on your targets?
> This will help speed up the process.

The one-line revert will probably "fix" all of those.  Though it's
open to discussion if we want to do that, or forward-port all other
code. Probably a question the global reviewers should decide on.

Though if you want to, I'd easily configure another instance to
manually test some patches.

MfG, JBG
Xinliang David Li Oct. 17, 2013, 6:30 p.m. UTC | #5
On Thu, Oct 17, 2013 at 11:25 AM, Jan-Benedict Glaw <jbglaw@lug-owl.de> wrote:
> On Thu, 2013-10-17 11:06:44 -0700, Xinliang David Li <davidxl@google.com> wrote:
>> JBG, Steve, Can you help testing Sri's latest patch on your targets?
>> This will help speed up the process.
>
> The one-line revert will probably "fix" all of those.  Though it's
> open to discussion if we want to do that, or forward-port all other
> code. Probably a question the global reviewers should decide on.

Discussions are welcome, possibly after the build breaks are cleaned up.

>
> Though if you want to, I'd easily configure another instance to
> manually test some patches.
>

That will be really appreciated.

thanks,

David


> MfG, JBG
>
> --
>       Jan-Benedict Glaw      jbglaw@lug-owl.de              +49-172-7608481
> Signature of:               http://www.eyrie.org/~eagle/faqs/questions.html
> the second  :
diff mbox

Patch

--- a/gcc/opth-gen.awk
+++ b/gcc/opth-gen.awk
@@ -114,7 +114,6 @@  print "};"
 print "extern struct gcc_options global_options;"
 print "extern const struct gcc_options global_options_init;"
 print "extern struct gcc_options global_options_set;"
-print "#define target_flags_explicit global_options_set.x_target_flags"
 print "#endif"
 print "#endif"
 print ""