2007-10-18 22:12:16

by Roland McGrath

[permalink] [raw]
Subject: [PATCH] ia64 vDSO vs --build-id

When gcc uses --build-id by default, the gate.lds.S linker script runs afoul
of the new note section and produces a bad DSO image. This fixes it.

Signed-off-by: Roland McGrath <[email protected]>

--- a/arch/ia64/kernel/gate.lds.S
+++ b/arch/ia64/kernel/gate.lds.S
@@ -20,6 +20,8 @@ SECTIONS
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }

+ .note : { *(.note*) } :readable :note
+
.dynamic : { *(.dynamic) } :readable :dynamic

/*
@@ -83,6 +85,7 @@ PHDRS
epc PT_LOAD FILEHDR PHDRS FLAGS(1); /* PF_X */
#endif
dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
+ note PT_NOTE FLAGS(4); /* PF_R */
unwind PT_IA_64_UNWIND;
}


2007-10-19 10:28:27

by Denys Vlasenko

[permalink] [raw]
Subject: Re: [PATCH] ia64 vDSO vs --build-id

On Thursday 18 October 2007 23:11, Roland McGrath wrote:
> When gcc uses --build-id by default, the gate.lds.S linker script runs afoul
> of the new note section and produces a bad DSO image. This fixes it.

I wonder why we bother having --build-id.
--
vda

2007-10-25 16:08:31

by Doug Chapman

[permalink] [raw]
Subject: Re: [PATCH] ia64 vDSO vs --build-id

On Thu, 2007-10-18 at 15:11 -0700, Roland McGrath wrote:
> When gcc uses --build-id by default, the gate.lds.S linker script runs afoul
> of the new note section and produces a bad DSO image. This fixes it.
>
> Signed-off-by: Roland McGrath <[email protected]>
>
> --- a/arch/ia64/kernel/gate.lds.S
> +++ b/arch/ia64/kernel/gate.lds.S
> @@ -20,6 +20,8 @@ SECTIONS
> .gnu.version_d : { *(.gnu.version_d) }
> .gnu.version_r : { *(.gnu.version_r) }
>
> + .note : { *(.note*) } :readable :note
> +
> .dynamic : { *(.dynamic) } :readable :dynamic
>
> /*
> @@ -83,6 +85,7 @@ PHDRS
> epc PT_LOAD FILEHDR PHDRS FLAGS(1); /* PF_X */
> #endif
> dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
> + note PT_NOTE FLAGS(4); /* PF_R */
> unwind PT_IA_64_UNWIND;
> }
>
> -

Any news on this? It does not appear to have been commited to git.
This issue is blocking our bringup of Fedora on ia64. The Fedora gcc
uses the --build-id option by default leading to a hang during bootup
without this patch.

thanks,

- Doug