Aux vec is used in things like SSP, so disabling aux would use a guessable value for SSP, iirc static linking still uses the aux vec for SSP On Mon, Jun 27, 2016, 2:34 PM Daniel Wilkerson wrote: > Ah, thank you. From that page: > > This function is a nonstandard glibc extension. > > And: > > The primary consumer of the information in the auxiliary vector is > the dynamic linker ld-linux.so(8). The auxiliary vector is a > convenient and efficient shortcut that allows the kernel to > communicate a certain set of standard information that the dynamic > linker usually or always needs. In some cases, the same information > could be obtained by system calls, but using the auxiliary vector is > cheaper. > > It seems therefore that if I am doing static linking that it is safe > to simply provide an empty aux vector? > > Daniel > > On Mon, Jun 27, 2016 at 2:00 PM, Bobby Bingham > wrote: > > On Mon, Jun 27, 2016 at 01:07:59PM -0700, Daniel Wilkerson wrote: > >> This seems to initalize aux to be all zeros, so it seems that in > >> theory all of the aux values could be optional: > >> > >> size_t i, *auxv, aux[AUX_CNT] = { 0 }; > >> > >> What I'm wondering is where to find the semantics of all of the aux > >> names; I could hunt through all of the code, but any high-level > >> suggestions you could provide could help a lot. As a bonus, which > >> ones might not have sensible defaults and are actually non-optional, > >> if any. > > > > The getauxval man page is a good starting point: > > http://man7.org/linux/man-pages/man3/getauxval.3.html > > > > -- > > Bobby >