libgloss: sparc_leon: workaround newer newlib pthread APIs

Message ID 20231230020441.15569-1-vapier@gentoo.org
State New
Headers
Series libgloss: sparc_leon: workaround newer newlib pthread APIs |

Commit Message

Mike Frysinger Dec. 30, 2023, 2:04 a.m. UTC
  Fix a compile error due to duplicate pthreads types:
.../libgloss/sparc_leon/mutex.c:50:8: error: conflicting types for ‘pthread_mutex_t’; have ‘struct pthread_mutex’
   50 |      } pthread_mutex_t;
In file included from .../newlib/libc/include/sys/types.h:221,
                 from .../libgloss/sparc_leon/mutex.c:26:
.../newlib/libc/include/sys/_pthreadtypes.h:154:20: note: previous declaration of ‘pthread_mutex_t’ with type ‘pthread_mutex_t’ {aka ‘long unsigned int’}
  154 | typedef __uint32_t pthread_mutex_t;      /* identify a mutex */

.../libgloss/sparc_leon/mutex.c:57:8: error: conflicting types for ‘pthread_mutexattr_t’; have ‘struct <anonymous>’
   57 |      } pthread_mutexattr_t;
../newlib/libc/include/sys/_pthreadtypes.h:169:3: note: previous declaration of ‘pthread_mutexattr_t’ with type ‘pthread_mutexattr_t’
  169 | } pthread_mutexattr_t;
---
 libgloss/sparc_leon/mutex.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Patch

diff --git a/libgloss/sparc_leon/mutex.c b/libgloss/sparc_leon/mutex.c
index eb2c2996d4fa..3f51fead31f2 100644
--- a/libgloss/sparc_leon/mutex.c
+++ b/libgloss/sparc_leon/mutex.c
@@ -23,9 +23,13 @@ 
  */
 
 
+#define pthread_mutex_t pthread_mutex_t_
+#define pthread_mutexattr_t pthread_mutexattr_t_
 #include <sys/types.h>
 #include <sys/lock.h>
 #include <asm-leon/queue.h>
+#undef pthread_mutex_t
+#undef pthread_mutexattr_t
 /*#include <sys/fsu_pthread_mutex.h>*/
 
 typedef int pthread_protocol_t;