On Fri, 28 Mar 2025, Jakub Jelinek wrote: > 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?
LGTM, but I'm not good in spotting issues with regexes ;) Richard. > 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 > > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)