From 2155c1b2cf00e744e280c493eb74bf457dfcc3b1 Mon Sep 17 00:00:00 2001 From: Randy MacLeod 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 --- 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