<div dir="ltr"><div>ah, yeah, i missed it because it's not in the syscall itself --- it's in macros that the syscall references:</div><div><br></div>#ifdef COMPAT_UTS_MACHINE<br>#define override_architecture(name) \<br>>-(personality(current->personality) == PER_LINUX32 && \<br>>- copy_to_user(name->machine, COMPAT_UTS_MACHINE, \<br>>->-      sizeof(COMPAT_UTS_MACHINE)))<br>#else<br>#define override_architecture(name)>0<br>#endif<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 1, 2021 at 10:24 AM Rob Landley <<a href="mailto:rob@landley.net">rob@landley.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 9/30/21 8:48 PM, enh wrote:<br>
> > On Tue, Sep 28, 2021, 18:04 Rob Landley <<a href="mailto:rob@landley.net" target="_blank">rob@landley.net</a><br>
> > That said, according to the man page literally all linux32 does is tell<br>
> > uname to lie. It has no actual effect on the rest of the ABI. (There are<br>
> > setarch options that do, but I didn't implement setarch...)<br>
><br>
> Not uname, afaik: it tells the arm64 kernel to lie when you look at<br>
> /proc/cpuinfo<br>
> though... <a href="https://elixir.bootlin.com/linux/latest/A/ident/PER_LINUX32" rel="noreferrer" target="_blank">https://elixir.bootlin.com/linux/latest/A/ident/PER_LINUX32</a><br>
> <<a href="https://elixir.bootlin.com/linux/latest/A/ident/PER_LINUX32" rel="noreferrer" target="_blank">https://elixir.bootlin.com/linux/latest/A/ident/PER_LINUX32</a>><br>
<br>
It changes what's returned by the uname() system call. (The uname command is 90%<br>
just passing along data from uname(2).)<br>
<br>
Rob<br>
</blockquote></div>