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

Message ID 20210430182814.1164481-1-raj.khem@gmail.com
State New
Headers show
Series
  • Propagate -ffile-prefix-map from CFLAGS to ASFLAGS.
Related show

Commit Message

Borislav Petkov via Libc-alpha April 30, 2021, 6:28 p.m.
-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(-)

-- 
2.31.1

Comments

Borislav Petkov via Libc-alpha April 30, 2021, 7:08 p.m. | #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

>
Borislav Petkov via Libc-alpha April 30, 2021, 7:22 p.m. | #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

> >
Borislav Petkov via Libc-alpha May 1, 2021, 7:26 a.m. | #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
Borislav Petkov via Libc-alpha May 1, 2021, 1:26 p.m. | #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

>
Borislav Petkov via Libc-alpha May 1, 2021, 1:38 p.m. | #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
Borislav Petkov via Libc-alpha May 1, 2021, 5:50 p.m. | #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)