This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix several build warnings


Hi!

On Tue, 06 Mar 2012 14:24:56 -0500 (EST), David Miller <davem@davemloft.net> wrote:
> The NPTL sem_post code for sparc uses atomic_increment_val() but the return
> value is unused.  Simply use atomic_increment() and kill the unused local
> variable.
> 
> Committed to master.
> 
> /
> 
> 	* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
> 	(set_obp_int): New function.
> 	(get_obp_int): New function.
> 	(__get_clockfreq_via_dev_openprom): Likewise.
> 	* sysdeps/unix/sysv/linux/sparc/sysdep.h (INTERNAL_SYSCALL_ERROR_P): Avoid
> 	unused variable warnings on 'val' and use builtin_expect.
> 	(INLINE_SYSCALL): Don't wrap INTERNAL_SYSCALL_ERROR_P with builtin_expect.
> 	(INLINE_CLONE_SYSCALL): Likewise.
> 
> nptl/
> 
> 	* sysdeps/unix/sysv/linux/sparc/sem_post.c (__new_sem_post): Use
> 	atomic_increment and remove unused local variable.
> 	(__old_sem_post): Likewise.

Any reason not to commit the following on top of it?  (David, ideally you
could have done/proposed all of this.)  So far, this is completely
untested; all architectures that I'm readyily set up for testing have
sem_post.S implementations (which I probably could temporarily remove to
make the build use the generic sem_post.c file?).

diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c b/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c
index 3bf3371..b3dc4c4 100644
--- a/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c
+++ b/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c
@@ -1,5 +1,5 @@
 /* sem_post -- post to a POSIX semaphore.  Powerpc version.
-   Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
 
@@ -54,11 +54,12 @@ attribute_compat_text_section
 __old_sem_post (sem_t *sem)
 {
   int *futex = (int *) sem;
+  int err;
 
   __asm __volatile (__lll_rel_instr ::: "memory");
-  int nr = atomic_increment_val (futex);
+  atomic_increment (futex);
   /* We always have to assume it is a shared semaphore.  */
-  int err = lll_futex_wake (futex, 1, LLL_SHARED);
+  err = lll_futex_wake (futex, 1, LLL_SHARED);
   if (__builtin_expect (err, 0) < 0)
     {
       __set_errno (-err);
diff --git a/nptl/sysdeps/unix/sysv/linux/sem_post.c b/nptl/sysdeps/unix/sysv/linux/sem_post.c
index 56f27e9..b21c24d 100644
--- a/nptl/sysdeps/unix/sysv/linux/sem_post.c
+++ b/nptl/sysdeps/unix/sysv/linux/sem_post.c
@@ -1,5 +1,5 @@
 /* sem_post -- post to a POSIX semaphore.  Generic futex-using version.
-   Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
 
@@ -64,10 +64,11 @@ attribute_compat_text_section
 __old_sem_post (sem_t *sem)
 {
   int *futex = (int *) sem;
+  int err;
 
-  int nr = atomic_increment_val (futex);
+  atomic_increment (futex);
   /* We always have to assume it is a shared semaphore.  */
-  int err = lll_futex_wake (futex, 1, LLL_SHARED);
+  err = lll_futex_wake (futex, 1, LLL_SHARED);
   if (__builtin_expect (err, 0) < 0)
     {
       __set_errno (-err);
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c
index 2ffa31f..1a99de4 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c
+++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c
@@ -1,5 +1,5 @@
 /* sem_post -- post to a POSIX semaphore.  SPARC version.
-   Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
 
@@ -29,14 +29,13 @@ int
 __new_sem_post (sem_t *sem)
 {
   struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
-  int nr;
 
   if (__atomic_is_v9)
-    nr = atomic_increment_val (&isem->value);
+    atomic_increment (&isem->value);
   else
     {
       __sparc32_atomic_do_lock24 (&isem->lock);
-      nr = ++(isem->value);
+      ++(isem->value);
       __sparc32_atomic_do_unlock24 (&isem->lock);
     }
   atomic_full_barrier ();
@@ -61,14 +60,13 @@ attribute_compat_text_section
 __old_sem_post (sem_t *sem)
 {
   struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
-  int nr;
 
   if (__atomic_is_v9)
-    nr = atomic_increment_val (&isem->value);
+    atomic_increment (&isem->value);
   else
     {
       __sparc32_atomic_do_lock24 (&isem->lock);
-      nr = ++(isem->value);
+      ++(isem->value);
       __sparc32_atomic_do_unlock24 (&isem->lock);
     }
   int err = lll_futex_wake (&isem->value, 1,

Also these are missing from your commit:

diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c b/nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c
index 28e06f6..6125811 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c
+++ b/nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c
@@ -1,5 +1,5 @@
 /* sem_post -- post to a POSIX semaphore.  SPARC version.
-   Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2003-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
 
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c b/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
index ba44a61..0638167 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
@@ -1,5 +1,5 @@
 /* Get frequency of the system processor.  sparc64 version.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sysdep.h
index 30144b9..8b51fb8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2000.
 


GrÃÃe,
 Thomas

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]