aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorOskari Timperi <ext-oskari.timperi@nokia.com>2010-08-06 14:31:40 +0300
committerTomas Junnonen <tomas.junnonen@nokia.com>2010-08-06 15:40:05 +0300
commitd8530644426eefc5011f9c18df5817884b02e3c2 (patch)
tree94380485576de4ebd54887c93283b878f310b579 /doc
parenta77f2e55d8f305edc475fc976c7fb16bb869447a (diff)
Changes: Added documentation about debugging and PIE binaries
RevBy: Jussi Lind
Diffstat (limited to 'doc')
-rw-r--r--doc/src/launcher.dox23
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/src/launcher.dox b/doc/src/launcher.dox
index 1890b37b..681009e8 100644
--- a/doc/src/launcher.dox
+++ b/doc/src/launcher.dox
@@ -211,6 +211,29 @@ is attached to
invoker --type=m /usr/bin/application_binary
\endcode
+\subsection pie-binaries PIE binaries and debugging
+
+Using \c pkg-config when building your binaries makes them
+linked with the \c -pie flag. The \c -pie flag makes your binaries
+\e position \e independent \e executables. This means that the executables
+can be either used as a normal shared library or run from e.g.
+the command line.
+
+This creates problems when debugging your application with gdb older than
+version 7.1 which introduced the support for PIE binaries.
+
+The solution when using gdb 7.0 or earlier is to link your binaries as
+libraries i.e. using \c -shared instead of \c -pie. After this, you can't
+execute your binaries directly, you have to use \c invoker.
+
+Setting correct linker flags with QMake:
+
+\code
+ QMAKE_CXXFLAGS += -fPIC -fvisibility=hidden -fvisibility-inlines-hidden
+ QMAKE_LFLAGS += -shared -rdynamic
+\endcode
+
+Remember to remove the CONFIG += meegotouch-boostable, if used.
\section packaging Packaging and distributing