libgcc: Update 'gthr-mcf.h' to include a dedicated header for libobjc

Message ID 9d2923cb-90cb-a0da-3b80-ac9e543af880@126.com
State Unresolved
Headers
Series libgcc: Update 'gthr-mcf.h' to include a dedicated header for libobjc |

Checks

Context Check Description
snail/gcc-patch-check warning Git am fail log

Commit Message

LIU Hao Oct. 22, 2022, 11:54 a.m. UTC
  This allows building libobjc and enabling Objective-C. Tested against GCC 12 branch on i686-w64-mingw32.


-- 
Best regards,
LIU Hao
From c05cceb2f3baa96c9381be38717bdf6f1f3adb76 Mon Sep 17 00:00:00 2001
From: LIU Hao <lh_mouse@126.com>
Date: Sat, 22 Oct 2022 17:31:46 +0800
Subject: [PATCH] libgcc: Update 'gthr-mcf.h' to include a dedicated header for
 libobjc

'libobjc/thr.c' includes 'gthr.h'. While all the other gthread headers
have `#ifdef _LIBOBJC` checks, and provide a different set of inline
functions, I think having one header provide two completely unrelated
set of APIs is unsatisfactory, complicates maintenance, and hinders
further development.

This commit references a new header for libobjc, and adds a copyright
notice, as in other headers.

libgcc/ChangeLog:
	* config/i386/gthr-mcf.h: Include 'gthr_libobjc.h' when building
	libobjc, instead of 'gthr.h'
---
 libgcc/config/i386/gthr-mcf.h | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
  

Comments

Jonathan Yong Oct. 23, 2022, 2 a.m. UTC | #1
On 10/22/22 11:54, LIU Hao wrote:
> This allows building libobjc and enabling Objective-C. Tested against 
> GCC 12 branch on i686-w64-mingw32.
> 
> 

Done, pushed to master branch.
  

Patch

diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h
index 58131bb7ca9..40da86802b6 100644
--- a/libgcc/config/i386/gthr-mcf.h
+++ b/libgcc/config/i386/gthr-mcf.h
@@ -1 +1,36 @@ 
+/* Threads compatibility routines for libgcc and libobjc.  */
+/* Copyright (C) 2022 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
+
+#ifdef _LIBOBJC
+
+/* libobjc references some internal structures and requires a
+ * dedicated set of functions.  */
+#include <mcfgthread/gthr_libobjc.h>
+
+#else  /* _LIBOBJC  */
+
+/* This is for libgcc and libstdc++.  */
 #include <mcfgthread/gthr.h>
+
+#endif  /* _LIBOBJC  */