* [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.