Propagate -ffile-prefix-map from CFLAGS to ASFLAGS.

Message ID 20210430182814.1164481-1-raj.khem@gmail.com
State Dropped
Headers
Series Propagate -ffile-prefix-map from CFLAGS to ASFLAGS. |

Commit Message

Khem Raj April 30, 2021, 6:28 p.m. UTC
  -ffile-prefix-map could be used as superset to imply -fdebug-prefix-map
as well, therefore it should be propagated too, so cases when
-ffile-prefix-map is used but -fdebug-prefix-map is not, then it should
still rewire the paths in debug info
---
 Makeconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Khem Raj April 30, 2021, 7:08 p.m. UTC | #1
On Fri, Apr 30, 2021 at 11:28 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> -ffile-prefix-map could be used as superset to imply -fdebug-prefix-map
> as well, therefore it should be propagated too, so cases when
> -ffile-prefix-map is used but -fdebug-prefix-map is not, then it should
> still rewire the paths in debug info

hmm noticed that when I remove -fdebug-prefix-map then
-ffile-prefix-map did not work and its because GCC is not
translating -ffile-prefix-map to equivalent assembler option
--debug-prefix-map like it does for -fdebug-prefix-map
it seems a bug in GCC driver.

> ---
>  Makeconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Makeconfig b/Makeconfig
> index 01f8638c2e..5a675e20e3 100644
> --- a/Makeconfig
> +++ b/Makeconfig
> @@ -1067,7 +1067,7 @@ endif
>
>  # The assembler can generate debug information too.
>  ifndef ASFLAGS
> -ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
> +ASFLAGS := $(filter -g% -ffile-prefix-map=% -fdebug-prefix-map=%,$(CFLAGS))
>  endif
>  override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu)
>
> --
> 2.31.1
>
  
Khem Raj April 30, 2021, 7:22 p.m. UTC | #2
On Fri, Apr 30, 2021 at 12:08 PM Khem Raj <raj.khem@gmail.com> wrote:
>
> On Fri, Apr 30, 2021 at 11:28 AM Khem Raj <raj.khem@gmail.com> wrote:
> >
> > -ffile-prefix-map could be used as superset to imply -fdebug-prefix-map
> > as well, therefore it should be propagated too, so cases when
> > -ffile-prefix-map is used but -fdebug-prefix-map is not, then it should
> > still rewire the paths in debug info
>
> hmm noticed that when I remove -fdebug-prefix-map then
> -ffile-prefix-map did not work and its because GCC is not
> translating -ffile-prefix-map to equivalent assembler option
> --debug-prefix-map like it does for -fdebug-prefix-map
> it seems a bug in GCC driver.

infact there already is a bug for gcc driver for this

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93371


>
> > ---
> >  Makeconfig | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/Makeconfig b/Makeconfig
> > index 01f8638c2e..5a675e20e3 100644
> > --- a/Makeconfig
> > +++ b/Makeconfig
> > @@ -1067,7 +1067,7 @@ endif
> >
> >  # The assembler can generate debug information too.
> >  ifndef ASFLAGS
> > -ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
> > +ASFLAGS := $(filter -g% -ffile-prefix-map=% -fdebug-prefix-map=%,$(CFLAGS))
> >  endif
> >  override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu)
> >
> > --
> > 2.31.1
> >
  
Florian Weimer May 1, 2021, 7:26 a.m. UTC | #3
* Khem Raj via Libc-alpha:

> On Fri, Apr 30, 2021 at 11:28 AM Khem Raj <raj.khem@gmail.com> wrote:
>>
>> -ffile-prefix-map could be used as superset to imply -fdebug-prefix-map
>> as well, therefore it should be propagated too, so cases when
>> -ffile-prefix-map is used but -fdebug-prefix-map is not, then it should
>> still rewire the paths in debug info
>
> hmm noticed that when I remove -fdebug-prefix-map then
> -ffile-prefix-map did not work and its because GCC is not
> translating -ffile-prefix-map to equivalent assembler option
> --debug-prefix-map like it does for -fdebug-prefix-map
> it seems a bug in GCC driver.

I haven't look at the patch in detail.  Does the above mean you withdraw
it?

Thanks,
Florian
  
Khem Raj May 1, 2021, 1:26 p.m. UTC | #4
On Sat, May 1, 2021 at 12:26 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> * Khem Raj via Libc-alpha:
>
> > On Fri, Apr 30, 2021 at 11:28 AM Khem Raj <raj.khem@gmail.com> wrote:
> >>
> >> -ffile-prefix-map could be used as superset to imply -fdebug-prefix-map
> >> as well, therefore it should be propagated too, so cases when
> >> -ffile-prefix-map is used but -fdebug-prefix-map is not, then it should
> >> still rewire the paths in debug info
> >
> > hmm noticed that when I remove -fdebug-prefix-map then
> > -ffile-prefix-map did not work and its because GCC is not
> > translating -ffile-prefix-map to equivalent assembler option
> > --debug-prefix-map like it does for -fdebug-prefix-map
> > it seems a bug in GCC driver.
>
> I haven't look at the patch in detail.  Does the above mean you withdraw
> it?

I think it wont be effective unless gcc bug is fixed. So it can be applied or
we can wait for gcc to be fixed.

>
> Thanks,
> Florian
>
  
Florian Weimer May 1, 2021, 1:38 p.m. UTC | #5
* Khem Raj:

> I think it wont be effective unless gcc bug is fixed. So it can be applied or
> we can wait for gcc to be fixed.

Let's wait for the GCC fix, in case it takes a different shape.

Thanks,
Florian
  
Khem Raj May 1, 2021, 5:50 p.m. UTC | #6
On Sat, May 1, 2021 at 6:38 AM Florian Weimer <fweimer@redhat.com> wrote:
>
> * Khem Raj:
>
> > I think it wont be effective unless gcc bug is fixed. So it can be applied or
> > we can wait for gcc to be fixed.
>
> Let's wait for the GCC fix, in case it takes a different shape.
>

sounds good.

> Thanks,
> Florian
>
  

Patch

diff --git a/Makeconfig b/Makeconfig
index 01f8638c2e..5a675e20e3 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -1067,7 +1067,7 @@  endif
 
 # The assembler can generate debug information too.
 ifndef ASFLAGS
-ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
+ASFLAGS := $(filter -g% -ffile-prefix-map=% -fdebug-prefix-map=%,$(CFLAGS))
 endif
 override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu)