Package: prc-tools-arm
Version: 2.3-1
Severity: grave
Justification: causes non-serious data loss

The following code, compiled with package version 2.3-1, crashes inside
the call to the function ptr fp.  It does not crash when built with the
previous version of this package, which was based on an earlier version of
gcc.  Nor does it crash when built with a cross-compiler chain that is based
on a later version of gcc.

void func(void){}

int32 PilotMain() {
   void (*fp)(void) = func;
   func();                       // <- this will not crash
   (*fp)();                      // <- this will crash
}

I do not have access to a runtime debugger, but have used logging to
narrow down the problem.  What I see when printing data that fp points
to is code about 100 bytes away from func's first instruction.  Thus
fp is off by about 100 bytes.  The code is running as a "PNOLet", part
of a PalmOS application, and there is some load-time manipulation that
I must perform before calling it that (I think) impacts function
pointer values.  It's possible that I'm contributing to the problem.
However, since there are no problems with either the earlier version
of this package or a similar suite that I built based on a later
version of gcc than this package uses, it seems that the problem must
be in this package.

The problem can be duplicated using code from xwords.sourceforge.net.
I can provide instructions, further details, etc.  Please advise.

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages prc-tools-arm depends on:
ii  libc6                         2.3.5-8    GNU C Library: Shared libraries an
ii  prc-tools-utils               2.3-1      Development toolchain for PDAs usi

Versions of packages prc-tools-arm recommends:
ii  prc-tools-m68k                2.3-1      Development Toolchain for PDAs usi

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to