All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] Xenomai 2.6.2 user-space compilation error on ARM < armv6
@ 2012-12-30 15:51 Romain Naour
  2012-12-30 16:56 ` Gilles Chanteperdrix
  2012-12-30 22:15 ` Gilles Chanteperdrix
  0 siblings, 2 replies; 6+ messages in thread
From: Romain Naour @ 2012-12-30 15:51 UTC (permalink / raw)
  To: xenomai

Hi Gilles,

First of all, thank you for the new release of Xenomai :)

I'm compiling Xenomai 2.6.2 and Linux kernel 3.5.3 for mini2440 with buildroot 2012.11.

During compilation I get the following error:
error: #error "SMP not supported below armv6, compile with -march=armv6 or above"

This error is caused by the SMP mode which is now enabled by default on ARM.
So I added the option --disable-smp on the buildroot's command line for ./configure
(buildroot assumes that the SMP mode is not enabled when it compile Xenomai for arm) 

This option became mandatory for ARM < armv6 to pass this test: (xenomai-2.6/include/asm-arm/feature.h)

#if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP)
#error "SMP not supported below armv6, compile with -march=armv6 or above"
#endif

The error message may be advisable to add the option --disable-smp ?
However, since your objective is to allow to run the same binary on UP and SMP system, it is safe to remove this test for ARM < armv6 now ?

Regards,
Romain


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

* Re: [Xenomai] Xenomai 2.6.2 user-space compilation error on ARM < armv6
  2012-12-30 15:51 [Xenomai] Xenomai 2.6.2 user-space compilation error on ARM < armv6 Romain Naour
@ 2012-12-30 16:56 ` Gilles Chanteperdrix
  2012-12-30 22:15 ` Gilles Chanteperdrix
  1 sibling, 0 replies; 6+ messages in thread
From: Gilles Chanteperdrix @ 2012-12-30 16:56 UTC (permalink / raw)
  To: Romain Naour; +Cc: xenomai

On 12/30/2012 04:51 PM, Romain Naour wrote:

> Hi Gilles,
> 
> First of all, thank you for the new release of Xenomai :)
> 
> I'm compiling Xenomai 2.6.2 and Linux kernel 3.5.3 for mini2440 with buildroot 2012.11.
> 
> During compilation I get the following error:
> error: #error "SMP not supported below armv6, compile with -march=armv6 or above"
> 
> This error is caused by the SMP mode which is now enabled by default on ARM.
> So I added the option --disable-smp on the buildroot's command line for ./configure
> (buildroot assumes that the SMP mode is not enabled when it compile Xenomai for arm) 
> 
> This option became mandatory for ARM < armv6 to pass this test: (xenomai-2.6/include/asm-arm/feature.h)
> 
> #if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP)
> #error "SMP not supported below armv6, compile with -march=armv6 or above"
> #endif
> 
> The error message may be advisable to add the option --disable-smp ?
> However, since your objective is to allow to run the same binary on UP and SMP system, it is safe to remove this test for ARM < armv6 now ?


Hi Romain,

thanks for the report, this test only makes sense if compiling with the
"ad-hoc" atomic operations, with the default setting which is to use gcc
atomic operations, we can remove the test.

Will fix for 2.6.2.1, thanks for the report.

Regards.

-- 
                                                                Gilles.


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

* Re: [Xenomai] Xenomai 2.6.2 user-space compilation error on ARM < armv6
  2012-12-30 15:51 [Xenomai] Xenomai 2.6.2 user-space compilation error on ARM < armv6 Romain Naour
  2012-12-30 16:56 ` Gilles Chanteperdrix
@ 2012-12-30 22:15 ` Gilles Chanteperdrix
  2012-12-31 11:30   ` Romain Naour
  1 sibling, 1 reply; 6+ messages in thread
From: Gilles Chanteperdrix @ 2012-12-30 22:15 UTC (permalink / raw)
  To: Romain Naour; +Cc: xenomai

On 12/30/2012 04:51 PM, Romain Naour wrote:

> Hi Gilles,
> 
> First of all, thank you for the new release of Xenomai :)
> 
> I'm compiling Xenomai 2.6.2 and Linux kernel 3.5.3 for mini2440 with
> buildroot 2012.11.
> 
> During compilation I get the following error: error: #error "SMP not
> supported below armv6, compile with -march=armv6 or above"
> 
> This error is caused by the SMP mode which is now enabled by default
> on ARM. So I added the option --disable-smp on the buildroot's
> command line for ./configure (buildroot assumes that the SMP mode is
> not enabled when it compile Xenomai for arm)
> 
> This option became mandatory for ARM < armv6 to pass this test:
> (xenomai-2.6/include/asm-arm/feature.h)
> 
> #if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP) #error "SMP not
> supported below armv6, compile with -march=armv6 or above" #endif
> 
> The error message may be advisable to add the option --disable-smp ? 
> However, since your objective is to allow to run the same binary on
> UP and SMP system, it is safe to remove this test for ARM < armv6 now
> ?


Could you try the following patch?

diff --git a/include/asm-arm/atomic_asm.h b/include/asm-arm/atomic_asm.h
index 47f17c9..ef62690 100644
--- a/include/asm-arm/atomic_asm.h
+++ b/include/asm-arm/atomic_asm.h
@@ -27,6 +27,10 @@
 #error "please don't include asm/atomic_asm.h directly"
 #endif
 
+#if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP)
+#error "SMP not supported below armv6 with ad-hoc atomic operations, compile without SMP or with -march=armv6 or above"
+#endif
+
 extern void __xnarch_xchg_called_with_bad_pointer(void);
 
 #define xnarch_read_memory_barrier()		xnarch_memory_barrier()
diff --git a/include/asm-arm/features.h b/include/asm-arm/features.h
index 279f752..bddaa5e 100644
--- a/include/asm-arm/features.h
+++ b/include/asm-arm/features.h
@@ -73,10 +73,6 @@
 #error "Could not find current ARM architecture"
 #endif
 
-#if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP)
-#error "SMP not supported below armv6, compile with -march=armv6 or above"
-#endif
-
 #define CONFIG_XENO_FASTSYNCH 1
 
 #if CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_KUSER

-- 
                                                                Gilles.


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

* Re: [Xenomai] Xenomai 2.6.2 user-space compilation error on ARM < armv6
  2012-12-30 22:15 ` Gilles Chanteperdrix
@ 2012-12-31 11:30   ` Romain Naour
  2013-01-02 23:38     ` Romain Naour
  0 siblings, 1 reply; 6+ messages in thread
From: Romain Naour @ 2012-12-31 11:30 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: xenomai

Le 30/12/2012 23:15, Gilles Chanteperdrix a écrit :
> On 12/30/2012 04:51 PM, Romain Naour wrote:
> 
>> Hi Gilles,
>>
>> First of all, thank you for the new release of Xenomai :)
>>
>> I'm compiling Xenomai 2.6.2 and Linux kernel 3.5.3 for mini2440 with
>> buildroot 2012.11.
>>
>> During compilation I get the following error: error: #error "SMP not
>> supported below armv6, compile with -march=armv6 or above"
>>
>> This error is caused by the SMP mode which is now enabled by default
>> on ARM. So I added the option --disable-smp on the buildroot's
>> command line for ./configure (buildroot assumes that the SMP mode is
>> not enabled when it compile Xenomai for arm)
>>
>> This option became mandatory for ARM < armv6 to pass this test:
>> (xenomai-2.6/include/asm-arm/feature.h)
>>
>> #if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP) #error "SMP not
>> supported below armv6, compile with -march=armv6 or above" #endif
>>
>> The error message may be advisable to add the option --disable-smp ? 
>> However, since your objective is to allow to run the same binary on
>> UP and SMP system, it is safe to remove this test for ARM < armv6 now
>> ?
> 
> 
> Could you try the following patch?
> 
> diff --git a/include/asm-arm/atomic_asm.h b/include/asm-arm/atomic_asm.h
> index 47f17c9..ef62690 100644
> --- a/include/asm-arm/atomic_asm.h
> +++ b/include/asm-arm/atomic_asm.h
> @@ -27,6 +27,10 @@
>  #error "please don't include asm/atomic_asm.h directly"
>  #endif
>  
> +#if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP)
> +#error "SMP not supported below armv6 with ad-hoc atomic operations, compile without SMP or with -march=armv6 or above"
> +#endif
> +
>  extern void __xnarch_xchg_called_with_bad_pointer(void);
>  
>  #define xnarch_read_memory_barrier()		xnarch_memory_barrier()
> diff --git a/include/asm-arm/features.h b/include/asm-arm/features.h
> index 279f752..bddaa5e 100644
> --- a/include/asm-arm/features.h
> +++ b/include/asm-arm/features.h
> @@ -73,10 +73,6 @@
>  #error "Could not find current ARM architecture"
>  #endif
>  
> -#if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP)
> -#error "SMP not supported below armv6, compile with -march=armv6 or above"
> -#endif
> -
>  #define CONFIG_XENO_FASTSYNCH 1
>  
>  #if CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_KUSER
> 

Hi Gilles,

I applied your patch and tried to compile with the following options:
--with-atomic-ops=ad-hoc
As expected, the build fails with this error:
#error "SMP not supported below armv6 with ad-hoc atomic operations,
compile without SMP or with -march=armv6 or above"

--with-atomic-ops=builtins (or when this option is not specified)
The build ends correctly.
I haven't the board at this time, I'll do a test this week.

Regards,
Romain


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

* Re: [Xenomai] Xenomai 2.6.2 user-space compilation error on ARM < armv6
  2012-12-31 11:30   ` Romain Naour
@ 2013-01-02 23:38     ` Romain Naour
  2013-01-03 20:12       ` Gilles Chanteperdrix
  0 siblings, 1 reply; 6+ messages in thread
From: Romain Naour @ 2013-01-02 23:38 UTC (permalink / raw)
  To: xenomai

Le 31/12/2012 12:30, Romain Naour a écrit :
> Le 30/12/2012 23:15, Gilles Chanteperdrix a écrit :
>> On 12/30/2012 04:51 PM, Romain Naour wrote:
>>
>>> Hi Gilles,
>>>
>>> First of all, thank you for the new release of Xenomai :)
>>>
>>> I'm compiling Xenomai 2.6.2 and Linux kernel 3.5.3 for mini2440 with
>>> buildroot 2012.11.
>>>
>>> During compilation I get the following error: error: #error "SMP not
>>> supported below armv6, compile with -march=armv6 or above"
>>>
>>> This error is caused by the SMP mode which is now enabled by default
>>> on ARM. So I added the option --disable-smp on the buildroot's
>>> command line for ./configure (buildroot assumes that the SMP mode is
>>> not enabled when it compile Xenomai for arm)
>>>
>>> This option became mandatory for ARM < armv6 to pass this test:
>>> (xenomai-2.6/include/asm-arm/feature.h)
>>>
>>> #if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP) #error "SMP not
>>> supported below armv6, compile with -march=armv6 or above" #endif
>>>
>>> The error message may be advisable to add the option --disable-smp ? 
>>> However, since your objective is to allow to run the same binary on
>>> UP and SMP system, it is safe to remove this test for ARM < armv6 now
>>> ?
>>
>>
>> Could you try the following patch?
>>
>> diff --git a/include/asm-arm/atomic_asm.h b/include/asm-arm/atomic_asm.h
>> index 47f17c9..ef62690 100644
>> --- a/include/asm-arm/atomic_asm.h
>> +++ b/include/asm-arm/atomic_asm.h
>> @@ -27,6 +27,10 @@
>>  #error "please don't include asm/atomic_asm.h directly"
>>  #endif
>>  
>> +#if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP)
>> +#error "SMP not supported below armv6 with ad-hoc atomic operations, compile without SMP or with -march=armv6 or above"
>> +#endif
>> +
>>  extern void __xnarch_xchg_called_with_bad_pointer(void);
>>  
>>  #define xnarch_read_memory_barrier()		xnarch_memory_barrier()
>> diff --git a/include/asm-arm/features.h b/include/asm-arm/features.h
>> index 279f752..bddaa5e 100644
>> --- a/include/asm-arm/features.h
>> +++ b/include/asm-arm/features.h
>> @@ -73,10 +73,6 @@
>>  #error "Could not find current ARM architecture"
>>  #endif
>>  
>> -#if __LINUX_ARM_ARCH__ < 6 && defined(CONFIG_SMP)
>> -#error "SMP not supported below armv6, compile with -march=armv6 or above"
>> -#endif
>> -
>>  #define CONFIG_XENO_FASTSYNCH 1
>>  
>>  #if CONFIG_XENO_ARM_TSC_TYPE == __XN_TSC_TYPE_KUSER
>>
> 
> Hi Gilles,
> 
> I applied your patch and tried to compile with the following options:
> --with-atomic-ops=ad-hoc
> As expected, the build fails with this error:
> #error "SMP not supported below armv6 with ad-hoc atomic operations,
> compile without SMP or with -march=armv6 or above"
> 
> --with-atomic-ops=builtins (or when this option is not specified)
> The build ends correctly.
> I haven't the board at this time, I'll do a test this week.
> 
> Regards,
> Romain
> 
> _______________________________________________
> Xenomai mailing list
> Xenomai@xenomai.org
> http://www.xenomai.org/mailman/listinfo/xenomai
> 

Hi Gilles,

I did a test today with your previous patch, it works correctly.
However the following patch is required since the new ipipe-core.

Signed-off-by: Naour Romain <romain.naour@openwide.fr>
---

We need a minimal reload value for s3c2410_itimer, otherwise the hardware timer stops.

 arch/arm/plat-samsung/time.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/plat-samsung/time.c b/arch/arm/plat-samsung/time.c
index 8d14b85..97fbdc5 100644
--- a/arch/arm/plat-samsung/time.c
+++ b/arch/arm/plat-samsung/time.c
@@ -364,6 +364,8 @@ static void s3c2410_timer_setup (void)
 
 #ifdef CONFIG_IPIPE
 	s3c2410_itimer.freq = tcnt * HZ;
+	/* hardware timer can't be reloaded below 120ns */
+	s3c2410_itimer.min_delay_ticks = ipipe_timer_ns2ticks(&s3c2410_itimer, 120);
 	ipipe_timer_register(&s3c2410_itimer);
 #endif /* CONFIG_IPIPE */
 }
-- 
1.8.0.3




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

* Re: [Xenomai] Xenomai 2.6.2 user-space compilation error on ARM < armv6
  2013-01-02 23:38     ` Romain Naour
@ 2013-01-03 20:12       ` Gilles Chanteperdrix
  0 siblings, 0 replies; 6+ messages in thread
From: Gilles Chanteperdrix @ 2013-01-03 20:12 UTC (permalink / raw)
  To: Romain Naour; +Cc: xenomai

On 01/03/2013 12:38 AM, Romain Naour wrote:

> Hi Gilles,
> 
> I did a test today with your previous patch, it works correctly.
> However the following patch is required since the new ipipe-core.
> 
> Signed-off-by: Naour Romain <romain.naour@openwide.fr>
> ---
> 
> We need a minimal reload value for s3c2410_itimer, otherwise the hardware timer stops.
> 
>  arch/arm/plat-samsung/time.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/plat-samsung/time.c b/arch/arm/plat-samsung/time.c
> index 8d14b85..97fbdc5 100644
> --- a/arch/arm/plat-samsung/time.c
> +++ b/arch/arm/plat-samsung/time.c
> @@ -364,6 +364,8 @@ static void s3c2410_timer_setup (void)
>  
>  #ifdef CONFIG_IPIPE
>  	s3c2410_itimer.freq = tcnt * HZ;
> +	/* hardware timer can't be reloaded below 120ns */
> +	s3c2410_itimer.min_delay_ticks = ipipe_timer_ns2ticks(&s3c2410_itimer, 120);
>  	ipipe_timer_register(&s3c2410_itimer);
>  #endif /* CONFIG_IPIPE */
>  }


Merged, thanks.

-- 
                                                                Gilles.


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

end of thread, other threads:[~2013-01-03 20:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-30 15:51 [Xenomai] Xenomai 2.6.2 user-space compilation error on ARM < armv6 Romain Naour
2012-12-30 16:56 ` Gilles Chanteperdrix
2012-12-30 22:15 ` Gilles Chanteperdrix
2012-12-31 11:30   ` Romain Naour
2013-01-02 23:38     ` Romain Naour
2013-01-03 20:12       ` Gilles Chanteperdrix

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.