Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
* [ltt-dev] [PATCH RFC] Force build failure on unknown architectures
@ 2010-06-15 23:14 Paul E. McKenney
  2010-06-15 23:55 ` Paolo Bonzini
  0 siblings, 1 reply; 9+ messages in thread
From: Paul E. McKenney @ 2010-06-15 23:14 UTC (permalink / raw)


Create urcu/arch_unknown.h and urcu/uatomic_arch_unknown.h, which
contain only #error statements and explanatory comments.  This forces
build failures on unrecognized architectures in preference to trying
to guess at what operations might be safe on such architectures.

One other semi-feasible alternative is to use hashed arrays of locks
that are acquired with signals disabled.  However, this seems a bit
too ornate, especially for architectures for which the gcc __sync_
primitives work correctly.

Signed-off-by: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
---

 arch_unknown.h         |   32 ++++++++++++++++++++++++++++++++
 uatomic_arch_unknown.h |   29 +++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+)

diff --git a/urcu/arch_unknown.h b/urcu/arch_unknown.h
new file mode 100644
index 0000000..91395ff
--- /dev/null
+++ b/urcu/arch_unknown.h
@@ -0,0 +1,32 @@
+#ifndef _URCU_ARCH_UNKNOWN_H
+#define _URCU_ARCH_UNKNOWN_H
+
+/*
+ * arch_unknown.h: #error to prevent build on unknown architectures.
+ *
+ * Copyright (c) 2010 Paul E. McKenney, IBM Corporation.
+ * Copyright (c) 2009 Mathieu Desnoyers <mathieu.desnoyers at polymtl.ca>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * See configure.ac for the list of recognized architectures.
+ * Alternatively, "ls arch_*.h" in this directory, ignoring
+ * this "arch_unknown.h" file.
+ */
+#error "Cannot build: unrecognized architecture detected."
+
+#endif /* _URCU_ARCH_UNKNOWN_H */
diff --git a/urcu/uatomic_arch_unknown.h b/urcu/uatomic_arch_unknown.h
new file mode 100644
index 0000000..d104fe1
--- /dev/null
+++ b/urcu/uatomic_arch_unknown.h
@@ -0,0 +1,29 @@
+#ifndef _URCU_ARCH_UATOMIC_UNKNOWN_H
+#define _URCU_ARCH_UATOMIC_UNKNOWN_H
+
+/* 
+ * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
+ * Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
+ * Copyright (c) 1999-2004 Hewlett-Packard Development Company, L.P.
+ * Copyright (c) 2009      Mathieu Desnoyers
+ * Copyright (c) 2010      Paul E. McKenney, IBM Corporation
+ *			   (Adapted from uatomic_arch_ppc.h)
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
+ * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program
+ * for any purpose,  provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is granted,
+ * provided the above notices are retained, and a notice that the code was
+ * modified is included with the above copyright notice.
+ */
+
+/*
+ * See configure.ac for the list of recognized architectures.
+ * Alternatively, "ls uatomic_arch_*.h" in this directory, ignoring
+ * this "uatomic_arch_unknown.h" file.
+ */
+#error "Cannot build: unrecognized architecture detected."
+
+#endif /* _URCU_ARCH_UATOMIC_UNKNOWN_H */




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

* [ltt-dev] [PATCH RFC] Force build failure on unknown architectures
  2010-06-15 23:14 [ltt-dev] [PATCH RFC] Force build failure on unknown architectures Paul E. McKenney
@ 2010-06-15 23:55 ` Paolo Bonzini
  2010-06-16  0:12   ` Paul E. McKenney
  0 siblings, 1 reply; 9+ messages in thread
From: Paolo Bonzini @ 2010-06-15 23:55 UTC (permalink / raw)


On 06/16/2010 01:14 AM, Paul E. McKenney wrote:
> Create urcu/arch_unknown.h and urcu/uatomic_arch_unknown.h, which
> contain only #error statements and explanatory comments.  This forces
> build failures on unrecognized architectures in preference to trying
> to guess at what operations might be safe on such architectures.
>
> One other semi-feasible alternative is to use hashed arrays of locks
> that are acquired with signals disabled.  However, this seems a bit
> too ornate, especially for architectures for which the gcc __sync_
> primitives work correctly.

ia64 is one.

Paolo




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

* [ltt-dev] [PATCH RFC] Force build failure on unknown architectures
  2010-06-15 23:55 ` Paolo Bonzini
@ 2010-06-16  0:12   ` Paul E. McKenney
  2010-06-16 12:23     ` Paolo Bonzini
  0 siblings, 1 reply; 9+ messages in thread
From: Paul E. McKenney @ 2010-06-16  0:12 UTC (permalink / raw)


On Wed, Jun 16, 2010 at 01:55:13AM +0200, Paolo Bonzini wrote:
> On 06/16/2010 01:14 AM, Paul E. McKenney wrote:
> >Create urcu/arch_unknown.h and urcu/uatomic_arch_unknown.h, which
> >contain only #error statements and explanatory comments.  This forces
> >build failures on unrecognized architectures in preference to trying
> >to guess at what operations might be safe on such architectures.
> >
> >One other semi-feasible alternative is to use hashed arrays of locks
> >that are acquired with signals disabled.  However, this seems a bit
> >too ornate, especially for architectures for which the gcc __sync_
> >primitives work correctly.
> 
> ia64 is one.

Does ia64 work with the current code?  (My guess is "no" -- I believe
that you would get build errors.  But I have been surprised before!)

If my guess is correct, my thought would be to create urcu/arch_gcc.h
and urcu/uatomic_arch_gcc.h files with the appropriate definitions
based on __sync_ primitives.  If you can test on IA64, I would also
be happy to add support for it based on these new files.

Or am I missing your point?

							Thanx, Paul




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

* [ltt-dev] [PATCH RFC] Force build failure on unknown architectures
  2010-06-16  0:12   ` Paul E. McKenney
@ 2010-06-16 12:23     ` Paolo Bonzini
  2010-06-16 13:46       ` Mathieu Desnoyers
  2010-06-16 15:53       ` Paul E. McKenney
  0 siblings, 2 replies; 9+ messages in thread
From: Paolo Bonzini @ 2010-06-16 12:23 UTC (permalink / raw)


On 06/16/2010 02:12 AM, Paul E. McKenney wrote:
> On Wed, Jun 16, 2010 at 01:55:13AM +0200, Paolo Bonzini wrote:
>> On 06/16/2010 01:14 AM, Paul E. McKenney wrote:
>>> Create urcu/arch_unknown.h and urcu/uatomic_arch_unknown.h, which
>>> contain only #error statements and explanatory comments.  This forces
>>> build failures on unrecognized architectures in preference to trying
>>> to guess at what operations might be safe on such architectures.
>>>
>>> One other semi-feasible alternative is to use hashed arrays of locks
>>> that are acquired with signals disabled.  However, this seems a bit
>>> too ornate, especially for architectures for which the gcc __sync_
>>> primitives work correctly.
>>
>> ia64 is one.
>
> Does ia64 work with the current code?  (My guess is "no" -- I believe
> that you would get build errors.  But I have been surprised before!)

I don't know. :)

> If my guess is correct, my thought would be to create urcu/arch_gcc.h
> and urcu/uatomic_arch_gcc.h files with the appropriate definitions
> based on __sync_ primitives.  If you can test on IA64, I would also
> be happy to add support for it based on these new files.

Sure, thanks!

Paolo




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

* [ltt-dev] [PATCH RFC] Force build failure on unknown architectures
  2010-06-16 12:23     ` Paolo Bonzini
@ 2010-06-16 13:46       ` Mathieu Desnoyers
  2010-06-16 15:53         ` Paul E. McKenney
  2010-06-16 15:53       ` Paul E. McKenney
  1 sibling, 1 reply; 9+ messages in thread
From: Mathieu Desnoyers @ 2010-06-16 13:46 UTC (permalink / raw)


* Paolo Bonzini (pbonzini at redhat.com) wrote:
> On 06/16/2010 02:12 AM, Paul E. McKenney wrote:
>> On Wed, Jun 16, 2010 at 01:55:13AM +0200, Paolo Bonzini wrote:
>>> On 06/16/2010 01:14 AM, Paul E. McKenney wrote:
>>>> Create urcu/arch_unknown.h and urcu/uatomic_arch_unknown.h, which
>>>> contain only #error statements and explanatory comments.  This forces
>>>> build failures on unrecognized architectures in preference to trying
>>>> to guess at what operations might be safe on such architectures.
>>>>
>>>> One other semi-feasible alternative is to use hashed arrays of locks
>>>> that are acquired with signals disabled.  However, this seems a bit
>>>> too ornate, especially for architectures for which the gcc __sync_
>>>> primitives work correctly.
>>>
>>> ia64 is one.
>>
>> Does ia64 work with the current code?  (My guess is "no" -- I believe
>> that you would get build errors.  But I have been surprised before!)
>
> I don't know. :)
>
>> If my guess is correct, my thought would be to create urcu/arch_gcc.h
>> and urcu/uatomic_arch_gcc.h files with the appropriate definitions
>> based on __sync_ primitives.  If you can test on IA64, I would also
>> be happy to add support for it based on these new files.
>
> Sure, thanks!

So given the #error on unknown removes ia64 support, I'll wait for a patch
resend before I merge this patch along with the "gcc-based" ia64 support. Is
that OK ? So Paul, could you resend this patch along with the ia64 support based
on gcc ?

Thanks,

Mathieu

>
> Paolo

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com




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

* [ltt-dev] [PATCH RFC] Force build failure on unknown architectures
  2010-06-16 12:23     ` Paolo Bonzini
  2010-06-16 13:46       ` Mathieu Desnoyers
@ 2010-06-16 15:53       ` Paul E. McKenney
  2010-06-16 16:40         ` Paolo Bonzini
  1 sibling, 1 reply; 9+ messages in thread
From: Paul E. McKenney @ 2010-06-16 15:53 UTC (permalink / raw)


On Wed, Jun 16, 2010 at 02:23:18PM +0200, Paolo Bonzini wrote:
> On 06/16/2010 02:12 AM, Paul E. McKenney wrote:
> >On Wed, Jun 16, 2010 at 01:55:13AM +0200, Paolo Bonzini wrote:
> >>On 06/16/2010 01:14 AM, Paul E. McKenney wrote:
> >>>Create urcu/arch_unknown.h and urcu/uatomic_arch_unknown.h, which
> >>>contain only #error statements and explanatory comments.  This forces
> >>>build failures on unrecognized architectures in preference to trying
> >>>to guess at what operations might be safe on such architectures.
> >>>
> >>>One other semi-feasible alternative is to use hashed arrays of locks
> >>>that are acquired with signals disabled.  However, this seems a bit
> >>>too ornate, especially for architectures for which the gcc __sync_
> >>>primitives work correctly.
> >>
> >>ia64 is one.
> >
> >Does ia64 work with the current code?  (My guess is "no" -- I believe
> >that you would get build errors.  But I have been surprised before!)
> 
> I don't know. :)
> 
> >If my guess is correct, my thought would be to create urcu/arch_gcc.h
> >and urcu/uatomic_arch_gcc.h files with the appropriate definitions
> >based on __sync_ primitives.  If you can test on IA64, I would also
> >be happy to add support for it based on these new files.
> 
> Sure, thanks!

Very good!!!

What does "uname -m" say on IA46?  My guess is "ia64", but figured that
I should ask.  ;-)

							Thanx, Paul




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

* [ltt-dev] [PATCH RFC] Force build failure on unknown architectures
  2010-06-16 13:46       ` Mathieu Desnoyers
@ 2010-06-16 15:53         ` Paul E. McKenney
  0 siblings, 0 replies; 9+ messages in thread
From: Paul E. McKenney @ 2010-06-16 15:53 UTC (permalink / raw)


On Wed, Jun 16, 2010 at 09:46:52AM -0400, Mathieu Desnoyers wrote:
> * Paolo Bonzini (pbonzini at redhat.com) wrote:
> > On 06/16/2010 02:12 AM, Paul E. McKenney wrote:
> >> On Wed, Jun 16, 2010 at 01:55:13AM +0200, Paolo Bonzini wrote:
> >>> On 06/16/2010 01:14 AM, Paul E. McKenney wrote:
> >>>> Create urcu/arch_unknown.h and urcu/uatomic_arch_unknown.h, which
> >>>> contain only #error statements and explanatory comments.  This forces
> >>>> build failures on unrecognized architectures in preference to trying
> >>>> to guess at what operations might be safe on such architectures.
> >>>>
> >>>> One other semi-feasible alternative is to use hashed arrays of locks
> >>>> that are acquired with signals disabled.  However, this seems a bit
> >>>> too ornate, especially for architectures for which the gcc __sync_
> >>>> primitives work correctly.
> >>>
> >>> ia64 is one.
> >>
> >> Does ia64 work with the current code?  (My guess is "no" -- I believe
> >> that you would get build errors.  But I have been surprised before!)
> >
> > I don't know. :)
> >
> >> If my guess is correct, my thought would be to create urcu/arch_gcc.h
> >> and urcu/uatomic_arch_gcc.h files with the appropriate definitions
> >> based on __sync_ primitives.  If you can test on IA64, I would also
> >> be happy to add support for it based on these new files.
> >
> > Sure, thanks!
> 
> So given the #error on unknown removes ia64 support, I'll wait for a patch
> resend before I merge this patch along with the "gcc-based" ia64 support. Is
> that OK ? So Paul, could you resend this patch along with the ia64 support based
> on gcc ?

Sounds good -- I will rebase everything against current origin/master
and resend.

							Thanx, Paul




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

* [ltt-dev] [PATCH RFC] Force build failure on unknown architectures
  2010-06-16 15:53       ` Paul E. McKenney
@ 2010-06-16 16:40         ` Paolo Bonzini
  2010-06-16 21:10           ` Paul E. McKenney
  0 siblings, 1 reply; 9+ messages in thread
From: Paolo Bonzini @ 2010-06-16 16:40 UTC (permalink / raw)


On 06/16/2010 05:53 PM, Paul E. McKenney wrote:
> Very good!!!
>
> What does "uname -m" say on IA46?  My guess is "ia64", but figured that
> I should ask.  ;-)

If you mean $host_cpu, yes, that's "ia64".

Paolo




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

* [ltt-dev] [PATCH RFC] Force build failure on unknown architectures
  2010-06-16 16:40         ` Paolo Bonzini
@ 2010-06-16 21:10           ` Paul E. McKenney
  0 siblings, 0 replies; 9+ messages in thread
From: Paul E. McKenney @ 2010-06-16 21:10 UTC (permalink / raw)


On Wed, Jun 16, 2010 at 06:40:46PM +0200, Paolo Bonzini wrote:
> On 06/16/2010 05:53 PM, Paul E. McKenney wrote:
> >Very good!!!
> >
> >What does "uname -m" say on IA46?  My guess is "ia64", but figured that
> >I should ask.  ;-)
> 
> If you mean $host_cpu, yes, that's "ia64".

Very good -- I sent a patch set, please let me know how it goes on
ia64!

							Thanx, Paul




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

end of thread, other threads:[~2010-06-16 21:10 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-15 23:14 [ltt-dev] [PATCH RFC] Force build failure on unknown architectures Paul E. McKenney
2010-06-15 23:55 ` Paolo Bonzini
2010-06-16  0:12   ` Paul E. McKenney
2010-06-16 12:23     ` Paolo Bonzini
2010-06-16 13:46       ` Mathieu Desnoyers
2010-06-16 15:53         ` Paul E. McKenney
2010-06-16 15:53       ` Paul E. McKenney
2010-06-16 16:40         ` Paolo Bonzini
2010-06-16 21:10           ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox