Re: [PATCH] modpost.c: Add .text.unlikely to TEXT_SECTIONS

Rusty Russell
2013-04-29T03:18:21Z

Tom Rini <trini@ti.com> writes:

> Recent gcc's may place functions into the .text.unlikely section and we
> need to check this section as well for section mismatches now otherwise
> we may have false negatives for this test.

Hmm, I don't think it's all that recent, is it? I can find it back to
gcc 4.0.4:

`-freorder-functions'
Reorder functions in the object file in order to improve code
locality. This is implemented by using special subsections
`.text.hot' for most frequently executed functions and
`.text.unlikely' for unlikely executed functions. Reordering is
done by the linker so object file format must support named
sections and linker must place them in a reasonable way.

Also profile feedback must be available in to make this option
effective. See `-fprofile-arcs' for details.

Enabled at levels `-O2', `-O3', `-Os'.

The comment is the same in in gcc 4.7.

So is your real issue that this section is generated with
-fprofile-arcs, or has something changed with gcc 4.8, or...?

Thanks,
Rusty.

> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-kbuild@vger.kernel.org
> Signed-off-by: Tom Rini <trini@ti.com>
> ---
> scripts/mod/modpost.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index ff36c50..13ff12f 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -880,7 +880,7 @@ static void check_section(const char *modname, struct elf_info *elf,
> #define ALL_EXIT_SECTIONS EXIT_SECTIONS, ALL_XXXEXIT_SECTIONS
>
> #define DATA_SECTIONS ".data$", ".data.rel$"
> -#define TEXT_SECTIONS ".text$"
> +#define TEXT_SECTIONS ".text$", ".text.unlikely$"
>
> #define INIT_SECTIONS ".init.*"
> #define CPU_INIT_SECTIONS ".cpuinit.*"
> --
> 1.7.9.5