extern char __pie_overlay_start[];
int __weak pie_arch_fill_tail(void *tail, void *common_start, void *common_end,
- void *overlay_start, void *code_start, void *code_end)
+ void *overlay_start, void *code_start, void *code_end,
+ void *rel_start, void *rel_end)
{
return 0;
}
return 0;
}
-struct pie_chunk *__pie_load_data(struct gen_pool *pool, void *code_start,
- void *code_end, bool phys)
+struct pie_chunk *__pie_load_data(struct gen_pool *pool, bool phys,
+ void *code_start, void *code_end,
+ void *rel_start, void *rel_end)
{
struct pie_chunk *chunk;
unsigned long offset;
/* Calculate the tail size */
ret = pie_arch_fill_tail(NULL, __pie_common_start, __pie_common_end,
- __pie_overlay_start, code_start, code_end);
+ __pie_overlay_start, code_start, code_end,
+ rel_start, rel_end);
if (ret < 0)
goto err;
tail_sz = ret;
/* Fill in tail data */
ret = pie_arch_fill_tail(tail, __pie_common_start, __pie_common_end,
- __pie_overlay_start, code_start, code_end);
+ __pie_overlay_start, code_start, code_end,
+ rel_start, rel_end);
if (ret < 0)
goto err_alloc;