Hi!

Here is a patch which uses sed to fix up the copies of the generated
files by flex/bison in the source directories (i.e. what we ship in
release tarballs).
In that case the generated files are in the same directory as the
files they are generated from, so there should be no absolute or relative
directories, just the filenames.

Furthermore, c.srcextra was duplicating the work of gcc.srcextra, there is
nothing C FE specific on gengtype-lex.l.

Tested on x86_64-linux, ok for trunk?

2025-03-28  Jakub Jelinek  <ja...@redhat.com>

gcc/
        * Makefile.in (gcc.srcextra): Use sed to turn .../gcc/gengtype-lex.l
        in #line directives into just gengtype-lex.l.
gcc/c/
        * Make-lang.in (c.srcextra): Don't depend on anything and don't copy
        anything.
gcc/cobol/
        * Make-lang.in (cobol.srcextra): Use sed to turn
        .../gcc/cobol/*.{y,l,h,cc} and cobol/*.{y,l,h,cc} in #line directives
        into just *.{y,l,h,cc}.

--- gcc/Makefile.in.jj  2025-03-27 09:29:36.938576746 +0100
+++ gcc/Makefile.in     2025-03-28 14:45:00.960408922 +0100
@@ -2508,7 +2508,7 @@ s-mlib: $(srcdir)/genmultilib Makefile
 srcextra: gcc.srcextra lang.srcextra
 
 gcc.srcextra: gengtype-lex.cc
-       -cp -p $^ $(srcdir)
+       -sed -e '/^#line/s,".*/gcc/gengtype-lex\.l","gengtype-lex.l",' $^ > 
$(srcdir)/$^
 
 AR_OBJS = file-find.o
 AR_LIBS = @COLLECT2_LIBS@
--- gcc/c/Make-lang.in.jj       2025-01-02 11:47:22.032336564 +0100
+++ gcc/c/Make-lang.in  2025-03-28 14:48:43.601409373 +0100
@@ -131,8 +131,7 @@ c.all.cross:
 c.start.encap:
 c.rest.encap:
 c.srcinfo:
-c.srcextra: gengtype-lex.cc
-       -cp -p $^ $(srcdir)
+c.srcextra:
 c.tags: force
        cd $(srcdir)/c; $(ETAGS) -o TAGS.sub *.cc *.h; \
        $(ETAGS) --include TAGS.sub --include ../TAGS.sub
--- gcc/cobol/Make-lang.in.jj   2025-03-28 14:30:28.251174728 +0100
+++ gcc/cobol/Make-lang.in      2025-03-28 15:08:29.431543005 +0100
@@ -272,8 +272,9 @@ cobol/scan.o: cobol/scan.cc                 \
 # output, and do not require those tools to be installed.
 #
 cobol.srcextra: cobol/parse.cc cobol/cdf.cc cobol/scan.cc
-       -cp -p $^ cobol/parse.h cobol/cdf.h $(srcdir)/cobol/
-
+       -for i in $^ cobol/parse.h cobol/cdf.h; do \
+         sed -e '/^#line/s,"\(.*gcc/\)\?cobol/\([^/]*\.\([ylh]\|cc\)\)","\2",' 
$$i \
+           > $(srcdir)/$$i; done
 
 # And the cobol1 front end
 

        Jakub

Reply via email to