core/stack: gcc6 - fix __builtin_frame_address issue
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
This commit is contained in:
parent
4f4f4996df
commit
cc59e6fb0a
@ -1,6 +1,6 @@
|
|||||||
Name: opal-prd
|
Name: opal-prd
|
||||||
Version: 5.1.13
|
Version: 5.1.13
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
Summary: OPAL Processor Recovery Diagnostics Daemon
|
Summary: OPAL Processor Recovery Diagnostics Daemon
|
||||||
|
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
@ -18,6 +18,7 @@ Source0: https://github.com/open-power/skiboot/archive/skiboot-%{version}.tar.gz
|
|||||||
Source1: opal-prd.socket
|
Source1: opal-prd.socket
|
||||||
Source2: opal-prd.service
|
Source2: opal-prd.service
|
||||||
Patch0: skiboot-1.1.13-opal-prd-makefile-fix.patch
|
Patch0: skiboot-1.1.13-opal-prd-makefile-fix.patch
|
||||||
|
Patch1: skiboot-1.1.13-gcc6-builtin-frame-addr-fix.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This package provides a daemon to load and run the OpenPower firmware's
|
This package provides a daemon to load and run the OpenPower firmware's
|
||||||
@ -50,6 +51,7 @@ services to the OS (Linux) on IBM Power and OpenPower systems.
|
|||||||
|
|
||||||
%setup -q -n skiboot-skiboot-%{version}
|
%setup -q -n skiboot-skiboot-%{version}
|
||||||
%patch0 -p1 -b .opal-prd-makefile-fix
|
%patch0 -p1 -b .opal-prd-makefile-fix
|
||||||
|
%patch1 -p1 -b .gcc6-builtin-frame-addr-fix
|
||||||
|
|
||||||
%build
|
%build
|
||||||
OPAL_PRD_VERSION=%{version} make V=1 CFLAGS="%{optflags}" -C external/opal-prd
|
OPAL_PRD_VERSION=%{version} make V=1 CFLAGS="%{optflags}" -C external/opal-prd
|
||||||
@ -103,6 +105,9 @@ install -m 644 -p skiboot.lid %{buildroot}%{_datadir}/qemu/skiboot.lid
|
|||||||
%{_datadir}/qemu/
|
%{_datadir}/qemu/
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 26 2016 Vasant Hegde <hegdevasant@linux.vnet.ibm.com> - 5.1.13-4
|
||||||
|
- Fix stack frame compilation issue on gcc6
|
||||||
|
|
||||||
* Mon Feb 22 2016 Vasant Hegde <hegdevasant@linux.vnet.ibm.com> - 5.1.13-3
|
* Mon Feb 22 2016 Vasant Hegde <hegdevasant@linux.vnet.ibm.com> - 5.1.13-3
|
||||||
- Fix opal-prd recompilation issse during install
|
- Fix opal-prd recompilation issse during install
|
||||||
|
|
||||||
|
48
skiboot-1.1.13-gcc6-builtin-frame-addr-fix.patch
Normal file
48
skiboot-1.1.13-gcc6-builtin-frame-addr-fix.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From d46ef7856c5b8f6f883350fc9523ca6c3399a1a5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
|
||||||
|
Date: Fri, 26 Feb 2016 11:26:54 +0530
|
||||||
|
Subject: [PATCH] core/stack: Fix __builtin_frame_address issue
|
||||||
|
|
||||||
|
GCC 6 warns if we pass nonzero values to __builtin_frame_address(). Hence
|
||||||
|
reorganize the code and pass zero to __builtin_frame_address().
|
||||||
|
|
||||||
|
core/stack.c: In function '__backtrace':
|
||||||
|
core/stack.c:34:17: error: calling '__builtin_frame_address' with a nonzero argument is unsafe [-Werror=frame-address]
|
||||||
|
unsigned long *fp = __builtin_frame_address(1);
|
||||||
|
|
||||||
|
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
|
||||||
|
---
|
||||||
|
core/stack.c | 7 +++++--
|
||||||
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/core/stack.c b/core/stack.c
|
||||||
|
index 17f89d4..ead2b6d 100644
|
||||||
|
--- a/core/stack.c
|
||||||
|
+++ b/core/stack.c
|
||||||
|
@@ -31,10 +31,14 @@ extern uint32_t _stext, _etext;
|
||||||
|
void __nomcount __backtrace(struct bt_entry *entries, unsigned int *count)
|
||||||
|
{
|
||||||
|
unsigned int room = *count;
|
||||||
|
- unsigned long *fp = __builtin_frame_address(1);
|
||||||
|
+ unsigned long *fp = __builtin_frame_address(0);
|
||||||
|
+
|
||||||
|
+ if (!fp || (unsigned long)fp > top_of_ram)
|
||||||
|
+ return;
|
||||||
|
|
||||||
|
*count = 0;
|
||||||
|
while(room) {
|
||||||
|
+ fp = (unsigned long *)fp[0];
|
||||||
|
if (!fp || (unsigned long)fp > top_of_ram)
|
||||||
|
break;
|
||||||
|
entries->sp = (unsigned long)fp;
|
||||||
|
@@ -42,7 +46,6 @@ void __nomcount __backtrace(struct bt_entry *entries, unsigned int *count)
|
||||||
|
entries++;
|
||||||
|
*count = (*count) + 1;
|
||||||
|
room--;
|
||||||
|
- fp = (unsigned long *)fp[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.5.0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user