[FE training-materials-updates] slides/buildroot-appdev: HOST_DIR/usr removed, relocatable SDK
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Sat Oct 14 23:22:45 CEST 2017
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=ce1b6e61d29ac2bc19441061d2e65c4c5edf034c
>---------------------------------------------------------------
commit ce1b6e61d29ac2bc19441061d2e65c4c5edf034c
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date: Sat Oct 14 23:22:45 2017 +0200
slides/buildroot-appdev: HOST_DIR/usr removed, relocatable SDK
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>---------------------------------------------------------------
ce1b6e61d29ac2bc19441061d2e65c4c5edf034c
slides/buildroot-appdev/buildroot-appdev.tex | 48 +++++++++++++---------------
1 file changed, 23 insertions(+), 25 deletions(-)
diff --git a/slides/buildroot-appdev/buildroot-appdev.tex b/slides/buildroot-appdev/buildroot-appdev.tex
index f0315a9..6b0d338 100644
--- a/slides/buildroot-appdev/buildroot-appdev.tex
+++ b/slides/buildroot-appdev/buildroot-appdev.tex
@@ -5,14 +5,14 @@
\begin{frame}{Building code for Buildroot}
\begin{itemize}
\item The Buildroot cross-compiler is installed in
- \code{$(HOST_DIR)/usr/bin}
+ \code{$(HOST_DIR)/bin}
\item It is already set up to:
\begin{itemize}
\item generate code for the configured architecture
\item look for libraries and headers in \code{$(STAGING_DIR)}
\end{itemize}
\item Other useful tools that may be built by Buildroot are
- installed in \code{$(HOST_DIR)/usr/bin}:
+ installed in \code{$(HOST_DIR)/bin}:
\begin{itemize}
\item \code{pkg-config}, to find libraries. Beware that it is
configured to return results for {\em target} libraries: it
@@ -22,7 +22,7 @@
\item \code{autoconf}, \code{automake}, \code{libtool}, to use
versions independent from the host system.
\end{itemize}
- \item Adding \code{$(HOST_DIR)/usr/bin} to your \code{PATH} when
+ \item Adding \code{$(HOST_DIR)/bin} to your \code{PATH} when
cross-compiling is the easiest solution.
\end{itemize}
\end{frame}
@@ -41,7 +41,7 @@ foobar: ELF 64-bit LSB executable, x86-64, version 1...
\begin{block}{Building a C program for the target}
{\small
\begin{verbatim}
-$ export PATH=$(pwd)/output/host/usr/bin:$PATH
+$ export PATH=$(pwd)/output/host/bin:$PATH
$ arm-linux-gcc -o foobar foobar.c
$ file foobar
foobar: ELF 32-bit LSB executable, ARM, EABI5 version 1...
@@ -66,19 +66,19 @@ $ pkg-config --libs libpng
\begin{block}{Using the Buildroot \code{pkg-config}}
{\small
\begin{verbatim}
-$ export PATH=$(pwd)/output/host/usr/bin:$PATH
+$ export PATH=$(pwd)/output/host/bin:$PATH
$ pkg-config --cflags libpng
--I.../output/host/usr/arm-buildroot-linux-uclibcgnueabi/
+-I.../output/host/arm-buildroot-linux-uclibcgnueabi/
sysroot/usr/include/libpng16
$ pkg-config --libs libpng
--L.../output/host/usr/arm-buildroot-linux-uclibcgnueabi/
+-L.../output/host/arm-buildroot-linux-uclibcgnueabi/
sysroot/usr/lib -lpng16
\end{verbatim}}
\end{block}
-{\tiny Note: too long lines have been splitted.}
+{\tiny Note: too long lines have been split.}
\end{frame}
@@ -89,7 +89,7 @@ $ pkg-config --libs libpng
\begin{block}{}
{\small
\begin{verbatim}
-$ export PATH=.../buildroot/output/host/usr/bin/:$PATH
+$ export PATH=.../buildroot/output/host/bin/:$PATH
$ ./configure --host=arm-linux
\end{verbatim}}
\end{block}
@@ -323,23 +323,19 @@ LINUX_OVERRIDE_SRCDIR = $(HOME)/projects/linux
can generate a SDK.
\item To achieve this:
\begin{itemize}
- \item Customize the \code{BR2_HOST_DIR} option to a path like
- \code{/opt/project-sdk/}.
- \item Do a full build from scratch. Due to the value of
- \code{BR2_HOST_DIR}, the cross-compiler and the sysroot with all
- its libraries will be installed in \code{/opt/project-sdk/}
- instead of the normal \code{$(O)/host}.
- \item Tarball the \code{/opt/project-sdk/} and share it with the
- developers.
- \end{itemize}
- \item Warnings:
- \begin{itemize}
- \item The SDK is not relocatable: it must remain in
- \code{/opt/project-sdk/}
- \item The SDK must remain in sync with the root filesystem running
- on the target, otherwise applications built with the SDK may not
- run properly.
+ \item Run \code{make sdk}, which prepares the SDK to be
+ relocatable
+ \item Tarball the contents of the {\em host} directory, i.e
+ \code{output/host}
+ \item Share the tarball with your application developers
+ \item They must uncompress it, and run the \code{relocate-sdk.sh}
+ script
\end{itemize}
+ \item {\bf Warning}: the SDK must remain in sync with the root
+ filesystem running on the target, otherwise applications built
+ with the SDK may not run properly.
+ \item Note: the relocatability of the SDK is a new feature in
+ Buildroot 2017.08.
\end{itemize}
\end{frame}
@@ -357,6 +353,8 @@ LINUX_OVERRIDE_SRCDIR = $(HOME)/projects/linux
\item See
\url{https://github.com/mbats/eclipse-buildroot-bundle/wiki} for
download, installation and usage details.
+ \item Last Eclipse version supported: {\em Luna}. Support for later
+ versions in progress.
\end{itemize}
\end{frame}
More information about the training-materials-updates
mailing list