* [Xenomai] xsave/xrstor compilation error @ 2013-10-24 8:40 Jean-Baptiste Tredez 2013-10-24 10:06 ` Jan Kiszka 0 siblings, 1 reply; 6+ messages in thread From: Jean-Baptiste Tredez @ 2013-10-24 8:40 UTC (permalink / raw) To: xenomai@xenomai.org Hi, I tried to upgrade to xenomai 2.6.3 and compilation failed with : linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h: Assembler messages: linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:305: Error: no such instruction: `xrstor (%ebx)' linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:245: Error: no such instruction: `xsave (%esi)' linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:305: Error: no such instruction: `xrstor (%ecx)' linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:245: Error: no such instruction: `xsave (%ecx)' linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:245: Error: no such instruction: `xsave (%ecx)' linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:245: Error: no such instruction: `xsave (%ebx)' I am using kernel 2.6.38.8 with adeos-ipipe-2.6.38.8-x86-2.11-03.patch. I used binutils-2.18.1 and gcc-4.3.2. With a more recent toolchain, there is no compilation failure. Is there a new minimal binutils/gcc version for xenomai 2.6.3 ? Regards, Jean-Baptiste ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai] xsave/xrstor compilation error 2013-10-24 8:40 [Xenomai] xsave/xrstor compilation error Jean-Baptiste Tredez @ 2013-10-24 10:06 ` Jan Kiszka 2013-10-24 15:48 ` Gilles Chanteperdrix 0 siblings, 1 reply; 6+ messages in thread From: Jan Kiszka @ 2013-10-24 10:06 UTC (permalink / raw) To: Jean-Baptiste Tredez, xenomai@xenomai.org On 2013-10-24 09:40, Jean-Baptiste Tredez wrote: > Hi, > > I tried to upgrade to xenomai 2.6.3 and compilation failed with : > > linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h: Assembler messages: > linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:305: Error: no > such instruction: `xrstor (%ebx)' > linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:245: Error: no > such instruction: `xsave (%esi)' > linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:305: Error: no > such instruction: `xrstor (%ecx)' > linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:245: Error: no > such instruction: `xsave (%ecx)' > linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:245: Error: no > such instruction: `xsave (%ecx)' > linux-2.6.38.8/arch/x86/include/asm/xenomai/bits/pod.h:245: Error: no > such instruction: `xsave (%ebx)' > > I am using kernel 2.6.38.8 with adeos-ipipe-2.6.38.8-x86-2.11-03.patch. > I used binutils-2.18.1 and gcc-4.3.2. > With a more recent toolchain, there is no compilation failure. > Is there a new minimal binutils/gcc version for xenomai 2.6.3 ? For x86, some binutils released about 5 years ago (2.20 should be fine, maybe even 2.19). Is upgrading the toolchain not feasible for you? We can, of course, replace the instructions with their obcodes (like the kernel does), just makes the code more ugly. Jan -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai] xsave/xrstor compilation error 2013-10-24 10:06 ` Jan Kiszka @ 2013-10-24 15:48 ` Gilles Chanteperdrix 2013-10-24 16:40 ` Jan Kiszka 0 siblings, 1 reply; 6+ messages in thread From: Gilles Chanteperdrix @ 2013-10-24 15:48 UTC (permalink / raw) To: Jan Kiszka; +Cc: xenomai@xenomai.org On 10/24/2013 12:06 PM, Jan Kiszka wrote: > We > can, of course, replace the instructions with their obcodes (like the > kernel does), just makes the code more ugly. Jan, please do this, even if it makes the code more ugly, it makes sense for the 2.6.3 release to continue working with the tools it already supported. No question for -forge, but we try hard to keep ABI compatibility so that users can upgrade xenomai without even recompiling their application, it does not make sense to suddenly stop working with a toolchain which always worked before. -- Gilles. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai] xsave/xrstor compilation error 2013-10-24 15:48 ` Gilles Chanteperdrix @ 2013-10-24 16:40 ` Jan Kiszka 2013-10-24 17:26 ` Jan Kiszka 0 siblings, 1 reply; 6+ messages in thread From: Jan Kiszka @ 2013-10-24 16:40 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai@xenomai.org On 2013-10-24 16:48, Gilles Chanteperdrix wrote: > On 10/24/2013 12:06 PM, Jan Kiszka wrote: >> We >> can, of course, replace the instructions with their obcodes (like the >> kernel does), just makes the code more ugly. > > Jan, please do this, even if it makes the code more ugly, it makes sense > for the 2.6.3 release to continue working with the tools it already > supported. No question for -forge, but we try hard to keep ABI > compatibility so that users can upgrade xenomai without even recompiling > their application, it does not make sense to suddenly stop working with > a toolchain which always worked before. In fact, we already have legacy gas support: all these new instructions are wrapped with CONFIG_AS_AVX, and only if that is set we use the new assembler instructions. Given that this CONFIG has to be set based on some test, something seems to go wrong in the kernel build over there. But that's outside of the Xenomai scope. I'm currently trying to find out if there was some related kernel issue back then. Jan -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai] xsave/xrstor compilation error 2013-10-24 16:40 ` Jan Kiszka @ 2013-10-24 17:26 ` Jan Kiszka 2013-10-25 7:47 ` Jean-Baptiste Tredez 0 siblings, 1 reply; 6+ messages in thread From: Jan Kiszka @ 2013-10-24 17:26 UTC (permalink / raw) To: Gilles Chanteperdrix, Jean-Baptiste Tredez; +Cc: xenomai@xenomai.org On 2013-10-24 17:40, Jan Kiszka wrote: > On 2013-10-24 16:48, Gilles Chanteperdrix wrote: >> On 10/24/2013 12:06 PM, Jan Kiszka wrote: >>> We >>> can, of course, replace the instructions with their obcodes (like the >>> kernel does), just makes the code more ugly. >> >> Jan, please do this, even if it makes the code more ugly, it makes sense >> for the 2.6.3 release to continue working with the tools it already >> supported. No question for -forge, but we try hard to keep ABI >> compatibility so that users can upgrade xenomai without even recompiling >> their application, it does not make sense to suddenly stop working with >> a toolchain which always worked before. > > In fact, we already have legacy gas support: all these new instructions > are wrapped with CONFIG_AS_AVX, and only if that is set we use the new > assembler instructions. Given that this CONFIG has to be set based on > some test, something seems to go wrong in the kernel build over there. > But that's outside of the Xenomai scope. I'm currently trying to find > out if there was some related kernel issue back then. OK, something likely went wrong in my brain back then while I tried to make this build for all the combinations. I can't recall what those CONFIG_X86_64 tests were for. This should build and in theory also work: diff --git a/include/asm-x86/bits/pod.h b/include/asm-x86/bits/pod.h index a32575f..c6fbcee 100644 --- a/include/asm-x86/bits/pod.h +++ b/include/asm-x86/bits/pod.h @@ -241,7 +241,7 @@ static inline void __save_i387(x86_fpustate *fpup) { #ifdef cpu_has_xsave if (cpu_has_xsave) { -#if defined(CONFIG_AS_AVX) || !defined CONFIG_X86_64 +#if defined(CONFIG_AS_AVX) asm volatile("xsave" XSAVE_SUFFIX " %0" : "=m" (fpup->xsave) : "a" (-1), "d" (-1) : "memory"); @@ -301,7 +301,7 @@ static inline void __restore_i387(x86_fpustate *fpup) { #ifdef cpu_has_xsave if (cpu_has_xsave) { -#if defined(CONFIG_AS_AVX) || !defined(CONFIG_X86_64) +#if defined(CONFIG_AS_AVX) asm volatile("xrstor" XSAVE_SUFFIX " %0" : : "m" (fpup->xsave), "a" (-1), "d" (-1) : "memory"); Jean-Baptiste, do you happen to have an xsave-capable box at hand to test this (/proc/cpuinfo shows the available features)? Xenomai's switchtest will stress the code. Thanks, Jan -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Xenomai] xsave/xrstor compilation error 2013-10-24 17:26 ` Jan Kiszka @ 2013-10-25 7:47 ` Jean-Baptiste Tredez 0 siblings, 0 replies; 6+ messages in thread From: Jean-Baptiste Tredez @ 2013-10-25 7:47 UTC (permalink / raw) To: Jan Kiszka; +Cc: xenomai@xenomai.org On 24/10/2013 19:26, Jan Kiszka wrote : > On 2013-10-24 17:40, Jan Kiszka wrote: >> On 2013-10-24 16:48, Gilles Chanteperdrix wrote: >>> On 10/24/2013 12:06 PM, Jan Kiszka wrote: >>>> We >>>> can, of course, replace the instructions with their obcodes (like the >>>> kernel does), just makes the code more ugly. >>> Jan, please do this, even if it makes the code more ugly, it makes sense >>> for the 2.6.3 release to continue working with the tools it already >>> supported. No question for -forge, but we try hard to keep ABI >>> compatibility so that users can upgrade xenomai without even recompiling >>> their application, it does not make sense to suddenly stop working with >>> a toolchain which always worked before. >> In fact, we already have legacy gas support: all these new instructions >> are wrapped with CONFIG_AS_AVX, and only if that is set we use the new >> assembler instructions. Given that this CONFIG has to be set based on >> some test, something seems to go wrong in the kernel build over there. >> But that's outside of the Xenomai scope. I'm currently trying to find >> out if there was some related kernel issue back then. > OK, something likely went wrong in my brain back then while I tried to > make this build for all the combinations. I can't recall what those > CONFIG_X86_64 tests were for. This should build and in theory also work: > > diff --git a/include/asm-x86/bits/pod.h b/include/asm-x86/bits/pod.h > index a32575f..c6fbcee 100644 > --- a/include/asm-x86/bits/pod.h > +++ b/include/asm-x86/bits/pod.h > @@ -241,7 +241,7 @@ static inline void __save_i387(x86_fpustate *fpup) > { > #ifdef cpu_has_xsave > if (cpu_has_xsave) { > -#if defined(CONFIG_AS_AVX) || !defined CONFIG_X86_64 > +#if defined(CONFIG_AS_AVX) > asm volatile("xsave" XSAVE_SUFFIX " %0" > : "=m" (fpup->xsave) : "a" (-1), "d" (-1) > : "memory"); > @@ -301,7 +301,7 @@ static inline void __restore_i387(x86_fpustate *fpup) > { > #ifdef cpu_has_xsave > if (cpu_has_xsave) { > -#if defined(CONFIG_AS_AVX) || !defined(CONFIG_X86_64) > +#if defined(CONFIG_AS_AVX) > asm volatile("xrstor" XSAVE_SUFFIX " %0" > : : "m" (fpup->xsave), "a" (-1), "d" (-1) > : "memory"); > > Jean-Baptiste, do you happen to have an xsave-capable box at hand to > test this (/proc/cpuinfo shows the available features)? Xenomai's > switchtest will stress the code. > > Thanks, > Jan > No, I do not have an xsave-capable box (no xsave or avx flag, only fxsr). This patch works fine here. Jean-Baptiste ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-10-25 7:47 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-10-24 8:40 [Xenomai] xsave/xrstor compilation error Jean-Baptiste Tredez 2013-10-24 10:06 ` Jan Kiszka 2013-10-24 15:48 ` Gilles Chanteperdrix 2013-10-24 16:40 ` Jan Kiszka 2013-10-24 17:26 ` Jan Kiszka 2013-10-25 7:47 ` Jean-Baptiste Tredez
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.