amdgcn: Implement proper locks: Fix 'newlib/libc/sys/amdgcn/include/sys/lock.h' for C++ (was: [PATCH] amdgcn: Implement proper locks)

Message ID 874jchfcjo.fsf@euler.schwinge.ddns.net
State New
Headers
Series amdgcn: Implement proper locks: Fix 'newlib/libc/sys/amdgcn/include/sys/lock.h' for C++ (was: [PATCH] amdgcn: Implement proper locks) |

Commit Message

Thomas Schwinge April 4, 2024, 2:05 p.m. UTC
  Hi!

On 2024-03-22T14:53:30+0000, Andrew Stubbs <ams@baylibre.com> wrote:
> This should prevent printf output from multiple threads getting garbled.

Confirmed, thanks!

> I don't know why IO ever worked properly -- probably it was always a bit
> broken -- but the GFX11 devices have a different cache architecture and
> trying to print from many threads at once corrupted the FILE buffers.

> --- /dev/null
> +++ b/newlib/libc/sys/amdgcn/include/sys/lock.h
> @@ -0,0 +1,39 @@
> +#ifndef __SYS_LOCK_H__
> +#define __SYS_LOCK_H__
> +
> +#include <newlib.h>
> +#include <_ansi.h>
> +
> +typedef unsigned int _LOCK_T;
> +[...]
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* __SYS_LOCK_H__ */

Pushed to main branch commit ed50a50b9b551ed693d28cd458a49e5196d27f06
"amdgcn: Implement proper locks: Fix 'newlib/libc/sys/amdgcn/include/sys/lock.h' for C++",
see attached.


Grüße
 Thomas
  

Patch

From ed50a50b9b551ed693d28cd458a49e5196d27f06 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <tschwinge@baylibre.com>
Date: Thu, 4 Apr 2024 16:01:35 +0200
Subject: [PATCH] amdgcn: Implement proper locks: Fix
 'newlib/libc/sys/amdgcn/include/sys/lock.h' for C++

As of commit 7dd4eb1db9e1b1b9f14ef5b743705156e5f370e1
"amdgcn: Implement proper locks", we get, by the thousands, for C++ code:

    In file included from [...]/newlib/libc/include/stdio.h:60,
                     from [...]:
    [...]/newlib/libc/include/sys/reent.h:911:1: error: expected declaration before '}' token
---
 newlib/libc/sys/amdgcn/include/sys/lock.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/newlib/libc/sys/amdgcn/include/sys/lock.h b/newlib/libc/sys/amdgcn/include/sys/lock.h
index 0e0e667e5e..1f41cf2f7d 100644
--- a/newlib/libc/sys/amdgcn/include/sys/lock.h
+++ b/newlib/libc/sys/amdgcn/include/sys/lock.h
@@ -4,6 +4,10 @@ 
 #include <newlib.h>
 #include <_ansi.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef unsigned int _LOCK_T;
 typedef unsigned int _LOCK_RECURSIVE_T;
 
-- 
2.34.1