diff --git a/0001-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch b/0001-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch deleted file mode 100644 index 6b7448a..0000000 --- a/0001-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Thomas Huth -Date: Wed, 18 Jul 2018 15:44:59 +0200 -Subject: [PATCH] make.rules: Compile SLOF with -fno-asynchronous-unwind-tables - -With the new GCC 8, the asynchronous-unwind-tables are always enabled. -We don't need this for SLOF, so disable them to save 32 kiB in the -boot_rom.bin. - -Signed-off-by: Thomas Huth -Signed-off-by: Alexey Kardashevskiy -(cherry picked from commit 5cd96a5ba9782d6f1c2d53d02d5a265fbcae580b) ---- - make.rules | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/make.rules b/make.rules -index 3067314..acbc8ab 100644 ---- a/make.rules -+++ b/make.rules -@@ -73,8 +73,9 @@ RANLIB ?= $(CROSS)ranlib - CPP ?= $(CROSS)cpp - - WARNFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -Wformat-security --CFLAGS ?= -g -O2 -fno-builtin -ffreestanding -nostdinc -msoft-float -fno-strict-aliasing \ -- -mno-altivec -mabi=no-altivec -fno-stack-protector $(WARNFLAGS) -+CFLAGS ?= -g -O2 -fno-builtin -ffreestanding -nostdinc -msoft-float \ -+ -fno-strict-aliasing -mno-altivec -mabi=no-altivec \ -+ -fno-stack-protector -fno-asynchronous-unwind-tables $(WARNFLAGS) - - export CC AS LD CLEAN OBJCOPY OBJDUMP STRIP AR RANLIB CFLAGS - diff --git a/0002-romfs-tools-Remove-superfluous-union-around-the-rom-.patch b/0002-romfs-tools-Remove-superfluous-union-around-the-rom-.patch deleted file mode 100644 index 9bd0128..0000000 --- a/0002-romfs-tools-Remove-superfluous-union-around-the-rom-.patch +++ /dev/null @@ -1,111 +0,0 @@ -From: Thomas Huth -Date: Thu, 19 Jul 2018 14:46:24 +0200 -Subject: [PATCH] romfs/tools: Remove superfluous union around the rom header - struct - -Accessing the struct with memset and memcpy can also be done without the -union wrapper. While we're at it, also remove the FLASHFS_HEADER_DATA_SIZE -macre and use sizeof(stHeader) instead. - -Signed-off-by: Thomas Huth -Signed-off-by: Alexey Kardashevskiy -(cherry picked from commit d4443f17c956e77df7bb23b2d19462faae9f4b23) ---- - include/calculatecrc.h | 1 - - romfs/tools/create_crc.c | 29 +++++++++++++---------------- - 2 files changed, 13 insertions(+), 17 deletions(-) - -diff --git a/include/calculatecrc.h b/include/calculatecrc.h -index a19a229..667ea81 100644 ---- a/include/calculatecrc.h -+++ b/include/calculatecrc.h -@@ -17,7 +17,6 @@ - #define FLASHFS_HEADER_SIZE_ADDR 0x08 // uint64_t position of total flash header size value - - #define FLASHFS_ROMADDR 0x00 // uint64_t position of pointer to next file --#define FLASHFS_HEADER_DATA_SIZE 0x68 // 104 bytes of total header data size - #define CRC_METHODE Ethernet_32 // define the CRC genarator (CRC 16 bit to 64 is supported) - - //--- header format --------------------------------- -diff --git a/romfs/tools/create_crc.c b/romfs/tools/create_crc.c -index 5a76b9c..e354339 100644 ---- a/romfs/tools/create_crc.c -+++ b/romfs/tools/create_crc.c -@@ -10,6 +10,7 @@ - * IBM Corporation - initial implementation - *****************************************************************************/ - -+#include - #include - #include - #include -@@ -71,21 +72,18 @@ createHeaderImage(int notime) - char dastr[16] = { 0, }; - unsigned long long da = 0; - -- union { -- unsigned char pcArray[FLASHFS_HEADER_DATA_SIZE]; -- struct stH stHeader; -- } uHeader; -+ struct stH stHeader; - - /* initialize Header */ -- memset(uHeader.pcArray, 0x00, FLASHFS_HEADER_DATA_SIZE); -+ memset(&stHeader, 0x00, sizeof(stHeader)); - - /* read driver info */ - if (NULL != (pcVersion = getenv("DRIVER_NAME"))) { -- strncpy(uHeader.stHeader.version, pcVersion, 16); -+ strncpy(stHeader.version, pcVersion, 16); - } else if (NULL != (pcVersion = getenv("USER"))) { -- strncpy(uHeader.stHeader.version, pcVersion, 16); -+ strncpy(stHeader.version, pcVersion, 16); - } else if (pcVersion == NULL) { -- strncpy(uHeader.stHeader.version, "No known user!", 16); -+ strncpy(stHeader.version, "No known user!", 16); - } - - if (!notime) { -@@ -104,18 +102,18 @@ createHeaderImage(int notime) - } - da = cpu_to_be64(strtoll(dastr, NULL, 16)); - } -- memcpy(uHeader.stHeader.date, &da, 8); -+ memcpy(stHeader.date, &da, 8); - - /* write Magic value into data stream */ -- strncpy(uHeader.stHeader.magic, FLASHFS_MAGIC, 8); -+ strncpy(stHeader.magic, FLASHFS_MAGIC, 8); - /* write platform name into data stream */ -- strcpy(uHeader.stHeader.platform_name, FLASHFS_PLATFORM_MAGIC); -+ strcpy(stHeader.platform_name, FLASHFS_PLATFORM_MAGIC); - /* write platform revision into data stream */ -- strcpy(uHeader.stHeader.platform_revision, FLASHFS_PLATFORM_REVISION); -+ strcpy(stHeader.platform_revision, FLASHFS_PLATFORM_REVISION); - - - /* fill end of file info (8 bytes of FF) into data stream */ -- uHeader.stHeader.ui64FileEnd = -1; -+ stHeader.ui64FileEnd = -1; - - /* read address of next file and address of header date, both are 64 bit values */ - ui64RomAddr = 0; -@@ -129,7 +127,7 @@ createHeaderImage(int notime) - - /* calculate final flash-header-size and flash-file-size */ - /* calculate end addr of header */ -- ui64globalHeaderSize = (uint32_t) ui64DataAddr + (uint32_t) FLASHFS_HEADER_DATA_SIZE; -+ ui64globalHeaderSize = (uint32_t) ui64DataAddr + sizeof(stHeader); - /* cut 64 bit to place CRC for File-End */ - ui64globalHeaderSize -= 8; - /* add 64 bit to place CRC behind File-End */ -@@ -143,8 +141,7 @@ createHeaderImage(int notime) - /* fill free space in Header with zeros */ - memset(&pucFileStream[ui64DataAddr], 0, (ui64RomAddr - ui64DataAddr)); - /* place data to header */ -- memcpy(&pucFileStream[ui64DataAddr], uHeader.pcArray, -- FLASHFS_HEADER_DATA_SIZE); -+ memcpy(&pucFileStream[ui64DataAddr], &stHeader, sizeof(stHeader)); - - /* insert header length into data stream */ - *(uint64_t *) (pucFileStream + FLASHFS_HEADER_SIZE_ADDR) = diff --git a/0003-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch b/0003-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch deleted file mode 100644 index 724b44d..0000000 --- a/0003-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch +++ /dev/null @@ -1,66 +0,0 @@ -From: Thomas Huth -Date: Thu, 19 Jul 2018 14:46:25 +0200 -Subject: [PATCH] romfs/tools: Silence GCC 8.1 compiler warning with - FLASHFS_MAGIC -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -GCC 8.1 introduce some new warnings which affect create_crc.c. One of -them is: - -create_crc.c: In function ‘createHeaderImage’: -create_crc.c:110:2: warning: ‘strncpy’ output truncated before terminating nul - copying 8 bytes from a string of the same length [-Wstringop-truncation] - strncpy(uHeader.stHeader.magic, FLASHFS_MAGIC, 8); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Initialize the header struct statically here instead to silence the warning. - -Suggested-by: Segher Boessenkool -Signed-off-by: Thomas Huth -Signed-off-by: Alexey Kardashevskiy -(cherry picked from commit 49482e06ea74652a70a8cd067b852cc142021c03) ---- - romfs/tools/create_crc.c | 21 ++++++--------------- - 1 file changed, 6 insertions(+), 15 deletions(-) - -diff --git a/romfs/tools/create_crc.c b/romfs/tools/create_crc.c -index e354339..475b184 100644 ---- a/romfs/tools/create_crc.c -+++ b/romfs/tools/create_crc.c -@@ -72,10 +72,12 @@ createHeaderImage(int notime) - char dastr[16] = { 0, }; - unsigned long long da = 0; - -- struct stH stHeader; -- -- /* initialize Header */ -- memset(&stHeader, 0x00, sizeof(stHeader)); -+ struct stH stHeader = { -+ .magic = FLASHFS_MAGIC, -+ .platform_name = FLASHFS_PLATFORM_MAGIC, -+ .platform_revision = FLASHFS_PLATFORM_REVISION, -+ .ui64FileEnd = -1, -+ }; - - /* read driver info */ - if (NULL != (pcVersion = getenv("DRIVER_NAME"))) { -@@ -104,17 +106,6 @@ createHeaderImage(int notime) - } - memcpy(stHeader.date, &da, 8); - -- /* write Magic value into data stream */ -- strncpy(stHeader.magic, FLASHFS_MAGIC, 8); -- /* write platform name into data stream */ -- strcpy(stHeader.platform_name, FLASHFS_PLATFORM_MAGIC); -- /* write platform revision into data stream */ -- strcpy(stHeader.platform_revision, FLASHFS_PLATFORM_REVISION); -- -- -- /* fill end of file info (8 bytes of FF) into data stream */ -- stHeader.ui64FileEnd = -1; -- - /* read address of next file and address of header date, both are 64 bit values */ - ui64RomAddr = 0; - ui64DataAddr = 0; diff --git a/0004-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch b/0004-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch deleted file mode 100644 index b51ac64..0000000 --- a/0004-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch +++ /dev/null @@ -1,64 +0,0 @@ -From: Thomas Huth -Date: Mon, 23 Jul 2018 15:19:44 +0200 -Subject: [PATCH] romfs/tools: Silence more compiler warnings with GCC 8.1 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -GCC 8 complains about the following usages of strncpy, too: - -create_crc.c:86:3: warning: ‘strncpy’ specified bound 16 equals destination - size [-Wstringop-truncation] - strncpy(uHeader.stHeader.version, pcVersion, 16); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -create_crc.c:84:3: warning: ‘strncpy’ specified bound 16 equals destination - size [-Wstringop-truncation] - strncpy(uHeader.stHeader.version, pcVersion, 16); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Let's work around the issue by using memcpy instead. - -Signed-off-by: Thomas Huth -Signed-off-by: Alexey Kardashevskiy -(cherry picked from commit d8a9354c2a351360da438826c95cf78efcaaf1b0) ---- - romfs/tools/create_crc.c | 19 ++++++++++++------- - 1 file changed, 12 insertions(+), 7 deletions(-) - -diff --git a/romfs/tools/create_crc.c b/romfs/tools/create_crc.c -index 475b184..abc373b 100644 ---- a/romfs/tools/create_crc.c -+++ b/romfs/tools/create_crc.c -@@ -32,6 +32,11 @@ static uint64_t ui64globalHeaderSize = 0; - /* flag to filter detect the header in buildDataStream() */ - static int iglobalHeaderFlag = 1; - -+static size_t min(size_t a, size_t b) -+{ -+ return a < b ? a : b; -+} -+ - /** - * Build the file image and store it as Data Stream of bytes - * calculate a first CRC for the first file and -@@ -80,13 +85,13 @@ createHeaderImage(int notime) - }; - - /* read driver info */ -- if (NULL != (pcVersion = getenv("DRIVER_NAME"))) { -- strncpy(stHeader.version, pcVersion, 16); -- } else if (NULL != (pcVersion = getenv("USER"))) { -- strncpy(stHeader.version, pcVersion, 16); -- } else if (pcVersion == NULL) { -- strncpy(stHeader.version, "No known user!", 16); -- } -+ pcVersion = getenv("DRIVER_NAME"); -+ if (!pcVersion) -+ pcVersion = getenv("USER"); -+ if (!pcVersion) -+ pcVersion = "unknown"; -+ memcpy(stHeader.version, pcVersion, -+ min(strlen(pcVersion), sizeof(stHeader.version))); - - if (!notime) { - /* read time and write it into data stream */ diff --git a/SLOF.spec b/SLOF.spec index 77afc42..41ef572 100644 --- a/SLOF.spec +++ b/SLOF.spec @@ -1,7 +1,6 @@ -%global gittagdate 20180702 +%global gittagdate 20190114 %global gittag qemu-slof-%{gittagdate} - # Disable debuginfo because it is of no use to us. %global debug_package %{nil} @@ -11,7 +10,7 @@ Name: SLOF Version: 0.1.git%{gittagdate} -Release: 3%{?dist} +Release: 1%{?dist} Summary: Slimline Open Firmware License: BSD @@ -26,12 +25,6 @@ URL: http://www.openfirmware.info/SLOF # --prefix=SLOF-{gittagdate}/ {gittag} Source0: SLOF-%{gittagdate}.tar.gz -# Fix gcc 8.1 build compat (bz #1653655) -Patch0001: 0001-make.rules-Compile-SLOF-with-fno-asynchronous-unwind.patch -Patch0002: 0002-romfs-tools-Remove-superfluous-union-around-the-rom-.patch -Patch0003: 0003-romfs-tools-Silence-GCC-8.1-compiler-warning-with-FL.patch -Patch0004: 0004-romfs-tools-Silence-more-compiler-warnings-with-GCC-.patch - %if 0%{?cross:1} BuildArch: noarch @@ -81,6 +74,9 @@ cp -a boot_rom.bin %{buildroot}%{_datadir}/qemu/slof.bin %changelog +* Wed Mar 27 2019 Cole Robinson - 0.1.git20190114-1 +- Update to SLOF 20190114 for qemu-4.0 + * Thu Jan 31 2019 Fedora Release Engineering - 0.1.git20180702-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild diff --git a/sources b/sources index 1598c23..586668b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (SLOF-20180702.tar.gz) = a709d0ff4539817a449d7a429e4869fcce54137fc00dfd3424c39b2e2b0a73d4d8cff8dda3d9e37236396e735f75455c2d39872260df765d4ea8061559898f58 +SHA512 (SLOF-20190114.tar.gz) = 948034f74627fb05047cdbef92ac35679ea1b551cbe5e4e545e0703e005b86067fc254ee32925334060b283fedd73a2df3f387df17f03a75b392ad18bb00b38e