This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug lto/42776] LTO doesn't work on non-ELF platforms.



------- Comment #45 from davek at gcc dot gnu dot org  2010-04-27 02:23 -------
Subject: Bug 42776

Author: davek
Date: Tue Apr 27 02:22:40 2010
New Revision: 158762

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158762
Log:
ChangeLog:

        PR lto/42776
        * configure.ac (--enable-lto): Refactor handling so libelf tests
        are only performed inside then-clause of ACX_ELF_TARGET_IFELSE,
        and allow LTO to be explicitly enabled on non-ELF platforms that
        are known to support it inside else-clause.
        * configure: Regenerate.

gcc/ChangeLog:

        PR lto/42776
        * configure.ac (gcc_cv_as_section_has_align): Set if installed
        binutils supports extended .section directive needed by LTO, or
        warn if older binutils found.
        (LTO_BINARY_READER): New AC_SUBST'd variable.
        (LTO_USE_LIBELF): Likewise.
        * gcc/config.gcc (lto_binary_reader): New target-specific configure
        variable.
        * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
        (LTO_USE_LIBELF): Likewise.
        * configure: Regenerate.

        * collect2.c (is_elf): Rename from this ...
        (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
         object files in addition to ELF-formatted ones.
        (scan_prog_file): Caller updated.  Also allow for LTO info marker
        symbol to be prefixed or not by an extra underscore.

        * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
        * config/i386/winnt.c: Also #include lto-streamer.h
        (i386_pe_asm_named_section): Specify 1-byte section alignment for
        LTO named sections.
        (i386_pe_asm_output_aligned_decl_common): Add comment.
        (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.

gcc/lto/ChangeLog:

        PR lto/42776
        * Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
        hardcoding 'lto-elf.o'.
        ($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.

        * lto-coff.h: New file.
        * lto-coff.c: Likewise.

gcc/testsuite/ChangeLog:

        PR lto/42776
        * lib/lto.exp (lto_prune_vis_warns): New function.
        (lto-link-and-maybe-run): Call it.


Added:
    trunk/gcc/lto/lto-coff.c
    trunk/gcc/lto/lto-coff.h
Modified:
    trunk/ChangeLog
    trunk/configure.ac
    trunk/gcc/Makefile.in
    trunk/gcc/collect2.c
    trunk/gcc/config.gcc
    trunk/gcc/config/i386/t-cygming
    trunk/gcc/config/i386/winnt.c
    trunk/gcc/configure
    trunk/gcc/configure.ac
    trunk/gcc/lto/ChangeLog
    trunk/gcc/lto/Make-lang.in
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/lib/lto.exp


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42776


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]