93c7e89712
_Unwind_ForcedUnwind in libgcc_s takes as one of it's parameters a stop function to tell it when to stop unwinding. One of the stop function's parameters is a _Unwind_Exception_Class. On most architectures this is an int64_t, however on ARM EABI the gcc developers have made this a char array with 8 items. While both of these take the same space they are passed into the stop function differently, an int64_t is passed in in registers r2 and r3, while the char[8] is passed in as a pointer to the first item in register r2. Because libthr expects the value to be an int64_t we would get incorrect results when it passes a function that take an int64_t but libgcc passes in a pointer to a char array including crashing. The fix is to update libgcc_s to make it pass an int64_t to the stop function and to libstdc++ as it expects _Unwind_Exception_Class to be an array. |
||
---|---|---|
.. | ||
amd | ||
atf | ||
bind9 | ||
binutils | ||
bmake | ||
bsnmp | ||
byacc | ||
bzip2 | ||
com_err | ||
compiler-rt | ||
cvs | ||
dialog | ||
diff | ||
dtc | ||
ee | ||
expat | ||
file | ||
gcc | ||
gcclibs | ||
gdb | ||
gdtoa | ||
gperf | ||
groff | ||
ipfilter | ||
jemalloc | ||
less | ||
libarchive | ||
libbegemot | ||
libc-pwcache | ||
libc-vis | ||
libc++ | ||
libcxxrt | ||
libpcap | ||
libreadline | ||
libstdc++ | ||
llvm | ||
lukemftpd | ||
mdocml | ||
mknod | ||
mtree | ||
ncurses | ||
netcat | ||
ngatm | ||
ntp | ||
nvi | ||
ofed | ||
one-true-awk | ||
openbsm | ||
openpam | ||
openresolv | ||
opie | ||
pam_modules/pam_passwdqc | ||
pf | ||
pnpinfo | ||
sendmail | ||
smbfs | ||
tcp_wrappers | ||
tcpdump | ||
tcsh | ||
telnet | ||
texinfo | ||
tnftp | ||
top | ||
traceroute | ||
tzcode | ||
tzdata | ||
wpa | ||
xz |