Skip to content

HHX - EASY EVILNESS! Mystery Cache

Hidden : 10/17/2014
Difficulty:
2 out of 5
Terrain:
1.5 out of 5

Size: Size:   micro (micro)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:

SIMPLE, AIN'T IT!

Index: gcc/testsuite/lib/lto.exp =================================================================== --- gcc/testsuite/lib/lto.exp (revision 156105) +++ gcc/testsuite/lib/lto.exp (working copy) @@ -16,7 +16,20 @@ # Contributed by Diego Novillo +# Prune messages from gcc that aren't useful. +proc lto_prune_vis_warns { text } { + + # Many tests that use visilibity will still pass on platforms that don't support it. + regsub -all "(^|\n)\[^\n\]*: warning: visibility attribute not supported in this configuration; ignored\[^\n\]*" $text "" text + + # And any stray location lines. + regsub -all "(^|\n)\[^\n\]*: In function \[^\n\]*" $text "" text + regsub -all "(^|\n)In file included from :\[^\n\]*" $text "" text + + return $text +} + # lto_init -- called at the start of each subdir of tests proc lto_init { args } { @@ -147,6 +160,10 @@ proc lto-link-and-maybe-run { testname objlist des # Link the objects into an executable. set comp_output [${tool}_target_compile "$objlist" $dest executable \ "$options"] + + # Prune unimportant visibility warnings before checking output. + set comp_output [lto_prune_vis_warns $comp_output] + if ![${tool}_check_compile "$testcase $testname link" "" \ $dest $comp_output] then { unresolved "$testcase $testname execute $optstr" Index: gcc/configure.ac =================================================================== --- gcc/configure.ac (revision 156105) +++ gcc/configure.ac (working copy) @@ -4127,6 +4127,17 @@ changequote([,])dnl AC_DEFINE(ENABLE_LTO, 1, [Define to enable LTO support.]) enable_lto=yes AC_SUBST(enable_lto) + # LTO needs to speak the platform's object file format, and has a + # number of implementations of the required binary file access APIs. + # ELF is the most common, and default. We only link libelf if ELF + # is indeed the selected format. + LTO_BINARY_READER=${lto_binary_reader} + LTO_USE_LIBELF=-lelf + if test "x$lto_binary_reader" != "xlto-elf" ; then + LTO_USE_LIBELF= + fi + AC_SUBST(LTO_BINARY_READER) + AC_SUBST(LTO_USE_LIBELF) ;; *) ;; esac Index: gcc/lto/Make-lang.in =================================================================== --- gcc/lto/Make-lang.in (revision 156105) +++ gcc/lto/Make-lang.in (working copy) @@ -23,7 +23,7 @@ # The name of the LTO compiler. LTO_EXE = lto1$(exeext) # The LTO-specific object files inclued in $(LTO_EXE). -LTO_OBJS = lto/lto-lang.o lto/lto.o lto/lto-elf.o attribs.o +LTO_OBJS = lto/lto-lang.o lto/lto.o lto/$(LTO_BINARY_READER).o attribs.o LTO_H = lto/lto.h $(HASHTAB_H) LINKER_PLUGIN_API_H = $(srcdir)/../include/plugin-api.h LTO_TREE_H = lto/lto-tree.h $(LINKER_PLUGIN_API_H) @@ -73,7 +73,7 @@ lto-warn = $(STRICT_WARN) $(LTO_EXE): $(LTO_OBJS) $(BACKEND) $(LIBDEPS) $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ - $(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) -lelf + $(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) $(LTO_USE_LIBELF) # Dependencies lto/lto-lang.o: lto/lto-lang.c $(CONFIG_H) coretypes.h debug.h \ @@ -88,3 +88,6 @@ lto/lto.o: lto/lto.c $(CONFIG_H) $(SYSTEM_H) coret $(LTO_TAGS_H) $(LTO_STREAMER_H) lto/lto-elf.o: lto/lto-elf.c $(CONFIG_H) coretypes.h $(SYSTEM_H) \ toplev.h $(LTO_H) $(TM_H) $(LIBIBERTY_H) $(GGC_H) $(LTO_STREAMER_H) +lto/lto-coff.o: lto/lto-coff.c $(CONFIG_H) coretypes.h $(SYSTEM_H) \ + toplev.h $(LTO_H) $(TM_H) $(LIBIBERTY_H) $(GGC_H) $(LTO_STREAMER_H) \ + lto/lto-coff.h Index: gcc/lto/lto.h =================================================================== --- gcc/lto/lto.h (revision 156105) +++ gcc/lto/lto.h (working copy) @@ -38,7 +38,7 @@ extern const char *resolution_file_name; extern void lto_main (int); extern void lto_read_all_file_options (void); -/* In lto-elf.c */ +/* In lto-elf.c or lto-coff.c */ extern lto_file *lto_elf_file_open (const char *filename, bool writable); extern void lto_elf_file_close (lto_file *file); extern htab_t lto_elf_build_section_table (lto_file *file); Index: gcc/config.gcc =================================================================== --- gcc/config.gcc (revision 156105) +++ gcc/config.gcc (working copy) @@ -199,6 +199,8 @@ gnu_ld="$gnu_ld_flag" default_use_cxa_atexit=no target_gtfiles= need_64bit_hwint= +# Selects the object file format reader/writer used by LTO. +lto_binary_reader=lto-elf # Don't carry these over build->host->target. Please. xm_file= @@ -1320,6 +1322,7 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*) thread_file='posix' fi use_gcc_stdint=wrap + lto_binary_reader=lto-coff ;; i[34567]86-*-mingw* | x86_64-*-mingw*) tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h" Index: gcc/Makefile.in =================================================================== --- gcc/Makefile.in (revision 156105) +++ gcc/Makefile.in (working copy) @@ -325,6 +325,10 @@ LIBELFINC = @LIBELFINC@ # Set to 'yes' if the LTO front end is enabled. enable_lto = @enable_lto@ +# Set according to LTO object file format. +LTO_BINARY_READER = @LTO_BINARY_READER@ +LTO_USE_LIBELF = @LTO_USE_LIBELF@ + Index: gcc/testsuite/lib/lto.exp =================================================================== --- gcc/testsuite/lib/lto.exp (revision 156105) +++ gcc/testsuite/lib/lto.exp (working copy) @@ -16,7 +16,20 @@ # Contributed by Diego Novillo +# Prune messages from gcc that aren't useful. +proc lto_prune_vis_warns { text } { + + # Many tests that use visilibity will still pass on platforms that don't support it. + regsub -all "(^|\n)\[^\n\]*: warning: visibility attribute not supported in this configuration; ignored\[^\n\]*" $text "" text + + # And any stray location lines. + regsub -all "(^|\n)\[^\n\]*: In function \[^\n\]*" $text "" text + regsub -all "(^|\n)In file included from :\[^\n\]*" $text "" text + + return $text +} + # lto_init -- called at the start of each subdir of tests proc lto_init { args } { @@ -147,6 +160,10 @@ proc lto-link-and-maybe-run { testname objlist des # Link the objects into an executable. set comp_output [${tool}_target_compile "$objlist" $dest executable \ "$options"] + + # Prune unimportant visibility warnings before checking output. + set comp_output [lto_prune_vis_warns $comp_output] + if ![${tool}_check_compile "$testcase $testname link" "" \ $dest $comp_output] then { unresolved "$testcase $testname execute $optstr" Index: gcc/configure.ac =================================================================== --- gcc/configure.ac (revision 156105) +++ gcc/configure.ac (working copy) @@ -4127,6 +4127,17 @@ changequote([,])dnl AC_DEFINE(ENABLE_LTO, 1, [Define to enable LTO support.]) enable_lto=yes AC_SUBST(enable_lto) + # LTO needs to speak the platform's object file format, and has a + # number of implementations of the required binary file access APIs. + # ELF is the most common, and default. We only link libelf if ELF + # is indeed the selected format. + LTO_BINARY_READER=${lto_binary_reader} + LTO_USE_LIBELF=-lelf + if test "x$lto_binary_reader" != "xlto-elf" ; then + LTO_USE_LIBELF= + fi + AC_SUBST(LTO_BINARY_READER) + AC_SUBST(LTO_USE_LIBELF) ;; *) ;; esac Index: gcc/lto/Make-lang.in =================================================================== --- gcc/lto/Make-lang.in (revision 156105) +++ gcc/lto/Make-lang.in (working copy) @@ -23,7 +23,7 @@ # The name of the LTO compiler. LTO_EXE = lto1$(exeext) # The LTO-specific object files inclued in $(LTO_EXE). -LTO_OBJS = lto/lto-lang.o lto/lto.o lto/lto-elf.o attribs.o +LTO_OBJS = lto/lto-lang.o lto/lto.o lto/$(LTO_BINARY_READER).o attribs.o LTO_H = lto/lto.h $(HASHTAB_(((((HHX))))) LINKER_PLUGIN_API_H = $(srcdir)/../include/plugin-api.h LTO_TREE_H = lto/lto-tree.h $(LINKER_PLUGIN_API_H) @@ -73,7 +73,7 @@ lto-warn = $(STRICT_WARN) $(LTO_EXE): $(LTO_OBJS) $(BACKEND) $(LIBDEPS) $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ - $(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) -lelf + $(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) $(LTO_USE_LIBELF) # Dependencies lto/lto-lang.o: lto/lto-lang.c $(CONFIG_H) coretypes.h debug.h \ @@ -88,3 +88,6 @@ lto/lto.o: lto/lto.c $(CONFIG_H) $(SYSTEM_H) coret $(LTO_TAGS_H) $(LTO_STREAMER_H) lto/lto-elf.o: lto/lto-elf.c $(CONFIG_H) coretypes.h $(SYSTEM_H) \ toplev.h $(LTO_H) $(TM_H) $(LIBIBERTY_H) $(GGC_H) $(LTO_STREAMER_H) +lto/lto-coff.o: lto/lto-coff.c $(CONFIG_H) coretypes.h $(SYSTEM_H) \ + toplev.h $(LTO_H) $(TM_H) $(LIBIBERTY_H) $(GGC_H) $(LTO_STREAMER_H) \ + lto/lto-coff.h Index: gcc/lto/lto.h =================================================================== --- gcc/lto/lto.h (revision 156105) +++ gcc/lto/lto.h (working copy) @@ -38,7 +38,7 @@ extern const char *resolution_file_name; extern void lto_main (int); extern void lto_read_all_file_options (void); -/* In lto-elf.c */ +/* In lto-elf.c or lto-coff.c */ extern lto_file *lto_elf_file_open (const char *filename, bool writable); extern void lto_elf_file_close (lto_file *file); extern htab_t lto_elf_build_section_table (lto_file *file); Index: gcc/config.gcc =================================================================== --- gcc/config.gcc (revision 156105) +++ gcc/config.gcc (working copy) @@ -199,6 +199,8 @@ gnu_ld="$gnu_ld_flag" default_use_cxa_atexit=no target_gtfiles= need_64bit_hwint= +# Selects the object file format reader/writer used by LTO. +lto_binary_reader=lto-elf # Don't carry these over build->host->target. Please. xm_file= @@ -1320,6 +1322,7 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*) thread_file='posix' fi use_gcc_stdint=wrap + lto_binary_reader=lto-coff ;; i[34567]86-*-mingw* | x86_64-*-mingw*) tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h" Index: gcc/Makefile.in =================================================================== --- gcc/Makefile.in (revision 156105) +++ gcc/Makefile.in (working copy) @@ -325,6 +325,10 @@ LIBELFINC = @LIBELFINC@ # Set to 'yes' if the LTO front end is enabled. enable_lto = @enable_lto@ +# Set according to LTO object file format. +LTO_BINARY_READER = @LTO_BINARY_READER@ +LTO_USE_LIBELF = @LTO_USE_LIBELF@ +

You can validate your puzzle solution with certitude.

Additional Hints (No hints available.)