Gilles Chanteperdrix wrote:
Tobias Marschall wrote:
> Hello,
>
> On Thursday 13 April 2006 21:00, you wrote:
> > I saw a similar error when using --enable-x86-sep and not having NPTL
> > enabled in glibc.
> > Try configuring without --enable-x86-sep (used in the README.INSTALL
> > Pentium x86 example, the default is disabled).
> that did the trick, thank you for the hint! I did check that the cpu supported
> the sep instruction, but I wasn't aware that NPTL is required in this case.
>
> Mentioning this in README.INSTALL would be helpful. I wonder if that mistake
> could be caught by configure.
It could be caught by configure, at least if not cross-compiling, by
running getconf GNU_LIBPTHREAD_VERSION.
ie:
[EMAIL PROTECTED] xenomai]$ getconf GNU_LIBPTHREAD_VERSION
NPTL 2.3.6
doesnt /proc/cpuinfo, flags entry, indicate whether the cpu supports SEP ?
flags : fpu vme de pse tsc msr mce cx8 apic mtrr pge mca cmov
pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe est tm2
what x86 processors support --enable-x86-sep ?
Pentium-4 ? Xeon ? Athlon ?
my Pentium-M apparently doesnt.
WRT inferring more stuff from the build/host machine, I have some concerns;
I build on my 686 laptop for a smaller/different 586 target. This is
not 'cross-compilation',
and could be compromised by too many automatic optimizations.
So, ideally, Id like the potentially troublesome optimizations to be
identified and gated by a prompt.
Maybe we need a script thats run on the target box, that collects
the needed configuration factors; presumably including:
CPUFLAGS=`grep flags /proc/cpuinfo`
NPTL_AVAIL=`getconf GNU_LIBPTHREAD_VERSION`
Somewhat related:
prepare-kernel asks me for target architecture, I started by entering
i586 explicitly,
but after a while, just took the i686 default. Ive not noticed anything
different/wrong,
but would appreciate confirmation/explanation.
thanks
jimc
PS. attached is an attempt to improve README.INSTALL along these and
other lines.
Please feel free to cut out the false parts ;-)
Index: README.INSTALL
===================================================================
--- README.INSTALL (revision 927)
+++ README.INSTALL (working copy)
@@ -74,6 +74,19 @@
Once the target kernel has been prepared, all Xenomai configuration
options are available from the "Real-time subsystem" toplevel menu.
+When configuring, you should *disable* PM (power management), ACPI,
+and CPU_FREQ. The 1st 2 invoke uninterruptible BIOS routines, which
+destroy the rt-determinism guarantees that you're presumably seeking.
+If you're curious, build it, install it, and run xeno-test, you'll
+likely see very large latencies. If you see otherwise, please email
+the evidence.
+
+CPU_FREQ is bad because it breaks some timing guarantees on some
+chips, and these problems are too varied/unpredictable to accomodate.
+For example, (my) Pentium-M laptop shows "cpu MHz : 600.000" at idle,
+but 1700 when compiling. Some TSCs also change frequency with the
+processor, making them useless if the clock is changing.
+
Once configured, the kernel should be built as usual.
It might be a good idea to put all the output into a different build
@@ -143,9 +156,11 @@
NAME DESCRIPTION [BINDING,]DEFAULT(*)
--enable-x86-sep Enable x86 SEP instructions strong,disabled
- for issuing syscalls
+ for issuing syscalls.
+ You will also need NPTL
--enable-x86-tsc Enable x86 TSC for timings strong,enabled
+ falls back to PIT if needed
--enable-arm-arch Define version of the target strong,"4"
ARM core architecture
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help