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)

Reply via email to