> On 18 Dec 2017, at 08:40, Felix Fietkau <n...@nbd.name> wrote: > > On 2017-12-17 22:21, Hauke Mehrtens wrote: >> This patch made GCC produce broken code, remove it. >> In mp_cmp_d() function in th libtommath shipped with dropbear the >> following code was compiled wrong: >> >> /* compare based on magnitude */ >> if (a->used > 1) { >> return 1; >> } >> >> In the broken ASM this part returned -1 like the previous return >> statement did instead of 1 like it should. >> >> This did not happen when the -funroll-loops option was given to GCC. >> >> Signed-off-by: Hauke Mehrtens <ha...@hauke-m.de> > This patch only passes the cost associated with branches and memory > transfers to other parts of GCC, which causes it to generate different > code (matching what it already does on -O2). > I'm pretty sure that by removing the patch you're simply hiding the real > issue which can easily creep in again in other places when compiling > with -O2. I don't think we can trust GCC 7 on MIPS before we find and > fix the real bug. > Hi Felix, Thanks for explaining that. I suspect you’re right that there’s an underlying bug in gcc mips. So ideally we need some code that exposes the bug when using -O2 (or even just -funroll_loops) Looking at FS 814 there’s a hint in there that uhttpd was similarly affected…and not solved by the patch drop. So what to do if there’s a bug just lurking to bite us? Updating code (as in dropbear when it eventually releases) is still not the ultimate solution. On the basis at present gcc7 mips produces a broken dropbear, thus soft bricking, perhaps gcc7 should be disabled for mips architecture. Cheers, Kevin D-B GPG fingerprint: 012C ACB2 28C6 C53E 9775 9123 B3A2 389B 9DE2 334A
signature.asc
Description: Message signed with OpenPGP
_______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev