Hi DJ, > Date: 2026-08-06 18:15:15-0400 > From: DJ Delorie > > Alejandro Colomar writes: > > You forgot to sign. > > I will never remember that... :-P > > >> +The resulting data is read when a new process is created by > >> +.IR ld.so . > > > > Sorry for noticing this in v4; I forgot about it. I see this unresolved > > issue from earlier versions remains. > > A program is a file on disk. A process is a running memory image. Yup. fork(3) creates a process (produces a new PID). execve(2) replaces the image of the current process with a program read from disk (or in short, executes a program in the current process). > > Neither fork() nor exec() cause the tunables to be loaded, the process > itself has to do that. For dynamic ELF programs/processes built with > glibc, ld.so does it before it passes control to the ELF image. There > are other types of programs/processes that do not use ld.so and thus do > not read the tunables cache (which is called "ld.so.cache" for a reason ;-) Hmmmmm, let's say you call execve(2) several times without any fork(2)s. Assuming a that the program paths that you pass to execve(2) are all dynamic ELF programs built with glibc, I guess for every time you call execve(2), ld.so(8) will be run, and the tunables stored in ld.so.cache will be used. Is this correct? #include int main(int, char *argv[]) { sleep(1); execve("proc/self/exe", argv, NULL); } Let's also say you fork(2) several times, without any execve(2) calls. I suppose that won't trigger any of this, right? #include int main(void) { for (int i = 0; i < 10; i++) { sleep(1); fork(); } } From my understanding, only the first program will trigger this more than once, right? If so, I'd use the same wording that execve(2) uses: execve() executes the program referred to by path. That is, execve(2) executes programs, and ld.so.cache is read when a program is executed (in the current process). > > I don't know how to say this clearly with fewer words... > > >> +The syntax allows lines to start with the keyword > >> +.I include > > > > s/I/B/ (since it's a literal, not a variable) > > Fixed. > Cheers, Alex --