Changing the source slightly to use a constant that fits in 1 byte,
leads to correct code. (In the function not in the macro, see below
diff, so the code is only different in one place).
A movs instruction is generated for 200, whereas for 400 it is a mov.w
and then a nop at the end of the function for padding.
This may affect other offset calculations but I could not determine why
and which one contributes to the fault.
diff --git a/apt-pkg/contrib/error.cc b/apt-pkg/contrib/error.cc
index 6f6b7a4..17e6f13 100644
--- a/apt-pkg/contrib/error.cc
+++ b/apt-pkg/contrib/error.cc
@@ -84,7 +84,7 @@ GEMessage(DebugE, DEBUG)
bool GlobalError::InsertErrno(MsgType const &type, const char *Function,
const char *Description,...) {
va_list args;
- size_t msgSize = 400;
+ size_t msgSize = 200;
int const errsv = errno;
while (true) {
va_start(args,Description);
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/774175
Title:
apt segfaults on armel in oneiric
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs