From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugeniu Rosca Date: Mon, 20 Aug 2018 14:54:09 +0200 Subject: [U-Boot] [PATCH 1/8] UBSAN: run-time undefined behavior sanity checker In-Reply-To: <20180820015132.GF11769@bill-the-cat> References: <20180820000033.25519-1-erosca@de.adit-jv.com> <20180820000033.25519-2-erosca@de.adit-jv.com> <20180820015132.GF11769@bill-the-cat> Message-ID: <20180820125409.GA7882@vmlxhi-102.adit-jv.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Tom, On Sun, Aug 19, 2018 at 09:51:32PM -0400, Tom Rini wrote: > On Mon, Aug 20, 2018 at 02:00:25AM +0200, Eugeniu Rosca wrote: [..] > > To enable UBSAN, two prerequisites must be met from Kconfig perspective: > > - ARCH has to select CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL > > - defconfig has to enable CONFIG_UBSAN > > > > This commit selects CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL for SANDBOX and > > ARM64 (r8a7795_salvator-x_defconfig is the only tested ARM64 platform). > > No defconfig changes are expected, since UBSAN is a development (not > > production) option. With CONFIG_UBSAN disabled, no functional change > > is expected from this commit. > > > > The size increase of sanbox U-Boot (gcc 8.1.0): > > $ size u-boot.sandbox.* > > text data bss dec hex filename > > 1234958 80048 291472 1606478 18834e u-boot.sandbox.default > > 1422710 272240 291472 1986422 1e4f76 u-boot.sandbox.ubsan > > +187752 +192192 0 +379944 > > > > The size increase of H3 Salvator-X U-Boot (aarch64-linux-gnu-gcc 7.2.1): > > $ size u-boot.r8a7795-salvator-x.* > > text data bss dec hex filename > > 589954 23504 263984 877442 d6382 u-boot.r8a7795-salvator-x.default > > 810968 103304 263984 1178256 11fa90 u-boot.r8a7795-salvator-x.ubsan > > +221014 +79800 0 +300814 > > Can we re-work this so that there isn't a size increase unless UBSAN is > enabled? I ask since I think for a v2 we should be able to say more > broadly that just about everyone can enable this, but only out of the > box sandbox should. Sorry for the confusion. This commit alone does not contribute with any U-Boot binary size increase. The numbers provided above assume enabling and disabling CONFIG_UBSAN by hand via menuconfig/defconfig. I could relocate the numbers to a separate patch updating the sandbox_defconfig, if UBSAN is wanted there by default. That said, I think the contents of this commit already complies with your particular request stated above. > > -- > Tom Thanks, Eugeniu.