On Wed, Oct 15, 2014 at 06:18:56PM +0400, Ilya Verbin wrote:
> On 14 Oct 11:40, Jakub Jelinek wrote:
> > My preference would be to add the | SECTION_EXCLUDE unconditionally, and
> > instead guard the
> > if (flags & SECTION_EXCLUDE)
> > *f++ = 'e';
> > in varasm.c (default_elf_asm_named_section). The only other user of
> > SECTION_EXCLUDE seems to be -gsplit-dwarf right now, Cary, is such a change
> > ok with you?
>
> Done. But it turned out that the gcc_GAS_CHECK_FEATURE from gcc/configure.ac:
>
> gcc_GAS_CHECK_FEATURE([.section with e], gcc_cv_as_section_has_e, [2,22,51],,
> [.section foo1,"e"
> .byte 0,0,0,0])
>
> does not work properly. Maybe it works on "cygwin* | pe | mingw32* |
> interix*"
> targets, but on linux with GNU as version 2.20.51 (which doesn't support
> exclude
> sections) it successfully assembles conftest.s into conftest.o (with warnings)
> and HAVE_GAS_SECTION_EXCLUDE becomes defined.
IMHO a version check is wrong (except when using in-tree gas).
I'd suggest just to use [--fatal-warnings] as the 4th argument to
gcc_GAS_CHECK_FEATURE feature, after all, that is what e.g.
gcc_cv_as_shf_merge testing already uses.
Jakub