Re: [PATCH 3/6] linux-user: Adjust brk for load_bias
On 8/17/23 09:04, Michael Tokarev wrote: 16.08.2023 21:14, Richard Henderson wrote: PIE executables are usually linked at offset 0 and are relocated somewhere during load. The hiaddr needs to be adjusted to keep the brk next to the executable. Cc: qemu-sta...@nongnu.org Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close to executable") FWIW, 1f356e8c013 is v8.1.0-rc2-86, - why did you Cc qemu-stable@? If this "Adjust brk for load_bias" fix isn't supposed to be part of 8.1.0 release, sure thing I'll pick it up for stable-8.1, but it looks like it should be in 8.1.0. Or are you saying 1f356e8c013 should be picked for stable-8.0, together with this one? (We're yet to decide if stable-8.0 should have any recent linux-user changes). This has missed 8.1.0-rc4 and therefore will not be in 8.1.0. I have tagged it stable for stable-8.1 for 8.1.1. r~
Re: [PATCH 3/6] linux-user: Adjust brk for load_bias
On 8/17/23 01:53, Philippe Mathieu-Daudé wrote: On 16/8/23 20:14, Richard Henderson wrote: PIE executables are usually linked at offset 0 and are relocated somewhere during load. The hiaddr needs to be adjusted to keep the brk next to the executable. Cc: qemu-sta...@nongnu.org Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close to executable") Signed-off-by: Richard Henderson --- linux-user/elfload.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index ccfbf82836..ab11f141c3 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -3278,7 +3278,7 @@ static void load_elf_image(const char *image_name, const ImageSource *src, info->start_data = -1; info->end_data = 0; /* Usual start for brk is after all sections of the main executable. */ - info->brk = TARGET_PAGE_ALIGN(hiaddr); + info->brk = TARGET_PAGE_ALIGN(hiaddr + load_bias); Did you got some odd behavior or figured that by code review? Reviewed-by: Philippe Mathieu-Daudé Odd behaviour, easily seen by [heap] being weird or missing. r~
Re: [PATCH 3/6] linux-user: Adjust brk for load_bias
16.08.2023 21:14, Richard Henderson wrote: PIE executables are usually linked at offset 0 and are relocated somewhere during load. The hiaddr needs to be adjusted to keep the brk next to the executable. Cc: qemu-sta...@nongnu.org Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close to executable") FWIW, 1f356e8c013 is v8.1.0-rc2-86, - why did you Cc qemu-stable@? If this "Adjust brk for load_bias" fix isn't supposed to be part of 8.1.0 release, sure thing I'll pick it up for stable-8.1, but it looks like it should be in 8.1.0. Or are you saying 1f356e8c013 should be picked for stable-8.0, together with this one? (We're yet to decide if stable-8.0 should have any recent linux-user changes). /mjt
Re: [PATCH 3/6] linux-user: Adjust brk for load_bias
On 16/8/23 20:14, Richard Henderson wrote: PIE executables are usually linked at offset 0 and are relocated somewhere during load. The hiaddr needs to be adjusted to keep the brk next to the executable. Cc: qemu-sta...@nongnu.org Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close to executable") Signed-off-by: Richard Henderson --- linux-user/elfload.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index ccfbf82836..ab11f141c3 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -3278,7 +3278,7 @@ static void load_elf_image(const char *image_name, const ImageSource *src, info->start_data = -1; info->end_data = 0; /* Usual start for brk is after all sections of the main executable. */ -info->brk = TARGET_PAGE_ALIGN(hiaddr); +info->brk = TARGET_PAGE_ALIGN(hiaddr + load_bias); Did you got some odd behavior or figured that by code review? Reviewed-by: Philippe Mathieu-Daudé
[PATCH 3/6] linux-user: Adjust brk for load_bias
PIE executables are usually linked at offset 0 and are relocated somewhere during load. The hiaddr needs to be adjusted to keep the brk next to the executable. Cc: qemu-sta...@nongnu.org Fixes: 1f356e8c013 ("linux-user: Adjust initial brk when interpreter is close to executable") Signed-off-by: Richard Henderson --- linux-user/elfload.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index ccfbf82836..ab11f141c3 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -3278,7 +3278,7 @@ static void load_elf_image(const char *image_name, const ImageSource *src, info->start_data = -1; info->end_data = 0; /* Usual start for brk is after all sections of the main executable. */ -info->brk = TARGET_PAGE_ALIGN(hiaddr); +info->brk = TARGET_PAGE_ALIGN(hiaddr + load_bias); info->elf_flags = ehdr->e_flags; prot_exec = PROT_EXEC; -- 2.34.1