| From 2155c1b2cf00e744e280c493eb74bf457dfcc3b1 Mon Sep 17 00:00:00 2001 |
| From: Randy MacLeod <Randy.MacLeod@windriver.com> |
| Date: Sun, 21 Oct 2018 15:09:31 -0400 |
| Subject: [PATCH] Make local functions static to avoid assembler error |
| |
| Avoid mips32 x-compiler warnings such as: |
| |
| | ../../../valgrind-3.14.0/helgrind/tests/annotate_hbefore.c:360:6: warning: no previous prototype for 'do_signal' [-Wmissing-prototypes] |
| | void do_signal ( UWord* w ) |
| | ^~~~~~~~~ |
| |
| by making functions and global variables that are file scope be static |
| and more importantly also avoid an assembler error: |
| |
| /tmp/cce22iiw.s: Assembler messages: |
| /tmp/cce22iiw.s:446: Error: symbol `exit_0' is already defined |
| /tmp/cce22iiw.s:448: Error: symbol `exit' is already defined |
| /tmp/cce22iiw.s:915: Error: symbol `exit_0' is already defined |
| /tmp/cce22iiw.s:917: Error: symbol `exit' is already defined |
| |
| Upstream-Status: Submitted https://bugs.kde.org/show_bug.cgi?id=400164 |
| |
| Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> |
| --- |
| helgrind/tests/annotate_hbefore.c | 34 +++++++++++++++---------------- |
| 1 file changed, 17 insertions(+), 17 deletions(-) |
| |
| diff --git a/helgrind/tests/annotate_hbefore.c b/helgrind/tests/annotate_hbefore.c |
| index e311714f7..f55514e45 100644 |
| --- a/helgrind/tests/annotate_hbefore.c |
| +++ b/helgrind/tests/annotate_hbefore.c |
| @@ -24,7 +24,7 @@ typedef unsigned long int UWord; |
| |
| // ppc64 |
| /* return 1 if success, 0 if failure */ |
| -UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| +static UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| { |
| UWord old, success; |
| |
| @@ -57,7 +57,7 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| |
| // ppc32 |
| /* return 1 if success, 0 if failure */ |
| -UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| +static UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| { |
| UWord old, success; |
| |
| @@ -90,7 +90,7 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| |
| // amd64 |
| /* return 1 if success, 0 if failure */ |
| -UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| +static UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| { |
| UWord block[4] = { (UWord)addr, expected, nyu, 2 }; |
| __asm__ __volatile__( |
| @@ -113,7 +113,7 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| |
| // x86 |
| /* return 1 if success, 0 if failure */ |
| -UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| +static UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| { |
| UWord block[4] = { (UWord)addr, expected, nyu, 2 }; |
| __asm__ __volatile__( |
| @@ -138,7 +138,7 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| |
| // arm |
| /* return 1 if success, 0 if failure */ |
| -UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| +static UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| { |
| UWord old, success; |
| UWord block[2] = { (UWord)addr, nyu }; |
| @@ -171,7 +171,7 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| |
| // arm64 |
| /* return 1 if success, 0 if failure */ |
| -UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| +static UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| { |
| UWord old, success; |
| UWord block[2] = { (UWord)addr, nyu }; |
| @@ -204,7 +204,7 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| |
| // s390x |
| /* return 1 if success, 0 if failure */ |
| -UWord do_acasW(UWord* addr, UWord expected, UWord nyu ) |
| +static UWord do_acasW(UWord* addr, UWord expected, UWord nyu ) |
| { |
| int cc; |
| |
| @@ -223,7 +223,7 @@ UWord do_acasW(UWord* addr, UWord expected, UWord nyu ) |
| |
| // mips32 |
| /* return 1 if success, 0 if failure */ |
| -UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| +static UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| { |
| UWord success; |
| UWord block[3] = { (UWord)addr, nyu, expected}; |
| @@ -256,7 +256,7 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| |
| // mips64 |
| /* return 1 if success, 0 if failure */ |
| -UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| +static UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| { |
| UWord success; |
| UWord block[3] = { (UWord)addr, nyu, expected}; |
| @@ -287,7 +287,7 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu ) |
| |
| #endif |
| |
| -void atomic_incW ( UWord* w ) |
| +static void atomic_incW ( UWord* w ) |
| { |
| while (1) { |
| UWord old = *w; |
| @@ -301,7 +301,7 @@ void atomic_incW ( UWord* w ) |
| |
| #define NNN 1000000 |
| |
| -void* thread_fn ( void* arg ) |
| +static void* thread_fn ( void* arg ) |
| { |
| UWord* w = (UWord*)arg; |
| int i; |
| @@ -331,10 +331,10 @@ int main ( void ) |
| |
| #endif |
| |
| -int shared_var = 0; // is not raced upon |
| +static int shared_var = 0; // is not raced upon |
| |
| |
| -void delayXms ( int i ) |
| +static void delayXms ( int i ) |
| { |
| struct timespec ts = { 0, 1 * 1000 * 1000 }; |
| // We do the sleep in small pieces to have scheduling |
| @@ -348,7 +348,7 @@ void delayXms ( int i ) |
| } |
| } |
| |
| -void do_wait ( UWord* w ) |
| +static void do_wait ( UWord* w ) |
| { |
| UWord w0 = *w; |
| UWord volatile * wV = w; |
| @@ -357,7 +357,7 @@ void do_wait ( UWord* w ) |
| ANNOTATE_HAPPENS_AFTER(w); |
| } |
| |
| -void do_signal ( UWord* w ) |
| +static void do_signal ( UWord* w ) |
| { |
| ANNOTATE_HAPPENS_BEFORE(w); |
| atomic_incW(w); |
| @@ -365,7 +365,7 @@ void do_signal ( UWord* w ) |
| |
| |
| |
| -void* thread_fn1 ( void* arg ) |
| +static void* thread_fn1 ( void* arg ) |
| { |
| UWord* w = (UWord*)arg; |
| delayXms(500); // ensure t2 gets to its wait first |
| @@ -376,7 +376,7 @@ void* thread_fn1 ( void* arg ) |
| return NULL; |
| } |
| |
| -void* thread_fn2 ( void* arg ) |
| +static void* thread_fn2 ( void* arg ) |
| { |
| UWord* w = (UWord*)arg; |
| do_wait(w); // wait for h-b edge from first thread |
| -- |
| 2.17.0 |
| |