[FE training-materials-updates] Tinysystem lab: clarification about the "not found" error
Michael Opdenacker
michael.opdenacker at free-electrons.com
Wed Dec 10 12:30:53 CET 2014
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=1cb113faf25ba0e57d42ac5902ca9dd6406debec
>---------------------------------------------------------------
commit 1cb113faf25ba0e57d42ac5902ca9dd6406debec
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date: Wed Dec 10 12:30:03 2014 +0100
Tinysystem lab: clarification about the "not found" error
Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>
>---------------------------------------------------------------
1cb113faf25ba0e57d42ac5902ca9dd6406debec
labs/sysdev-tinysystem/sysdev-tinysystem.tex | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/labs/sysdev-tinysystem/sysdev-tinysystem.tex b/labs/sysdev-tinysystem/sysdev-tinysystem.tex
index 6ef534d..17adad8 100644
--- a/labs/sysdev-tinysystem/sysdev-tinysystem.tex
+++ b/labs/sysdev-tinysystem/sysdev-tinysystem.tex
@@ -207,12 +207,15 @@ Take the \code{hello.c} program supplied in the lab \code{data}
directory. Cross-compile it for ARM, dynamically-linked with the
libraries, and run it on the target.
-You will first encounter a \code{not found} error caused by the
-absence of the \code{ld-uClibc.so.0} executable, which is the dynamic
-linker required to execute any program compiled with shared
-libraries. Using the \code{find} command (see examples in your command
-memento sheet), look for this file in the toolchain install directory,
-and copy it to the \code{lib/} directory on the target.
+You will first encounter a very misleading \code{not found} error,
+which is not because the \code{hello} executable is not found, but
+because something else is not found using the attempt to execute
+this executable. What's missing is the \code{ld-uClibc.so.0}
+executable, which is the dynamic linker required to execute any
+program compiled with shared libraries. Using the \code{find}
+command (see examples in your command memento sheet), look for this
+file in the toolchain install directory, and copy it to the
+\code{lib/} directory on the target.
Then, running the executable again and see that the loader executes
and finds out which shared libraries are missing.
More information about the training-materials-updates
mailing list