package/htop: add patch for fixing build with gcc 10
Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
8a46f3237a
commit
15e3da3fed
@ -0,0 +1,173 @@
|
||||
From dfd9279f87791e36a5212726781c31fbe7110361 Mon Sep 17 00:00:00 2001
|
||||
From: Nathan Scott <nathans@redhat.com>
|
||||
Date: Fri, 10 Jul 2020 10:35:32 +1000
|
||||
Subject: [PATCH] Resolve complation issues with -fno-common (default from
|
||||
gcc-10)
|
||||
|
||||
Extends the MakeHeader script to auto-generate correct "extern"
|
||||
function declarations in some cases that it currently does not.
|
||||
|
||||
Related to https://github.com/hishamhm/htop/pull/981
|
||||
|
||||
Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
|
||||
Fetch from: https://github.com/hishamhm/htop/commit/dfd9279f87791e36a5212726781c31fbe7110361.patch
|
||||
---
|
||||
CRT.c | 4 ++--
|
||||
CRT.h | 28 ++++++++++++++--------------
|
||||
linux/LinuxProcess.c | 3 ++-
|
||||
linux/LinuxProcess.h | 19 ++++++++++---------
|
||||
scripts/MakeHeader.py | 4 +++-
|
||||
5 files changed, 31 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/CRT.c b/CRT.c
|
||||
index ca9a10dd..088cd1a4 100644
|
||||
--- a/CRT.c
|
||||
+++ b/CRT.c
|
||||
@@ -131,9 +131,9 @@ typedef enum ColorElements_ {
|
||||
LAST_COLORELEMENT
|
||||
} ColorElements;
|
||||
|
||||
-void CRT_fatalError(const char* note) __attribute__ ((noreturn));
|
||||
+extern void CRT_fatalError(const char* note) __attribute__ ((noreturn));
|
||||
|
||||
-void CRT_handleSIGSEGV(int sgn);
|
||||
+extern void CRT_handleSIGSEGV(int sgn);
|
||||
|
||||
#define KEY_ALT(x) (KEY_F(64 - 26) + (x - 'A'))
|
||||
|
||||
diff --git a/CRT.h b/CRT.h
|
||||
index 933fe068..bc3fb8b7 100644
|
||||
--- a/CRT.h
|
||||
+++ b/CRT.h
|
||||
@@ -119,9 +119,9 @@ typedef enum ColorElements_ {
|
||||
LAST_COLORELEMENT
|
||||
} ColorElements;
|
||||
|
||||
-void CRT_fatalError(const char* note) __attribute__ ((noreturn));
|
||||
+extern void CRT_fatalError(const char* note) __attribute__ ((noreturn));
|
||||
|
||||
-void CRT_handleSIGSEGV(int sgn);
|
||||
+extern void CRT_handleSIGSEGV(int sgn);
|
||||
|
||||
#define KEY_ALT(x) (KEY_F(64 - 26) + (x - 'A'))
|
||||
|
||||
@@ -140,7 +140,7 @@ extern const char **CRT_treeStr;
|
||||
|
||||
extern int CRT_delay;
|
||||
|
||||
-int* CRT_colors;
|
||||
+extern int* CRT_colors;
|
||||
|
||||
extern int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT];
|
||||
|
||||
@@ -150,21 +150,21 @@ extern int CRT_scrollHAmount;
|
||||
|
||||
extern int CRT_scrollWheelVAmount;
|
||||
|
||||
-char* CRT_termType;
|
||||
+extern char* CRT_termType;
|
||||
|
||||
// TODO move color scheme to Settings, perhaps?
|
||||
|
||||
extern int CRT_colorScheme;
|
||||
|
||||
-void *backtraceArray[128];
|
||||
+extern void *backtraceArray[128];
|
||||
|
||||
#if HAVE_SETUID_ENABLED
|
||||
|
||||
#define DIE(msg) do { CRT_done(); fprintf(stderr, msg); exit(1); } while(0)
|
||||
|
||||
-void CRT_dropPrivileges();
|
||||
+extern void CRT_dropPrivileges();
|
||||
|
||||
-void CRT_restorePrivileges();
|
||||
+extern void CRT_restorePrivileges();
|
||||
|
||||
#else
|
||||
|
||||
@@ -179,18 +179,18 @@ void CRT_restorePrivileges();
|
||||
|
||||
// TODO: pass an instance of Settings instead.
|
||||
|
||||
-void CRT_init(int delay, int colorScheme);
|
||||
+extern void CRT_init(int delay, int colorScheme);
|
||||
|
||||
-void CRT_done();
|
||||
+extern void CRT_done();
|
||||
|
||||
-void CRT_fatalError(const char* note);
|
||||
+extern void CRT_fatalError(const char* note);
|
||||
|
||||
-int CRT_readKey();
|
||||
+extern int CRT_readKey();
|
||||
|
||||
-void CRT_disableDelay();
|
||||
+extern void CRT_disableDelay();
|
||||
|
||||
-void CRT_enableDelay();
|
||||
+extern void CRT_enableDelay();
|
||||
|
||||
-void CRT_setColors(int colorScheme);
|
||||
+extern void CRT_setColors(int colorScheme);
|
||||
|
||||
#endif
|
||||
|
||||
diff --git a/linux/LinuxProcess.h b/linux/LinuxProcess.h
|
||||
index 6ce3037d..586aa717 100644
|
||||
--- a/linux/LinuxProcess.h
|
||||
+++ b/linux/LinuxProcess.h
|
||||
@@ -152,9 +153,9 @@ extern ProcessPidColumn Process_pidColumns[];
|
||||
|
||||
extern ProcessClass LinuxProcess_class;
|
||||
|
||||
-LinuxProcess* LinuxProcess_new(Settings* settings);
|
||||
+extern LinuxProcess* LinuxProcess_new(Settings* settings);
|
||||
|
||||
-void Process_delete(Object* cast);
|
||||
+extern void Process_delete(Object* cast);
|
||||
|
||||
/*
|
||||
[1] Note that before kernel 2.6.26 a process that has not asked for
|
||||
@@ -166,19 +167,19 @@ extern io_priority;
|
||||
*/
|
||||
#define LinuxProcess_effectiveIOPriority(p_) (IOPriority_class(p_->ioPriority) == IOPRIO_CLASS_NONE ? IOPriority_tuple(IOPRIO_CLASS_BE, (p_->super.nice + 20) / 5) : p_->ioPriority)
|
||||
|
||||
-IOPriority LinuxProcess_updateIOPriority(LinuxProcess* this);
|
||||
+extern IOPriority LinuxProcess_updateIOPriority(LinuxProcess* this);
|
||||
|
||||
-bool LinuxProcess_setIOPriority(LinuxProcess* this, IOPriority ioprio);
|
||||
+extern bool LinuxProcess_setIOPriority(LinuxProcess* this, IOPriority ioprio);
|
||||
|
||||
#ifdef HAVE_DELAYACCT
|
||||
-void LinuxProcess_printDelay(float delay_percent, char* buffer, int n);
|
||||
+extern void LinuxProcess_printDelay(float delay_percent, char* buffer, int n);
|
||||
#endif
|
||||
|
||||
-void LinuxProcess_writeField(Process* this, RichString* str, ProcessField field);
|
||||
+extern void LinuxProcess_writeField(Process* this, RichString* str, ProcessField field);
|
||||
|
||||
-long LinuxProcess_compare(const void* v1, const void* v2);
|
||||
+extern long LinuxProcess_compare(const void* v1, const void* v2);
|
||||
|
||||
-bool Process_isThread(Process* this);
|
||||
+extern bool Process_isThread(Process* this);
|
||||
|
||||
|
||||
#endif
|
||||
diff --git a/scripts/MakeHeader.py b/scripts/MakeHeader.py
|
||||
index 349531b8..3ef34b88 100755
|
||||
--- a/scripts/MakeHeader.py
|
||||
+++ b/scripts/MakeHeader.py
|
||||
@@ -54,8 +54,10 @@
|
||||
elif line.startswith("typedef struct"):
|
||||
state = SKIP
|
||||
elif line[-1] == "{":
|
||||
- out.write( line[:-2].replace("inline", "extern") + ";\n" )
|
||||
+ out.write("extern " + line[:-2].replace("inline ", "") + ";\n")
|
||||
state = SKIP
|
||||
+ elif line[-1] == ";":
|
||||
+ out.write("extern " + line + "\n")
|
||||
else:
|
||||
out.write( line + "\n")
|
||||
is_blank = False
|
Loading…
Reference in New Issue
Block a user