public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH v2] [libatomic] Add RTEMS support
@ 2016-04-19 12:56 Sebastian Huber
  2016-04-20 12:35 ` Sebastian Huber
  0 siblings, 1 reply; 5+ messages in thread
From: Sebastian Huber @ 2016-04-19 12:56 UTC (permalink / raw)
  To: gcc-patches; +Cc: devel, Sebastian Huber

v2: Do not use architecture configuration due to broken ARM libatomic
support.

gcc/

	* config/rtems.h (LIB_SPEC): Add -latomic.

libatomic/

	* configure.tgt (*-*-rtems*): New supported target.
	* config/rtems/host-config.h: New file.
	* config/rtems/lock.c: Likewise.
---
 gcc/config/rtems.h                   |  2 +-
 libatomic/config/rtems/host-config.h | 41 ++++++++++++++++++++++++++++++++++++
 libatomic/config/rtems/lock.c        | 37 ++++++++++++++++++++++++++++++++
 libatomic/configure.tgt              | 10 +++++++++
 4 files changed, 89 insertions(+), 1 deletion(-)
 create mode 100644 libatomic/config/rtems/host-config.h
 create mode 100644 libatomic/config/rtems/lock.c

diff --git a/gcc/config/rtems.h b/gcc/config/rtems.h
index f13f72f..e005547 100644
--- a/gcc/config/rtems.h
+++ b/gcc/config/rtems.h
@@ -45,6 +45,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define LIB_SPEC "%{!qrtems: " STD_LIB_SPEC "} " \
 "%{!nostdlib: %{qrtems: --start-group \
  -lrtemsbsp -lrtemscpu \
- -lc -lgcc --end-group %{!qnolinkcmds: -T linkcmds%s}}}"
+ -latomic -lc -lgcc --end-group %{!qnolinkcmds: -T linkcmds%s}}}"
 
 #define TARGET_POSIX_IO
diff --git a/libatomic/config/rtems/host-config.h b/libatomic/config/rtems/host-config.h
new file mode 100644
index 0000000..d11e9ef
--- /dev/null
+++ b/libatomic/config/rtems/host-config.h
@@ -0,0 +1,41 @@
+/* Copyright (C) 2016 Free Software Foundation, Inc.
+   Contributed by Sebastian Huber <sebastian.huber@embedded-brains.de>.
+
+   This file is part of the GNU Atomic Library (libatomic).
+
+   Libatomic 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 of the License, or
+   (at your option) any later version.
+
+   Libatomic 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/>.  */
+
+/* Included after all more target-specific host-config.h.  */
+
+#include <machine/_libatomic.h>
+
+static inline UWORD
+protect_start (void *ptr)
+{
+  return _Libatomic_Protect_start (ptr);
+}
+
+static inline void
+protect_end (void *ptr, UWORD isr_level)
+{
+  _Libatomic_Protect_end (ptr, isr_level);
+}
+
+#include_next <host-config.h>
diff --git a/libatomic/config/rtems/lock.c b/libatomic/config/rtems/lock.c
new file mode 100644
index 0000000..f999f9b
--- /dev/null
+++ b/libatomic/config/rtems/lock.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2016 Free Software Foundation, Inc.
+   Contributed by Sebastian Huber <sebastian.huber@embedded-brains.de>.
+
+   This file is part of the GNU Atomic Library (libatomic).
+
+   Libatomic 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 of the License, or
+   (at your option) any later version.
+
+   Libatomic 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/>.  */
+
+#include "libatomic_i.h"
+
+void
+libat_lock_n (void *ptr, size_t n)
+{
+  _Libatomic_Lock_n (ptr, n);
+}
+
+void
+libat_unlock_n (void *ptr, size_t n)
+{
+  _Libatomic_Unlock_n (ptr, n);
+}
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
index c5470d7..eab2765 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -26,6 +26,10 @@
 # Map the target cpu to an ARCH sub-directory.  At the same time,
 # work out any special compilation flags as necessary.
 
+# Give operating systems the opportunity to discard XCFLAGS modifications based
+# on ${target_cpu}.  For example to allow proper use of multilibs.
+configure_tgt_pre_target_cpu_XCFLAGS="${XCFLAGS}"
+
 case "${target_cpu}" in
   alpha*)
 	# fenv.c needs this option to generate inexact exceptions.
@@ -128,6 +132,12 @@ case "${target}" in
             ;;
         esac
 	;;
+
+  *-*-rtems*)
+	XCFLAGS="${configure_tgt_pre_target_cpu_XCFLAGS}"
+	config_path="rtems"
+	;;
+
   *-*-elf*)
 	# ??? No target OS.  We could be targeting bare-metal kernel-mode,
 	# or user-mode for some custom OS.  If the target supports TAS,
-- 
1.8.4.5

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] [libatomic] Add RTEMS support
  2016-04-19 12:56 [PATCH v2] [libatomic] Add RTEMS support Sebastian Huber
@ 2016-04-20 12:35 ` Sebastian Huber
  2016-04-25  5:40   ` Sebastian Huber
       [not found]   ` <CAF9ehCXCggVSCGUMO4uReGafavFD8nQRNi5hHEtEiaf1p8d-SA@mail.gmail.com>
  0 siblings, 2 replies; 5+ messages in thread
From: Sebastian Huber @ 2016-04-20 12:35 UTC (permalink / raw)
  To: gcc-patches; +Cc: devel, Jakub Jelinek

Hello,

I know that I am pretty late, but is there a chance to get this into the 
GCC 6.1 release?

On 19/04/16 14:56, Sebastian Huber wrote:
> v2: Do not use architecture configuration due to broken ARM libatomic
> support.
>
> gcc/
>
> 	* config/rtems.h (LIB_SPEC): Add -latomic.
>
> libatomic/
>
> 	* configure.tgt (*-*-rtems*): New supported target.
> 	* config/rtems/host-config.h: New file.
> 	* config/rtems/lock.c: Likewise.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] [libatomic] Add RTEMS support
  2016-04-20 12:35 ` Sebastian Huber
@ 2016-04-25  5:40   ` Sebastian Huber
  2016-04-27  4:06     ` Jeff Law
       [not found]   ` <CAF9ehCXCggVSCGUMO4uReGafavFD8nQRNi5hHEtEiaf1p8d-SA@mail.gmail.com>
  1 sibling, 1 reply; 5+ messages in thread
From: Sebastian Huber @ 2016-04-25  5:40 UTC (permalink / raw)
  To: gcc-patches

Ok, what about the GCC trunk?

On 20/04/16 14:35, Sebastian Huber wrote:
> Hello,
>
> I know that I am pretty late, but is there a chance to get this into 
> the GCC 6.1 release?
>
> On 19/04/16 14:56, Sebastian Huber wrote:
>> v2: Do not use architecture configuration due to broken ARM libatomic
>> support.
>>
>> gcc/
>>
>>     * config/rtems.h (LIB_SPEC): Add -latomic.
>>
>> libatomic/
>>
>>     * configure.tgt (*-*-rtems*): New supported target.
>>     * config/rtems/host-config.h: New file.
>>     * config/rtems/lock.c: Likewise.
>

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] [libatomic] Add RTEMS support
  2016-04-25  5:40   ` Sebastian Huber
@ 2016-04-27  4:06     ` Jeff Law
  0 siblings, 0 replies; 5+ messages in thread
From: Jeff Law @ 2016-04-27  4:06 UTC (permalink / raw)
  To: Sebastian Huber, gcc-patches

On 04/24/2016 11:40 PM, Sebastian Huber wrote:
> Ok, what about the GCC trunk?
>
> On 20/04/16 14:35, Sebastian Huber wrote:
>> Hello,
>>
>> I know that I am pretty late, but is there a chance to get this into
>> the GCC 6.1 release?
>>
>> On 19/04/16 14:56, Sebastian Huber wrote:
>>> v2: Do not use architecture configuration due to broken ARM libatomic
>>> support.
>>>
>>> gcc/
>>>
>>>     * config/rtems.h (LIB_SPEC): Add -latomic.
>>>
>>> libatomic/
>>>
>>>     * configure.tgt (*-*-rtems*): New supported target.
>>>     * config/rtems/host-config.h: New file.
>>>     * config/rtems/lock.c: Likewise.
As the RTEMS maintainer, this stuff falls within your domain, so you can 
install on the trunk whenever you're ready.

Whether or not to install on the release branch would be up to Jakub, 
Richi & Joseph.

jeff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] [libatomic] Add RTEMS support
       [not found]   ` <CAF9ehCXCggVSCGUMO4uReGafavFD8nQRNi5hHEtEiaf1p8d-SA@mail.gmail.com>
@ 2016-05-02 11:01     ` Sebastian Huber
  0 siblings, 0 replies; 5+ messages in thread
From: Sebastian Huber @ 2016-05-02 11:01 UTC (permalink / raw)
  Cc: gcc-patches

If nobody objects, I will back port this to GCC 6 next Monday.

On 20/04/16 14:40, Joel Sherrill wrote:
>
> As the other RTEMS target maintainer. I second the request.
>
> --joel
>
> On Apr 20, 2016 7:35 AM, "Sebastian Huber" 
> <sebastian.huber@embedded-brains.de 
> <mailto:sebastian.huber@embedded-brains.de>> wrote:
>
>     Hello,
>
>     I know that I am pretty late, but is there a chance to get this
>     into the GCC 6.1 release?
>
>     On 19/04/16 14:56, Sebastian Huber wrote:
>
>         v2: Do not use architecture configuration due to broken ARM
>         libatomic
>         support.
>
>         gcc/
>
>                 * config/rtems.h (LIB_SPEC): Add -latomic.
>
>         libatomic/
>
>                 * configure.tgt (*-*-rtems*): New supported target.
>                 * config/rtems/host-config.h: New file.
>                 * config/rtems/lock.c: Likewise.
>
>
>     -- 
>     Sebastian Huber, embedded brains GmbH
>
>     Address : Dornierstr. 4, D-82178 Puchheim, Germany
>     Phone   : +49 89 189 47 41-16 <tel:%2B49%2089%20189%2047%2041-16>
>     Fax     : +49 89 189 47 41-09 <tel:%2B49%2089%20189%2047%2041-09>
>     E-Mail  : sebastian.huber@embedded-brains.de
>     <mailto:sebastian.huber@embedded-brains.de>
>     PGP     : Public key available on request.
>
>     Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>
>     _______________________________________________
>     devel mailing list
>     devel@rtems.org <mailto:devel@rtems.org>
>     http://lists.rtems.org/mailman/listinfo/devel
>

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-05-02 11:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-19 12:56 [PATCH v2] [libatomic] Add RTEMS support Sebastian Huber
2016-04-20 12:35 ` Sebastian Huber
2016-04-25  5:40   ` Sebastian Huber
2016-04-27  4:06     ` Jeff Law
     [not found]   ` <CAF9ehCXCggVSCGUMO4uReGafavFD8nQRNi5hHEtEiaf1p8d-SA@mail.gmail.com>
2016-05-02 11:01     ` Sebastian Huber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).