Skip to content

Commit

Permalink
Revert "gator=r3,v6.9"
Browse files Browse the repository at this point in the history
:Release Notes:
Even 6.9 version isn't good enough for 5.10 rpi kernel, lets revert the upgrade
and remove from rpi images for now.

:Detailed Notes:

:Testing Performed:
Only build tested.

:QA Notes:
No change to image.

:Issues Addressed:
[PLAT-124341] Create GPVB with Yocto 3.3 Hardknott

Change-Id: I4ea790c289da779cd964360a3c3e4d4f9923aeac
  • Loading branch information
shr-project committed Apr 20, 2021
1 parent f4674ac commit d4bc575
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 44 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/daemon/common.mk b/daemon/common.mk
index dfd912d..72e23f6 100644
--- a/daemon/common.mk
+++ b/daemon/common.mk
@@ -15,8 +15,6 @@ ifeq ($(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 5),1)
CXXFLAGS += -fno-sized-deallocation
endif

-# -s strips the binary of debug info
-LDFLAGS += -s
LDLIBS += -lrt -lm -pthread
TARGET := gatord
ESCAPE_EXE := escape/escape
97 changes: 97 additions & 0 deletions meta-webos/recipes-core/gator/files/git/gcc-wrapper.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
#! /usr/bin/env python3
# -*- coding: utf-8 -*-

# Copyright (c) 2011-2017, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Invoke gcc, looking for warnings, and causing a failure if there are
# non-whitelisted warnings.

from __future__ import print_function
import errno
import re
import os
import sys
import subprocess

# Note that gcc uses unicode, which may depend on the locale. TODO:
# force LANG to be set to en_US.UTF-8 to get consistent warnings.

allowed_warnings = set([
"compiler.h:172"
])

# Capture the name of the object file, can find it.
ofile = None

warning_re = re.compile(r'''(.*/|)([^/]+\.[a-z]+:\d+):(\d+:)? warning:''')
def interpret_warning(line):
"""Decode the message from gcc. The messages we care about have a filename, and a warning"""
line = line.decode("utf-8")
line = line.rstrip('\n')
m = warning_re.match(line)
if m and m.group(2) not in allowed_warnings:
print("error, forbidden warning:", m.group(2), file=sys.stderr)

# If there is a warning, remove any object if it exists.
if ofile:
try:
os.remove(ofile)
except OSError:
pass
sys.exit(1)

def run_gcc():
args = sys.argv[1:]
# Look for -o
try:
i = args.index('-o')
global ofile
ofile = args[i+1]
except (ValueError, IndexError):
pass

compiler = sys.argv[0]

try:
proc = subprocess.Popen(args, stderr=subprocess.PIPE)
for line in proc.stderr:
print(line,
interpret_warning(line), file=sys.stderr)

result = proc.wait()
except OSError as e:
result = e.errno
if result == errno.ENOENT:
print(args[0] + ':', e.strerror, file=sys.stderr)
print('Is your PATH set correctly?', file=sys.stderr)
else:
print(' '.join(args), str(e), file=sys.stderr)
return result

if __name__ == '__main__':
status = run_gcc()
sys.exit(status)

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
From f37766ecfc8063d8c07786f1a369b92f44037d64 Mon Sep 17 00:00:00 2001
From 80444adae0a649b50f62b80c0c5d2baaf85d039c Mon Sep 17 00:00:00 2001
From: Martin Jansa <martin.jansa@lge.com>
Date: Tue, 18 Aug 2020 03:28:32 -0700
Subject: [PATCH] gator_main.c, gator_backtrace.c: fix build with linux-5.0 and
newer

Signed-off-by: Martin Jansa <martin.jansa@lge.com>
---
driver/gator_backtrace.c | 5 +++++
driver/gator_main.c | 10 +++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
driver/gator_backtrace.c | 5 +++++
driver/gator_main.c | 8 +++++++-
2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/driver/gator_backtrace.c b/driver/gator_backtrace.c
index 92b2860..37c1dc3 100644
Expand All @@ -28,10 +28,10 @@ index 92b2860..37c1dc3 100644
return;
}
diff --git a/driver/gator_main.c b/driver/gator_main.c
index 69487b5..c031c77 100644
index a7506bd..43f15b8 100644
--- a/driver/gator_main.c
+++ b/driver/gator_main.c
@@ -781,6 +781,9 @@ static void gator_summary(void)
@@ -779,6 +779,9 @@ static void gator_summary(void)
{
u64 timestamp, uptime;
struct timespec ts;
Expand All @@ -41,16 +41,16 @@ index 69487b5..c031c77 100644
char uname_buf[100];

snprintf(uname_buf, sizeof(uname_buf), "%s %s %s %s %s GNU/Linux", utsname()->sysname, utsname()->nodename, utsname()->release, utsname()->version, utsname()->machine);
@@ -803,8 +808,11 @@ static void gator_summary(void)
#elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 20, 0)
get_monotonic_boottime(&ts);
uptime = timespec_to_ns(&ts);
@@ -797,8 +800,11 @@ static void gator_summary(void)
if (m2b)
m2b(&ts);
}
-#else
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)
uptime = ktime_to_ns(ktime_get_boottime());
get_monotonic_boottime(&ts);
+#else
+ ktime_get_boottime_ts64(&ts64);
+ ts = timespec64_to_timespec(ts64);
#endif
uptime = timespec_to_ns(&ts);

/* Disable preemption as gator_get_time calls smp_processor_id to verify time is monotonic */
28 changes: 19 additions & 9 deletions meta-webos/recipes-core/gator/gator_git.bb
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@ DESCRIPTION = "Target-side daemon gathering data for ARM Streamline Performance
LICENSE = "GPL-2"
LIC_FILES_CHKSUM = "file://driver/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"

SRCREV = "9815e8e8a9e91f181f1a1e19371c3e3d8cacae51"
PV = "6.9+git${SRCPV}"
PR = "r4"
SRCREV = "3ff46fedd4d097813156069edab9704cc65e0a42"
PV = "6.7+git${SRCPV}"
PR = "r3"

SRC_URI = "git://github.com/ARM-software/gator.git;protocol=http;branch=master \
file://0001-disable-stripping-debug-info.patch \
file://0001-gator_main.c-gator_backtrace.c-fix-build-with-linux-.patch \
file://Mali_events_disable.patch \
file://0001-disable-stripping-debug-info.patch \
file://0001-gator_main.c-gator_backtrace.c-fix-build-with-linux-.patch \
file://Mali_events_disable.patch \
file://git/gcc-wrapper.py \
"

S = "${WORKDIR}/git"
Expand All @@ -24,13 +25,21 @@ inherit module
INHIBIT_PACKAGE_STRIP = "1"

# since "gator=r3,v6.9" commit was reverted, it's failing for e.g. x86 MACHINEs
COMPATIBLE_MACHINE = "^raspberrypi4$"
# and since raspberrypi4 is using 5.10 kernel, it's failing there as well
COMPATIBLE_MACHINE = "^$"
# But it also fails on aarch64 raspberrypi4-64 (which as raspberrypi4 in MACHINEOVERRIDES), so we need to explicitly disable it
COMPATIBLE_MACHINE_raspberrypi4-64 = "^$"
# COMPATIBLE_MACHINE_raspberrypi4-64 = "^$"

do_compile() {
unset LDFLAGS
oe_runmake -C daemon CROSS_COMPILE=${TARGET_PREFIX} CC='${CC}' CXX='${CXX}' LDFLAGS='${TARGET_LDFLAGS}'
export LDFLAGS=''
# The regular makefile tries to be 'smart' by hardcoding ABI assumptions, let's use the clean makefile for everything.
cp ${S}/daemon/Makefile_aarch64 ${S}/daemon/Makefile
oe_runmake -C daemon CROSS_COMPILE=${TARGET_PREFIX} CC='${CC}' CXX='${CXX}'

#Build gator.ko
#copy python3 compatible gcc-wrapper.py to kernel source
cp ${S}/gcc-wrapper.py ${STAGING_KERNEL_DIR}/scripts/
oe_runmake -C ${STAGING_KERNEL_BUILDDIR} ARCH=${ARCH} PYTHON='python3' CONFIG_GATOR=m M=${S}/driver modules
}

Expand All @@ -44,3 +53,4 @@ FILES_${PN} = " \
${sbindir}/gatord \
${sbindir}/gator.ko \
"
do_package_qa[noexec] = "1"

0 comments on commit d4bc575

Please sign in to comment.