Discussion about merging Go frontend

Dave Korn dave.korn.cygwin@gmail.com
Sat Oct 30 10:21:00 GMT 2010


On 29/10/2010 02:31, Ian Lance Taylor wrote:

> 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.

  Almost, but not quite!  The attached patch switches the lto-plugin over to
use the new objfile reader as well.

lto-plugin/ChangeLog:

	* configure.ac: Don't use libelf, don't source config.gcc.
	(LIBELFLIBS): Delete.
	(LIBELFINC): Delete.
	(LTO_FORMAT): Delete.
	(SYM_STYLE): New AC_SUBST var set based on $target.
	* Makefile.am (LIBELFLIBS): Delete.
	(LIBELFINC): Delete.
	(LTO_FORMAT): Delete.
	(SYM_STYLE): Import.
	(AM_CPPFLAGS): Use it.  Don't use LIBELFINC.
	(liblto_plugin_la_SOURCES): Don't use LTO_FORMAT, don't include
	any object-format-specific source file in the link.
	(liblto_plugin_la_LIBADD): Don't use LIBELFLIBS.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* lto-plugin-elf.c: Delete.
	* lto-plugin-coff.c: Delete.
	* lto-plugin.h: Delete.
	* lto-plugin.c (O_BINARY): Definition moved here from lto-plugin.h.
	(LTO_SEGMENT_NAME): New definition.
	(LTO_SECTION_PREFIX): Definition moved here from lto-plugin.h.
	(LTO_SECTION_PREFIX_LEN): New definition.
	(struct sym_aux): Struct definition moved here from lto-plugin.h.
	(struct plugin_symtab): Likewise.
	(struct plugin_objfile): Likewise.
	(struct plugin_objfile): New struct def.
	(enum symbol_style): New enum type.
	(add_symbols): Make static.
	(claimed_files): Likewise.
	(num_claimed_files): Likewise.
	(sym_style): New global.
	(check): Make static.
	(parse_table_entry): Likewise.  Respect sym_style when extracting
	symbol from symtab entry.
	(translate): Make static.
	(resolve_conflicts): Likewise.
	(process_symtab): New function, per-section callback version of
	old object-format-specific handling from deleted lto-plugin-elf.c.
	(claim_file_handler): Convert ELF-specific version from deleted
	lto-plugin-elf.c to objfile interface and move here.
	(process_options): Allow new '-sym-style=' option.
	(onload): Don't call deleted onload_format_checks hook.

  Bootstrapped and tested all languages except java and ada on
x86_64-unknown-linux-gnu, no regressions.  There are still a couple of bugs to
iron out of the COFF-specific part of the objfile reader which I'll have fixed
later today.

  OK for trunk (once the objfile changes have gone in)?

    cheers,
      DaveK

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 2010_10_29_19_53_45_lto-objfile-plugin-part1.diff
Type: text/x-c
Size: 19379 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20101030/35eadad2/attachment.bin>


More information about the Gcc mailing list