Hi Ammar,
On Thu, Dec 22, 2022 at 10:51:26AM +0700, Ammar Faizi wrote:
From: Ammar Faizi ammarfaizi2@gnuweeb.org
Hi,
This series adds signal handling support to the nolibc subsystem.
(...)
Thank you! I'll have a look at this this week-end. I noticed one thing that we'll need to discuss further:
Extra nolibc updates.
Apart from the signal handling support. This series also contains nolibc updates, they are:
- getpagesize() support.
This one relies on /proc/self/auxv, but we'll quickly run into a chicken-and-egg situation given that nolibc is used by init programs that mount /proc. Instead I think that we should modify the _start code to retrieve the auxv at startup and store it somewhere. This "somewhere" is not yet defined, but I'm thinking that it could deserve reserving some room in the stack to store some nolibc-defined information (possibly even a copy of a pointer to environ and/or errno) and figure a reliable and simple way to access this. Note that one way could also be to know that it's after the NULL that follows envp, and to start from environ. In fact there are plenty of ways and we just need to decide what's the least ugly. But once we have access to the auxv from the process, then we could implement a getauxval() function to retrieve the information you need for getpagesize().
Thanks! Willy