This is the mail archive of the gcc-patches@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]

Re: Discussion about merging Go frontend


On Fri, Oct 29, 2010 at 3:31 AM, Ian Lance Taylor <iant@google.com> wrote:
> Dave Korn <dave.korn.cygwin@gmail.com> writes:
>
>> ? What would be even nicer would be if we could share the same code-reader
>> interface between lto and go (and the lto-plugin), thereby getting object
>> format independence equally everywhere for no extra cost.
>
> How about this?
>
> This implements an object file reader/writer which does everything
> required by LTO and gccgo. ?The ELF code works. ?I have not tested the
> Mach-O and COFF code at all beyond compiling it; I hope that somebody
> else can test those targets and fix them.
>
> With this patch, libelf is no longer needed.
>
> I've bootstrapped this on x86_64-unknown-linux-gnu, and I've run the LTO
> testsuite.
>
> This patch puts the code in libiberty, but it could equally well go in
> gcc. ?Anybody want to make an argument one way or another?
>
> Does the general interface look OK?
>
> This patch requires approval from the LTO maintainers. ?I don't need
> approval for the libiberty changes (if the code stays in libiberty) but
> of course I would appreciate it if somebody could look it over. ?I think
> the configure and Makefile changes are sufficiently obvious given the
> other changes as to not require approval.
>
> If this patch is accepted, then gccgo will not require elfcpp.

Nice!

The LTO changes are ok (I suppose you'll be around in helping people
debug eventual problems).

Richard.

> Ian
>
>
> include/ChangeLog:
>
> 2010-10-28 ?Ian Lance Taylor ?<iant@google.com>
>
> ? ? ? ?* objfile.h: New file.
>
> libiberty/ChangeLog:
>
> 2010-10-28 ?Ian Lance Taylor ?<iant@google.com>
>
> ? ? ? ?* objfile.c: New file.
> ? ? ? ?* objfile-common.h: New file.
> ? ? ? ?* objfile-elf.c: New file.
> ? ? ? ?* objfile-mach-o.c: New file.
> ? ? ? ?* objfile-coff.c: New file.
> ? ? ? ?* configure.ac: Add AC_TYPE_SSIZE_T.
> ? ? ? ?* Makefile.in: Rebuild dependencies.
> ? ? ? ?(CFILES): Add objfile.c, objfile-coff, objfile-elf.c,
> ? ? ? ?objfile-mach-o.c.
> ? ? ? ?(REQUIRED_OFILES): Add corresponding object files.
> ? ? ? ?* configure: Rebuild.
> ? ? ? ?* config.in: Rebuild.
>
> gcc/ChangeLog:
>
> 2010-10-28 ?Ian Lance Taylor ?<iant@google.com>
>
> ? ? ? ?* configure.ac: Remove elf_getshdrstrndx test. ?Don't substitute
> ? ? ? ?LTO_BINARY_READER or LTO_USE_LIBELF. ?Remove LIBELFLIBS and
> ? ? ? ?LIBELFINC. ?Remove HAVE_libelf.
> ? ? ? ?* gcc/config.gcc: Don't set lto_binary_reader.
> ? ? ? ?* gcc/Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
> ? ? ? ?(LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
> ? ? ? ?(LIBS): Remove $(LIBELFLIBS).
> ? ? ? ?(INCLUDES): Remove $(LIBELFINC).
> ? ? ? ?* doc/install.texi (Prerequisites): Remove libelf paragraphs.
> ? ? ? ?(Configuration): Mention --disable-lto. ?Remove --with-libelf
> ? ? ? ?paragraph.
> ? ? ? ?* configure: Rebuild.
> ? ? ? ?* config.in: Rebuild.
>
> gcc/lto/ChangeLog:
>
> 2010-10-28 ?Ian Lance Taylor ?<iant@google.com>
>
> ? ? ? ?* lto-objfile.c: New file.
> ? ? ? ?* lto-elf.c: Remove file.
> ? ? ? ?* lto-macho.c: Remove file.
> ? ? ? ?* lto-macho.h: Remove file.
> ? ? ? ?* lto-coff.c: Remove file.
> ? ? ? ?* lto-coff.h: Remove file.
> ? ? ? ?* Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
> ? ? ? ?lto/lto-objfile.o.
> ? ? ? ?($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
> ? ? ? ?(lto/lto-objfile.o): New target.
> ? ? ? ?(lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
>
> ./ChangeLog:
>
> 2010-10-28 ?Ian Lance Taylor ?<iant@google.com>
>
> ? ? ? ?* configure.ac: Don't set default_enable_lto. ?Remove libelf tests.
> ? ? ? ?* configure: Rebuild.
>
>
>


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