On 06/18/2018 10:45 AM, Martin Jambor wrote: > Hi, > > On Sun, Jun 17 2018, Hrishikesh Kulkarni wrote: >> Hi, >> >> I am trying to isolate the dump tool into real lto-dump tool. I have >> started with the copy&paste of lto.c into lto-dump.c and done the >> changes to Make-lang.in and config-lang.in suggested by Martin (patch >> attached). However when I try to build, I get the following error: >> >> In file included from ../../gcc/gcc/lto/lto-dump.c:24:0: >> >> ../../gcc/gcc/coretypes.h:397:24: fatal error: insn-modes.h: No such >> >> file or directory >> >> compilation terminated. >> >> >> I am unable to find the missing dependencies and would be grateful for >> suggestions on how to resolve the issue. > > insn-modes.h is one of header files which are generated at build time, > you will find it in the gcc subdirectory of your build directory (as > opposed to the source directory). > > Martin >
Hi. There's patch that works for me. Needed dependency is here: +lto/lto-dump.o: $(LTO_EXE) It's bit artificial, but for now it works. Please start working on separation of dump infrastructure to lto-dump.c. You'll need to factor out common code shared in between lto.c and lto-dump.c. Martin
diff --git a/gcc/lto/Make-lang.in b/gcc/lto/Make-lang.in index 46950776dd2..7c1acdf6419 100644 --- a/gcc/lto/Make-lang.in +++ b/gcc/lto/Make-lang.in @@ -21,9 +21,12 @@ # The name of the LTO compiler. LTO_EXE = lto1$(exeext) +LTO_DUMP_EXE = lto-dump$(exeext) # The LTO-specific object files inclued in $(LTO_EXE). LTO_OBJS = lto/lto-lang.o lto/lto.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto_OBJS = $(LTO_OBJS) +LTO_DUMP_OBJS = lto/lto-lang.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto/lto-dump.o +lto_dump_OBJS = $(LTO_DUMP_OBJS) # this is only useful in a LTO bootstrap, but this does not work right # now. Should reenable after this is fixed, but only when LTO bootstrap @@ -39,8 +42,8 @@ lto_OBJS = $(LTO_OBJS) # These hooks are used by the main GCC Makefile. Consult that # Makefile for documentation. -lto.all.cross: $(LTO_EXE) -lto.start.encap: $(LTO_EXE) +lto.all.cross: $(LTO_EXE) $(LTO_DUMP_EXE) +lto.start.encap: $(LTO_EXE) $(LTO_DUMP_EXE) lto.rest.encap: lto.tags: lto.install-common: @@ -60,7 +63,7 @@ lto.srcinfo: lto.install-plugin: lto.mostlyclean: - rm -f $(LTO_OBJS) $(LTO_EXE) lto1.fda + rm -f $(LTO_OBJS) $(LTO_EXE) lto1.fda $(LTO_DUMP_OBJS) $(LTO_DUMP_EXE) lto-dump.fda lto.clean: lto.distclean: @@ -81,6 +84,12 @@ $(LTO_EXE): $(LTO_OBJS) $(BACKEND) $(LIBDEPS) +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ $(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) +$(LTO_DUMP_EXE): $(LTO_EXE) $(LTO_DUMP_OBJS) $(BACKEND) $(LIBDEPS) + +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ + $(LTO_DUMP_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) + +lto/lto-dump.o: $(LTO_EXE) + lto1.fda: ../prev-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA) $(CREATE_GCOV) -binary ../prev-gcc/lto1$(exeext) -gcov lto1.fda -profile ../prev-gcc/$(PERF_DATA) -gcov_version 1 diff --git a/gcc/lto/config-lang.in b/gcc/lto/config-lang.in index 0b5a846e1ca..ada21681c6a 100644 --- a/gcc/lto/config-lang.in +++ b/gcc/lto/config-lang.in @@ -18,7 +18,7 @@ # <http://www.gnu.org/licenses/>. language="lto" -compilers="lto1\$(exeext)" +compilers="lto1\$(exeext) lto-dump\$(exeext)" gtfiles="\$(srcdir)/lto/lto-tree.h \$(srcdir)/lto/lto-lang.c \$(srcdir)/lto/lto.c \$(srcdir)/lto/lto.h"