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

Thomas Schwinge <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Hi!

On 2024-03-22T14:53:30+0000, Andrew Stubbs <[email protected]> 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
0001-amdgcn-Implement-proper-locks-Fix-newlib-libc-sys-am.patch (text/x-diff, 1.1 KB)
From ed50a50b9b551ed693d28cd458a49e5196d27f06 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.