summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-07-15 08:55:22 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-07-15 08:55:22 (GMT)
commit03c01176ebf423085e56ceabcf8335ca5027a786 (patch)
treeb953a59cc70118fca377534b66546276a493677a
parent792835df3051f73b11d5a27313a9b4439af49911 (diff)
parent518a8ab0fe67965555973788e3eea643882cb80c (diff)
downloadQt-03c01176ebf423085e56ceabcf8335ca5027a786.zip
Qt-03c01176ebf423085e56ceabcf8335ca5027a786.tar.gz
Qt-03c01176ebf423085e56ceabcf8335ca5027a786.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: fix for looping crash log on data abort Allow commenting of individual files in generated pkg files. Removed README.s60-mkspec. Fixed install docs for Qt for Symbian on Linux.
-rw-r--r--README.s60-mkspec99
-rwxr-xr-xbin/patch_capabilities.pl2
-rw-r--r--doc/src/snippets/code/doc_src_installation.qdoc2
-rw-r--r--tools/runonphone/trksignalhandler.cpp27
4 files changed, 22 insertions, 108 deletions
diff --git a/README.s60-mkspec b/README.s60-mkspec
deleted file mode 100644
index af500e1..0000000
--- a/README.s60-mkspec
+++ /dev/null
@@ -1,99 +0,0 @@
-How to build Qt for Symbian using the Linux makespec.
-
-Prerequisites:
-
- - Working RVCT 2.2 native Linux compiler. The new publicly
- available RVCT 4.0 compiler may work, but it hasn't been tested
- yet.
-
- - A working GnuPoc environment. See this page for details:
- http://www.martin.st/symbian/
- Download the latest version, unpack it and run the 'install_eka2_tools' script as
- described in the last part under the EKA2 part. The part about the your own gcc
- are not needed as we use the rvct compiler.
- Make sure you do the part about Wine setup as well.
-
- - Anderson Lizardo's patches for GnuPoc. Look for the
- qt_s60_gnupoc_v10.patch on this page:
- http://lizardo.wordpress.com/2009/09/24/installing-qt-for-s60-daily-snapshots-on-linux/
- and carry out the instructions under point 8: Installing Open C.
-
-Compiling:
-
- 1. First a few environment variables need to be set:
-
- export RVCT22LIB=<rvct-dir>/lib/armlib
- export EPOCROOT=<s60-root>
- export PATH=$PATH:<s60-root>/epoc32/tools:<rvctInstallDir>/bin
- export PATH=$PATH:<qt-root>/bin
-
- Replace the s60-root with the installation directory of your SDK,
- and the qt-root with the root of your Qt repository.
- These are good candidates for putting in a script somewhere.
-
- 2. Run configure. It needs a bit more switches than usual, so here's
- the full line:
-
- ./configure -developer-build -platform linux-g++ -xplatform \
- symbian/linux-armcc -little-endian -host-little-endian \
- -arch symbian
-
- 3. Compile Qt
-
- cd src
- make
-
- and then wait for a while.
-
- 4. Package and install Qt
-
- cd s60installs
-
- Edit Qt_template.pkg and change the first 0x2xxxxxxx to
- 0xExxxxxxx. Then execute:
-
- makesis Qt_template.pkg
- signsis Qt_template.sis Qt_template.sisx selfsigned.cer selfsigned.key
-
- Then put Qt_template.sisx on a memory card and install it from
- the phone file manager.
-
- Alternatively, you can use the runonphone tool found in the tools
- directory of Qt. To build, this requires a separately configured
- Qt installation for Linux, unfortunately. To use it, you also
- need have App TRK running on the phone. At the time of writing,
- only bleeding edge Linux kernels are able to autodetect the USB
- serial port on the phone, but you can force detection by running:
-
- modprobe usbserial vendor=0xXXXX product=0xXXXX
-
- The XXXXs should be replaced with the two values listed for your
- device when executing "lsusb". In most distributions, this will
- lead to the creation of two devices: /dev/ttyUSB0 and
- /dev/ttyUSB1. The latter is usually the one that App TRK responds
- to. Then execute:
-
- runonphone -p /dev/ttyUSB1 -s Qt_template.sisx dummy.exe
-
- The dummy.exe argument is irrelevant, since we are not executing
- anything yet.
-
- 5. Compile some helloworld application (I leave the details to you
- ;-)
-
- qmake
- make
-
- 6. Package, install and run application.
-
- makesis helloworld_template.pkg
- signsis helloworld_template.sis helloworld_template.sisx \
- <QTDIR>/src/s60installs/selfsigned.cer \
- <QTDIR>/src/s60installs/selfsigned.key
-
- Then either install by memory card, or install and run like this:
-
- runonphone -p /dev/ttyUSB1 -s helloworld_template.sisx \
- helloworld.exe
-
- 7. Enjoy "hello world" on the phone!
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index 501939a..7d6f5dc 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -186,7 +186,7 @@ if (@ARGV)
}
# If the line specifies a file, parse the source and destination locations.
- if ($line =~ m|\"([^\"]+)\"\s*\-\s*\"([^\"]+)\"|)
+ if ($line =~ m|^ *\"([^\"]+)\"\s*\-\s*\"([^\"]+)\"|)
{
my $sourcePath = $1;
diff --git a/doc/src/snippets/code/doc_src_installation.qdoc b/doc/src/snippets/code/doc_src_installation.qdoc
index 985f3da..c46159c 100644
--- a/doc/src/snippets/code/doc_src_installation.qdoc
+++ b/doc/src/snippets/code/doc_src_installation.qdoc
@@ -263,7 +263,7 @@ make
//! [40]
//! [41]
-cd src/s60installs
+cd src
make sis
//! [41]
diff --git a/tools/runonphone/trksignalhandler.cpp b/tools/runonphone/trksignalhandler.cpp
index b6d446f..898692a 100644
--- a/tools/runonphone/trksignalhandler.cpp
+++ b/tools/runonphone/trksignalhandler.cpp
@@ -71,8 +71,10 @@ private:
QFile crashlogtextfile;
QFile crashstackfile;
QList<CrashState> queuedCrashes;
+ QList<int> dyingThreads;
QString crashlogPath;
bool crashlog;
+ bool terminateNeeded;
};
void TrkSignalHandler::copyingStarted()
@@ -201,15 +203,23 @@ void TrkSignalHandler::stopped(uint pc, uint pid, uint tid, const QString& reaso
cs.crashPC = pc;
cs.crashReason = reason;
- d->queuedCrashes.append(cs);
-
- if (d->queuedCrashes.count() == 1) {
- d->err << "Fetching registers and stack..." << endl;
- emit getRegistersAndCallStack(pid, tid);
+ if (d->dyingThreads.contains(tid)) {
+ if(d->queuedCrashes.isEmpty())
+ emit terminate();
+ else
+ d->terminateNeeded = true;
+ } else {
+ d->queuedCrashes.append(cs);
+ d->dyingThreads.append(tid);
+
+ if (d->queuedCrashes.count() == 1) {
+ d->err << "Fetching registers and stack..." << endl;
+ emit getRegistersAndCallStack(pid, tid);
+ }
}
}
else
- emit resume(pid, tid);
+ emit terminate();
}
void TrkSignalHandler::registersAndCallStackReadComplete(const QList<uint>& registers, const QByteArray& stack)
@@ -307,6 +317,8 @@ void TrkSignalHandler::registersAndCallStackReadComplete(const QList<uint>& regi
d->err << "Fetching registers and stack..." << endl;
emit getRegistersAndCallStack(cs.pid, cs.tid);
}
+ else if (d->terminateNeeded)
+ emit terminate();
}
@@ -333,7 +345,8 @@ TrkSignalHandlerPrivate::TrkSignalHandlerPrivate()
: out(stdout),
err(stderr),
loglevel(0),
- lastpercent(0)
+ lastpercent(0),
+ terminateNeeded(false)
{
}