[OE-core] [PATCH v2] valgrind: update from 3.13.0 to 3.14.0

Khem Raj raj.khem at gmail.com
Sun Oct 21 22:24:20 UTC 2018


On Sun, Oct 21, 2018 at 9:48 PM Randy MacLeod
<randy.macleod at windriver.com> wrote:
>
> On 10/21/18 5:47 AM, Khem Raj wrote:
> > fails ptest compile on musl/mips
> > http://errors.yoctoproject.org/Errors/Details/197122/
>
> I have a fix that I'll send later tonight or tomorrow morning
> once I've tested it a bit more. I'll paste it inline below in
> case anyone wants it now.
>
> I did notice that the ptest build of valgrind takes a more than
> 30 minutes!:
>
> 0: valgrind-3.14.0-r0 do_compile_ptest_base - 2306s (pid 21911)
>
> It's building:
>    none/tests/mips32/msa_fpu.c
> which is from a commit [1] that tries to cover
> all MIPS SIMD architecture instructions. I'll
> drop that test unless someone objects since it's overkill
> for a ptest IMO.

I do not use MSA here so it might be ok to to save some time. but I am
curious how it
looks on real h/w

>
> ../Randy
>
>
> [1] from valgrind.git
>
> commit 0e1fa562e977c9ff86b56d7a29d12588b6a2c731
> Author: Petar Jovanovic <mips32r2 at gmail.com>
> Date:   Fri Oct 27 16:26:24 2017 +0200
>
>      mips: MSA tests
>
>      This set of tests covers the whole MSA instruction set:
>
>
>        none/tests/mips32/msa_arithmetic
>        none/tests/mips32/msa_comparison
>        none/tests/mips32/msa_data_transfer
>        none/tests/mips32/msa_fpu
>        none/tests/mips32/msa_logical_and_shift
>        none/tests/mips32/msa_shuffle
>
>        none/tests/mips64/msa_arithmetic         (symlink to mips32)
>        none/tests/mips64/msa_comparison         (symlink to mips32)
>        none/tests/mips64/msa_data_transfer
>        none/tests/mips64/msa_fpu                (symlink to mips32)
>        none/tests/mips64/msa_logical_and_shift  (symlink to mips32)
>        none/tests/mips64/msa_shuffle            (symlink to mips32)
>
>      Contributed by:
>        Tamara Vlahovic, Aleksandar Rikalo and Aleksandra Karadzic.
>
>
> --
> # Randy MacLeod
> # Wind River Linux
>
>
>
> commit d9cd7744a30b9c35a2b0c128209b959511bb1583
> Author: Randy MacLeod <Randy.MacLeod at windriver.com>
> Date:   Sun Oct 21 15:09:31 2018 -0400
>
>      Fix compiler warnings by making functions static
>
>      Avoid 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.
>

I would have just defined a prototype for the function at the top of
file or in .h file
but this is a good cleanup. May be send upstream too please.

>      Signed-off-by: Randy MacLeod <Randy.MacLeod at windriver.com>
>
> 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
>



More information about the Openembedded-core mailing list