This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [gcc] Re: sh-elf-4_1-branch created
- From: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: amylaar at spamcop dot net
- Cc: gcc-patches at gcc dot gnu dot org, aoliva at redhat dot com, joern dot rennecke at st dot com
- Date: Sat, 09 Apr 2005 20:37:33 +0900 (JST)
- Subject: Re: [gcc] Re: sh-elf-4_1-branch created
- References: <20050409060706.1g1bw5cs48c0wk0s@webmail.spamcop.net>
amylaar@spamcop.net wrote:
>> It looks some tests using NaN fail on this target.
>
> This is funny. I have this change in OPTIMIZATION_OPTIONS,
>
> + if (TARGET_SH2E && ! TARGET_IEEE) \
> + flag_finite_math_only = 1; \
>
> but it shouldn't really affect these tests, because they should run with
> -mieee in the first place.
I've found that TARGET_IEEE is always 0 in OPTIMIZATION_OPTIONS
even if -mieee is given. opts.c:decode_options looks like:
...
#ifdef OPTIMIZATION_OPTIONS
/* Allow default optimizations to be specified on a per-machine basis. */
OPTIMIZATION_OPTIONS (optimize, optimize_size);
#endif
handle_options (argc, argv, lang_mask);
...
and -mieee is handled in handle_options.
>> 2005-04-09 Kaz Kojima <kkojima@gcc.gnu.org>
>>
>> * config/sh/lib1funcs.asm (ic_invalidate): Fix typos.
>> * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Add _ic_invalidate_array.
>
> OK.
Thanks. I've checked it in.
> I have to admit that ic_invalidate was one of these conflict areas where
> the only appropriate merge action seemed to be a rewrite, and I forgot that
> it didn't even get build exposure in my tests.
> The ic_invalidate_array part is really supposed to be in a separate part,
> with a default possibly available in the static library, but since the symbol
> is not exported, I suppose we don't commit to anything by having it inside
> libgcc.so for now.
> The default settings are so that they should work with the existing hardware
> (which is more than could be said for the previous ic_invalidate
> implementation), but they are not ideal for all hardware, and it will likely
> not work with some future hardware.
> The idea is that you can have a libgcc.so which can be installed on a wide
> range of sh4 flavours, with an undefined symbol for _ic_invalidate_array
> (That's why I use @GOT addressing in ic_invalidate), and install a special
> library for ic_invalidate_array which is more target-specific. If your
> hardware has a large cache, and no icbi instruction, this can be provided
> by mapping a single page repeatedly.
Indeed.
BTW, the native bootstrap catches warnings below and stops. I'll
try it again with --disable-werror.
stage1/xgcc -Bstage1/ -B/usr/gnu/sh4-unknown-linux-gnu/bin/ -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros -Wold-style-definition -Werror -DHAVE_CONFIG_H -I. -I. -I../../LOCAL/gcc-4.1-sh/gcc -I../../LOCAL/gcc-4.1-sh/gcc/. -I../../LOCAL/gcc-4.1-sh/gcc/../include -I../../LOCAL/gcc-4.1-sh/gcc/../libcpp/include \
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c -o sh.o
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c:577:79: error: C++ style comments are not allowed in ISO C90
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c:577:79: error: (this will be reported only once per input file)
cc1: warnings being treated as errors
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c: In function 'ua_offset':
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c:8775: warning: old-style function definition
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c: In function 'sh_output_mi_thunk':
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c:10179: warning: comparison between signed and unsigned
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c: In function 'sh_adjust_unroll_max':
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c:10674: warning: unused parameter 'loop'
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c:10674: warning: unused parameter 'insn_count'
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c:10675: warning: unused parameter 'strength_reduce_p'
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c:10676: warning: unused parameter 'unroll_type'
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c: In function 'replace_n_hard_rtx':
../../LOCAL/gcc-4.1-sh/gcc/config/sh/sh.c:10997: warning: comparison between signed and unsigned
make[2]: *** [sh.o] Error 1
Regards,
kaz