https://gcc.gnu.org/g:b9f08c8631c2c1a393d7d2bdd41b1b0fe76b1663

commit r15-9010-gb9f08c8631c2c1a393d7d2bdd41b1b0fe76b1663
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Mar 28 15:45:03 2025 +0100

    srcextra fixes
    
    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.
    
    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}.

Diff:
---
 gcc/Makefile.in        | 2 +-
 gcc/c/Make-lang.in     | 3 +--
 gcc/cobol/Make-lang.in | 5 +++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index ead9c015fb25..ebfcd8a8a0d3 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -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@
diff --git a/gcc/c/Make-lang.in b/gcc/c/Make-lang.in
index 049b266dd710..2517b64439fe 100644
--- a/gcc/c/Make-lang.in
+++ b/gcc/c/Make-lang.in
@@ -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
diff --git a/gcc/cobol/Make-lang.in b/gcc/cobol/Make-lang.in
index eb64554f33bc..02c867ea22a1 100644
--- a/gcc/cobol/Make-lang.in
+++ b/gcc/cobol/Make-lang.in
@@ -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

Reply via email to