* [Xenomai-core] Patches: README.install & examples/common for cross-compiling
@ 2006-12-21 21:59 Niklaus Giger
2006-12-21 22:40 ` Wolfgang Denk
2006-12-22 7:45 ` [Xenomai-core] Patches: README.install & examples/common for cross-compiling Wolfgang Grandegger
0 siblings, 2 replies; 6+ messages in thread
From: Niklaus Giger @ 2006-12-21 21:59 UTC (permalink / raw)
To: xenomai
[-- Attachment #1: Type: text/plain, Size: 630 bytes --]
Hi
After switching my development environment to a MacMini and using the ELDK 4.0
I discovered that my examples for building using a cross-compiler for my
PPC405 target were not correct. (Maybe a few of my previous problems were
caused by not correctly specifying the target ARCH.)
Also I would like to adapt and document the examples/common/Makefile to the
needs for cross-compiling (KSRC/XENOCONFIG/DESTDIR useage). Also I added a
target "install" to copy the generated application to $(DESTDIR)/usr/xenomai.
Could someone please commit these (or a improved version of it) patches?
Thanks in advance
--
Niklaus Giger
[-- Attachment #2: common.patch --]
[-- Type: text/x-diff, Size: 1245 bytes --]
Index: examples/common/Makefile
===================================================================
--- examples/common/Makefile (Revision 1970)
+++ examples/common/Makefile (Arbeitskopie)
@@ -3,9 +3,9 @@
### List of applications to be build
APPLICATIONS = hw_direct_io
-### Note: to override the search path for the xeno-config script, use "make XENO=..."
+### Note: to override the search path for the xeno-config script, use "make XENOCONFIG=..."
+### Note: if you installed it into a non standard place add DESTDIR=/path/to/installed/xenomai"
-
### List of modules to be build
MODULES =
@@ -24,7 +24,9 @@
### Sanity check
ifeq ($(XENOCONFIG),)
all::
- @echo ">>> Invoke make like this: \"make XENO=/path/to/xeno-config\" <<<"
+ @echo ">>> Invoke make like this: \"make XENOCONFIG=/path/to/xeno-config\" <<<"
+ @echo ">>> add KSRC=.. to override the default kernel source at /lib/modules/$(shell uname -r)/build <<<"
+ @echo ">>> add DESTDIR=/path/to/installed/xenomai if you installed it into a non standard place <<<"
@echo
endif
@@ -40,6 +42,9 @@
clean::
$(RM) $(APPLICATIONS) *.o
+install: $(APPLICATIONS)
+ cp $(APPLICATIONS) $(DESTDIR)/usr/xenomai/bin
+
endif
@@ -80,3 +85,4 @@
$(RM) -R .tmp*
endif
+
[-- Attachment #3: readme.patch --]
[-- Type: text/x-diff, Size: 1456 bytes --]
Index: README.INSTALL
===================================================================
--- README.INSTALL (Revision 1957)
+++ README.INSTALL (Arbeitskopie)
@@ -276,19 +276,20 @@
-----------------------------------------
A typical cross-compilation setup, in order to build Xenomai for a
-PowerPC-405-based system:
+PowerPC-405-based system (assuming an ELDK cross-compiler and a 2.6.14 kernel)
$ $xenomai_root/scripts/prepare-kernel.sh --arch=powerpc \
--adeos=$xenomai_root/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.14-ppc-X.Y-ZZ.patch \
--linux=$linux_tree
$ cd $linux_tree
-$ mkdir ../build-powerpc-405-2.6.14
-$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=../build-powerpc-405-2.6.14 xconfig/gconfig/menuconfig
+$ build_root /path/to/build-powerpc-405-2.6.14
+$ mkdir $build_root
+$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=$build_root xconfig/gconfig/menuconfig
# select the kernel and Xenomai options
-$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=../build-powerpc-405-2.6.14 bzImage modules
+$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=$build_root bzImage modules
# then install as needed
-$ mkdir $build_root && cd $build_root
-$ $xenomai_root/configure --build=i686-linux --host=powerpc-405-linux-gnu
+$ cd $build_root
+$ $xenomai_root/configure --build=i686-linux --host=powerpc-405-linux-gnu CC=ppc_4xx-gcc CXX=ppc_4xx-g++ LD=ppc_4xx-ld
$ make install
2.3 Building for the IPF
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai-core] Patches: README.install & examples/common for cross-compiling
2006-12-21 21:59 [Xenomai-core] Patches: README.install & examples/common for cross-compiling Niklaus Giger
@ 2006-12-21 22:40 ` Wolfgang Denk
2006-12-23 22:51 ` [Xenomai-core] Patches: README.install Niklaus Giger
2006-12-22 7:45 ` [Xenomai-core] Patches: README.install & examples/common for cross-compiling Wolfgang Grandegger
1 sibling, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2006-12-21 22:40 UTC (permalink / raw)
To: niklaus.giger; +Cc: xenomai
Dear Niklaus,
in message <200612212259.06016.niklaus.giger@domain.hid> you wrote:
>
> -PowerPC-405-based system:
> +PowerPC-405-based system (assuming an ELDK cross-compiler and a 2.6.14 kernel)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This...
> +$ build_root /path/to/build-powerpc-405-2.6.14
> +$ mkdir $build_root
> +$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=$build_root xconfig/gconfig/menuconfig
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
> +$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=$build_root bzImage modules
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
> +$ $xenomai_root/configure --build=i686-linux --host=powerpc-405-linux-gnu CC=ppc_4xx-gcc CXX=ppc_4xx-g++ LD=ppc_4xx-ld
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...and this seems contradictory to me. If you use the ELDK, then it's
"CROSS_COMPILE=ppc_4xx-"; also, I would expect that you set
"--target=powerpc-linux". I mean, with ELDK, "powerpc-405-linux-gnu"
will neither work as CROSS_COMPILE prefix, nor as a host / target
name.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@domain.hid
People are always a lot more complicated than you think. It's very
important to remember that. - Terry Pratchett, _Truckers_
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai-core] Patches: README.install & examples/common for cross-compiling
2006-12-21 21:59 [Xenomai-core] Patches: README.install & examples/common for cross-compiling Niklaus Giger
2006-12-21 22:40 ` Wolfgang Denk
@ 2006-12-22 7:45 ` Wolfgang Grandegger
2006-12-23 21:19 ` Niklaus Giger
1 sibling, 1 reply; 6+ messages in thread
From: Wolfgang Grandegger @ 2006-12-22 7:45 UTC (permalink / raw)
To: niklaus.giger; +Cc: xenomai
Hi Niklaus,
Niklaus Giger wrote:
> Hi
>
> After switching my development environment to a MacMini and using the ELDK 4.0
> I discovered that my examples for building using a cross-compiler for my
> PPC405 target were not correct. (Maybe a few of my previous problems were
> caused by not correctly specifying the target ARCH.)
>
> Also I would like to adapt and document the examples/common/Makefile to the
> needs for cross-compiling (KSRC/XENOCONFIG/DESTDIR useage). Also I added a
> target "install" to copy the generated application to $(DESTDIR)/usr/xenomai.
Hm, I don't have examples/common/Makefile in my SVN Xenomai tree. And
/usr/xenomai should be the configurable.
> Could someone please commit these (or a improved version of it) patches?
> Thanks in advance
>
>
>
> ------------------------------------------------------------------------
>
> Index: examples/common/Makefile
> ===================================================================
> --- examples/common/Makefile (Revision 1970)
> +++ examples/common/Makefile (Arbeitskopie)
> @@ -3,9 +3,9 @@
> ### List of applications to be build
> APPLICATIONS = hw_direct_io
>
> -### Note: to override the search path for the xeno-config script, use "make XENO=..."
> +### Note: to override the search path for the xeno-config script, use "make XENOCONFIG=..."
> +### Note: if you installed it into a non standard place add DESTDIR=/path/to/installed/xenomai"
>
> -
> ### List of modules to be build
> MODULES =
>
> @@ -24,7 +24,9 @@
> ### Sanity check
> ifeq ($(XENOCONFIG),)
> all::
> - @echo ">>> Invoke make like this: \"make XENO=/path/to/xeno-config\" <<<"
> + @echo ">>> Invoke make like this: \"make XENOCONFIG=/path/to/xeno-config\" <<<"
> + @echo ">>> add KSRC=.. to override the default kernel source at /lib/modules/$(shell uname -r)/build <<<"
> + @echo ">>> add DESTDIR=/path/to/installed/xenomai if you installed it into a non standard place <<<"
> @echo
> endif
>
> @@ -40,6 +42,9 @@
> clean::
> $(RM) $(APPLICATIONS) *.o
>
> +install: $(APPLICATIONS)
> + cp $(APPLICATIONS) $(DESTDIR)/usr/xenomai/bin
> +
> endif
>
>
> @@ -80,3 +85,4 @@
> $(RM) -R .tmp*
>
> endif
> +
>
>
> ------------------------------------------------------------------------
>
> Index: README.INSTALL
> ===================================================================
> --- README.INSTALL (Revision 1957)
> +++ README.INSTALL (Arbeitskopie)
> @@ -276,19 +276,20 @@
> -----------------------------------------
>
> A typical cross-compilation setup, in order to build Xenomai for a
> -PowerPC-405-based system:
> +PowerPC-405-based system (assuming an ELDK cross-compiler and a 2.6.14 kernel)
>
> $ $xenomai_root/scripts/prepare-kernel.sh --arch=powerpc \
> --adeos=$xenomai_root/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.14-ppc-X.Y-ZZ.patch \
> --linux=$linux_tree
For the time beeing, we must distinguish between --arch=ppc (ARCH=ppc)
and --arch=powerpc (ARCH=powerpc). The latter is not yet supported.
> $ cd $linux_tree
> -$ mkdir ../build-powerpc-405-2.6.14
> -$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=../build-powerpc-405-2.6.14 xconfig/gconfig/menuconfig
For the ELDK CROSS_COMPILE must be ppc_4xx- for AMCC 4xx processors.
> +$ build_root /path/to/build-powerpc-405-2.6.14
> +$ mkdir $build_root
> +$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=$build_root xconfig/gconfig/menuconfig
> # select the kernel and Xenomai options
> -$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=../build-powerpc-405-2.6.14 bzImage modules
> +$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=$build_root bzImage modules
> # then install as needed
> -$ mkdir $build_root && cd $build_root
> -$ $xenomai_root/configure --build=i686-linux --host=powerpc-405-linux-gnu
> +$ cd $build_root
> +$ $xenomai_root/configure --build=i686-linux --host=powerpc-405-linux-gnu CC=ppc_4xx-gcc CXX=ppc_4xx-g++ LD=ppc_4xx-ld
$ $xenomai_root/configure --host=ppc-linux
already works fine for all ELDK tool chains. The --prefix should also
be configurable.
> $ make install
>
> 2.3 Building for the IPF
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Xenomai-core mailing list
> Xenomai-core@domain.hid
> https://mail.gna.org/listinfo/xenomai-core
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai-core] Patches: README.install & examples/common for cross-compiling
2006-12-22 7:45 ` [Xenomai-core] Patches: README.install & examples/common for cross-compiling Wolfgang Grandegger
@ 2006-12-23 21:19 ` Niklaus Giger
0 siblings, 0 replies; 6+ messages in thread
From: Niklaus Giger @ 2006-12-23 21:19 UTC (permalink / raw)
To: Wolfgang Grandegger; +Cc: xenomai
[-- Attachment #1: Type: text/plain, Size: 961 bytes --]
Am Freitag, 22. Dezember 2006 08:45 schrieb Wolfgang Grandegger:
> Hi Niklaus,
>
> Niklaus Giger wrote:
> > Hi
> >
> > After switching my development environment to a MacMini and using the
> > ELDK 4.0 I discovered that my examples for building using a
> > cross-compiler for my PPC405 target were not correct. (Maybe a few of my
> > previous problems were caused by not correctly specifying the target
> > ARCH.)
> >
> > Also I would like to adapt and document the examples/common/Makefile to
> > the needs for cross-compiling (KSRC/XENOCONFIG/DESTDIR useage). Also I
> > added a target "install" to copy the generated application to
> > $(DESTDIR)/usr/xenomai.
>
> Hm, I don't have examples/common/Makefile in my SVN Xenomai tree. And
Added by revision 1970 only. Makefile came from Jan for my example
hw_direct_io.
> /usr/xenomai should be the configurable.
Does the attached patch look better for you (using EXEC_PREFIX) ?
Best regards
--
Niklaus Giger
[-- Attachment #2: make.patch --]
[-- Type: text/x-diff, Size: 1484 bytes --]
Index: examples/common/Makefile
===================================================================
--- examples/common/Makefile (Revision 1980)
+++ examples/common/Makefile (Arbeitskopie)
@@ -3,9 +3,9 @@
### List of applications to be build
APPLICATIONS = hw_direct_io
-### Note: to override the search path for the xeno-config script, use "make XENO=..."
+### Note: to override the search path for the xeno-config script, use "make XENOCONFIG=..."
+### Note: if you installed it into a non standard place add DESTDIR=/path/to/installed/xenomai"
-
### List of modules to be build
MODULES =
@@ -14,6 +14,8 @@
### Note: to override the kernel source path, use "make KSRC=..."
+# default place to install the resulting binaries
+EXEC_PREFIX := $(DESTDIR)/usr/xenomai/bin
###### USER SPACE BUILD (no change required normally) ######
@@ -24,7 +26,9 @@
### Sanity check
ifeq ($(XENOCONFIG),)
all::
- @echo ">>> Invoke make like this: \"make XENO=/path/to/xeno-config\" <<<"
+ @echo ">>> Invoke make like this: \"make XENOCONFIG=/path/to/xeno-config\" <<<"
+ @echo ">>> add KSRC=.. to override the default kernel source at /lib/modules/$(shell uname -r)/build <<<"
+ @echo ">>> add DESTDIR=/path/to/installed/xenomai if you installed it into a non standard place <<<"
@echo
endif
@@ -40,6 +44,9 @@
clean::
$(RM) $(APPLICATIONS) *.o
+install:: $(APPLICATIONS)
+ cp $(APPLICATIONS) $(EXEC_PREFIX)/
+
endif
@@ -80,3 +87,4 @@
$(RM) -R .tmp*
endif
+
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai-core] Patches: README.install
2006-12-21 22:40 ` Wolfgang Denk
@ 2006-12-23 22:51 ` Niklaus Giger
2006-12-23 23:47 ` Wolfgang Denk
0 siblings, 1 reply; 6+ messages in thread
From: Niklaus Giger @ 2006-12-23 22:51 UTC (permalink / raw)
To: Wolfgang Denk; +Cc: xenomai
[-- Attachment #1: Type: text/plain, Size: 667 bytes --]
Am Donnerstag, 21. Dezember 2006 23:40 schrieb Wolfgang Denk:
> Dear Niklaus,
>
Dear Wolfgang
Thanks your for spotting my errors. I should have rechecked this patch before
submitting it, as it was based on a outdated script. Please review the
attached patch again which is based on a script which actually ran and
produced a running kernel.
I would also thanks you for providing the ELDK. It was really a lot easier
to setup the ELDK once I switched from my PPC PowerBook to a MacMini. I can
really recommend it.
The only addition to the ELDK I made to run xeno-test was to copy my
Debian /usr/bin/which to the rootfs.
<..>
Best regards
--
Niklaus Giger
[-- Attachment #2: readme.patch --]
[-- Type: text/x-diff, Size: 2181 bytes --]
Index: README.INSTALL
===================================================================
--- README.INSTALL (Revision 1980)
+++ README.INSTALL (Arbeitskopie)
@@ -192,6 +192,12 @@
from the cross-compilation tools prefix, you will have to manually
pass the name of all compilation tools on configure command line.
+If you want to avoid to build your own cross compiler, you might if find
+easier to use ELDK (see http://www.denx.de/wiki/DULG/ELDK). It includes
+the GNU cross development tools, such as the compilers, binutils, gdb,
+etc., and a number of pre-built target tools and libraries necessary
+to provide some functionality on the target system.
+
See sections 2.2, 2.3 and 2.4 for examples.
1.4 Building the Linux kernel in the user-space support build tree
@@ -276,19 +282,22 @@
-----------------------------------------
A typical cross-compilation setup, in order to build Xenomai for a
-PowerPC-405-based system:
+PowerPC-405-based system. Here we use an ELDK cross-compiler and a
+2.6.14 kernel.
-$ $xenomai_root/scripts/prepare-kernel.sh --arch=powerpc \
- --adeos=$xenomai_root/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.14-ppc-X.Y-ZZ.patch \
+$ $xenomai_root/scripts/prepare-kernel.sh --arch=ppc \
+ --adeos=$xenomai_root/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.14-ppc-1.5-*.patch \
--linux=$linux_tree
$ cd $linux_tree
-$ mkdir ../build-powerpc-405-2.6.14
-$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=../build-powerpc-405-2.6.14 xconfig/gconfig/menuconfig
+$ build_root /path/to/eldk
+$ mkdir $build_root
+$ make ARCH=ppc CROSS_COMPILE=ppc_4xx- O=$build_root xconfig/gconfig/menuconfig
# select the kernel and Xenomai options
-$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=../build-powerpc-405-2.6.14 bzImage modules
-# then install as needed
-$ mkdir $build_root && cd $build_root
-$ $xenomai_root/configure --build=i686-linux --host=powerpc-405-linux-gnu
+$ make ARCH=ppc CROSS_COMPILE=ppc_4xx- O=$build_root bzImage modules \
+ modules_install
+$ cd $build_root
+$ $xenomai_root/configure --build=i686-linux --host=ppc CC=ppc_4xx-gcc \
+ CXX=ppc_4xx-g++ LD=ppc_4xx-ld
$ make install
2.3 Building for the IPF
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Xenomai-core] Patches: README.install
2006-12-23 22:51 ` [Xenomai-core] Patches: README.install Niklaus Giger
@ 2006-12-23 23:47 ` Wolfgang Denk
0 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2006-12-23 23:47 UTC (permalink / raw)
To: niklaus.giger; +Cc: xenomai
Dear Niklaus,
in message <200612232351.33192.niklaus.giger@domain.hid> you wrote:
>
> Thanks your for spotting my errors. I should have rechecked this patch before
> submitting it, as it was based on a outdated script. Please review the
> attached patch again which is based on a script which actually ran and
> produced a running kernel.
>
> I would also thanks you for providing the ELDK. It was really a lot easier
> to setup the ELDK once I switched from my PPC PowerBook to a MacMini. I can
> really recommend it.
Thanks. I'm glad you like it.
> The only addition to the ELDK I made to run xeno-test was to copy my
> Debian /usr/bin/which to the rootfs.
alias which='type -p'
> -----------------------------------------
>
> A typical cross-compilation setup, in order to build Xenomai for a
> -PowerPC-405-based system:
> +PowerPC-405-based system. Here we use an ELDK cross-compiler and a
> +2.6.14 kernel.
>
> -$ $xenomai_root/scripts/prepare-kernel.sh --arch=powerpc \
> - --adeos=$xenomai_root/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.14-ppc-X.Y-ZZ.patch \
> +$ $xenomai_root/scripts/prepare-kernel.sh --arch=ppc \
> + --adeos=$xenomai_root/ksrc/arch/powerpc/patches/adeos-ipipe-2.6.14-ppc-1.5-*.patch \
> --linux=$linux_tree
> $ cd $linux_tree
> -$ mkdir ../build-powerpc-405-2.6.14
> -$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=../build-powerpc-405-2.6.14 xconfig/gconfig/menuconfig
> +$ build_root /path/to/eldk
"/path/to/eldk" might be misleading - at least it needs an expla-
nation; I would interpret this as "/opt/eldk", which is the default
installation directory of the ELDK, while I guess you actually mean
"/opt/eldk/ppc_4xx" ?
> +$ mkdir $build_root
> +$ make ARCH=ppc CROSS_COMPILE=ppc_4xx- O=$build_root xconfig/gconfig/menuconfig
> # select the kernel and Xenomai options
> -$ make ARCH=ppc CROSS_COMPILE=powerpc-405-linux-gnu- O=../build-powerpc-405-2.6.14 bzImage modules
> -# then install as needed
> -$ mkdir $build_root && cd $build_root
> -$ $xenomai_root/configure --build=i686-linux --host=powerpc-405-linux-gnu
> +$ make ARCH=ppc CROSS_COMPILE=ppc_4xx- O=$build_root bzImage modules \
> + modules_install
Be careful here. "modules_install" will try to run the native depmod,
which will not work. Recent builds (*) of the ELDK will allow to add
a "DEPMOD=/opt/eldk/usr/bin/depmod.pl" argument to the make call.
[This extension was added in July, so you will have to wait for ELDK
version 4.1 unless you build the ELDK from scratch from the sources.]
Thanks, and a Merry Christmas and a Happy New Year!
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@domain.hid
READ THIS BEFORE OPENING PACKAGE: According to Certain Suggested Ver-
sions of the Grand Unified Theory, the Primary Particles Constituting
this Product May Decay to Nothingness Within the Next Four Hundred
Million Years.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2006-12-23 23:47 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-21 21:59 [Xenomai-core] Patches: README.install & examples/common for cross-compiling Niklaus Giger
2006-12-21 22:40 ` Wolfgang Denk
2006-12-23 22:51 ` [Xenomai-core] Patches: README.install Niklaus Giger
2006-12-23 23:47 ` Wolfgang Denk
2006-12-22 7:45 ` [Xenomai-core] Patches: README.install & examples/common for cross-compiling Wolfgang Grandegger
2006-12-23 21:19 ` Niklaus Giger
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.