Re: [RFC v3 10/13] jump_label: port __jump_table to linker tables

Josh Poimboeuf
2016-07-22T21:49:55Z

On Fri, Jul 22, 2016 at 02:24:44PM -0700, Luis R. Rodriguez wrote:
> diff --git a/tools/objtool/special.c b/tools/objtool/special.c
> index bff8abb3a4aa..f0ad369f994b 100644
> --- a/tools/objtool/special.c
> +++ b/tools/objtool/special.c
> @@ -26,6 +26,10 @@
> #include "special.h"
> #include "warn.h"
>
> +#include "../../include/asm-generic/sections.h"
> +#include "../../include/asm-generic/tables.h"
> +#include "../../include/linux/stringify.h"
> +
> #define EX_ENTRY_SIZE 12
> #define EX_ORIG_OFFSET 0
> #define EX_NEW_OFFSET 4
> @@ -63,7 +67,9 @@ struct special_entry entries[] = {
> .feature = ALT_FEATURE_OFFSET,
> },
> {
> - .sec = "__jump_table",
> + .sec = __stringify(SECTION_TBL(SECTION_DATA,
> + __jump_table,
> + SECTION_ORDER_ANY)),
> .jump_or_nop = true,
> .size = JUMP_ENTRY_SIZE,
> .orig = JUMP_ORIG_OFFSET,

(continuing our discussion from another thread...)

I think tools code isn't allowed to include kernel files because the
tools subdirectory is supposed to be completely independent.

As far as I can tell, the section name will always be
".data.tbl.__jump_table.any". Is that true? If so, any reason why we
can't just hard-code the string here? As you saw, if the string
changes, objtool will complain and 0-day will report it.

--
Josh