lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20240324085353.GA1382477@ravnborg.org>
Date: Sun, 24 Mar 2024 09:53:53 +0100
From: Sam Ravnborg <sam@...nborg.org>
To: Koakuma <koachan@...tonmail.com>
Cc: "sparclinux@...r.kernel.org" <sparclinux@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"davem@...emloft.net" <davem@...emloft.net>,
	"ndesaulniers@...gle.com" <ndesaulniers@...gle.com>,
	"arnd@...db.de" <arnd@...db.de>
Subject: Re: [sparc] Use of -fcall-used-* flags in Makefile?

Hi Koakuma.

On Sat, Mar 23, 2024 at 04:37:27PM +0000, Koakuma wrote:
> Hello Sam,
> 
> Sam Ravnborg <sam@...nborg.org> wrote:
> 
> > Hi Koakuma,
> > Looking at https://github.com/gcc-mirror/gcc/blob/master/gcc/config/sparc/sparc.h
> > I read that:
> > 
> > On v9 systems:
> > g1,g5 are free to use as temporaries, and are free to use between calls
> > ...
> > g6-g7 are reserved for the operating system (or application in
> > embedded case).
> > 
> > Based on the above I would assume gcc do not change behaviour with or
> > without -fcall-used-g7.
> > [...]
> > For sparc32 the above file says:
> > 
> > g5 through g7 are reserved for the operating system.
> > 
> > So again - it looks like -fcall-used-g5 -fcall-used-g7 should have no
> > effect here and verification on a real target would be nice.
> > 
> > Sam
> 
> >From my understanding (and looking at the codegen results) those flags
> forces GCC to treat the named register as volatile, despite what the ABI
> says. However, I also believe that removing them wouldn't be harmful?
> 
> To quote my reasoning in the LLVM tracker:
> > omitting the flags shouldn't be harmful either - compilers will now
> > simply refuse to touch them, and any assembly code that happens
> > to touch them would still work like usual (because Linux' conventions
> > already treats them as volatile anyway).
> 
> But I am not entirely sure about it, that is why it'd be great if there's
> some explaination on why those flags were added in the first place.
> 
> > I do not have a sparc64 system at my hands - and for this qemu may not
> > cut it. But it would be super if someone with a working sparc64 target
> > could verify if the kernel could be built and works without
> > -fcall-used-g7.
> 
> I am currently running a build with those flags taken out on a T5120,
> and the kernel seems to be running okay for what I do (LLVM development),
> but I don't know if there are more comprehensive test suite for me
> to try on.

I tried to build a sparc32 kernel with the two -fcall-used-g5 -fcall-used-g7
flags dropped. Everything worked for me in qemu - but then I only booted
to a prompt and browsed around a little.

>From your explanation and our limited testing it seems likely the flags
can be dropped, but I cannot say for sure.

Unless others chime in maybe try to send in patches to drop the flags
from sparc32 and sparc64 and see how it goes.

	Sam

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ