Re: [LEDE-DEV] [PATCH 2/2] toolchain: gcc: drop MIPS patch

2017-08-24 Thread Arjen de Korte

Citeren Arjen de Korte :


Citeren Arjen de Korte :


Citeren Kevin Darbyshire-Bryant :


On 23/08/17 18:25, Arjen de Korte wrote:

While removing the MIPS patch fixes dropbear when using gcc 7.1.0  
and '-Os', uhttpd goes tits up with a segfault in liblua. With  
'-O2' it's fine for both, so I'll probably stick with that for now.


What about with gcc 7.2.0?


Good question. I'll try that later today.


No joy, uhttpd still fails to start with exactly the same  
errormessage as with gcc 7.1.0:


Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.227713]
Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.227713]  
do_page_fault(): sending SIGSEGV to uhttpd for invalid read access  
from 778c50d8
Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.227734] epc =  
778cc277 in liblua.so.5.1.5[778c6000+2e000]
Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.230672] ra  =  
778cc271 in liblua.so.5.1.5[778c6000+2e000]

Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.233703]
Thu Aug 24 19:44:23 2017 daemon.info procd: Instance  
uhttpd::instance1 s in a crash loop 6 crashes, 0 seconds since last  
crash


And like with gcc 7.1.0, all is well when compiled with '-O2' (OK)  
instead of '-Os' (not OK).



___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH 2/2] toolchain: gcc: drop MIPS patch

2017-08-24 Thread Arjen de Korte

Citeren Arjen de Korte :


Citeren Kevin Darbyshire-Bryant :


On 23/08/17 18:25, Arjen de Korte wrote:

While removing the MIPS patch fixes dropbear when using gcc 7.1.0  
and '-Os', uhttpd goes tits up with a segfault in liblua. With  
'-O2' it's fine for both, so I'll probably stick with that for now.


What about with gcc 7.2.0?


Good question. I'll try that later today.


No joy, uhttpd still fails to start with exactly the same errormessage  
as with gcc 7.1.0:


Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.227713]
Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.227713]  
do_page_fault(): sending SIGSEGV to uhttpd for invalid read access  
from 778c50d8
Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.227734] epc =  
778cc277 in liblua.so.5.1.5[778c6000+2e000]
Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.230672] ra  =  
778cc271 in liblua.so.5.1.5[778c6000+2e000]

Thu Aug 24 19:44:23 2017 kern.info kernel: [   49.233703]
Thu Aug 24 19:44:23 2017 daemon.info procd: Instance uhttpd::instance1  
s in a crash loop 6 crashes, 0 seconds since last crash



___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH 2/2] toolchain: gcc: drop MIPS patch

2017-08-24 Thread Kevin Darbyshire-Bryant



On 23/08/17 18:25, Arjen de Korte wrote:

While removing the MIPS patch fixes dropbear when using gcc 7.1.0 and 
'-Os', uhttpd goes tits up with a segfault in liblua. With '-O2' it's 
fine for both, so I'll probably stick with that for now.


What about with gcc 7.2.0?

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH 2/2] toolchain: gcc: drop MIPS patch

2017-08-23 Thread Arjen de Korte

Citeren Kevin Darbyshire-Bryant :


On 23/08/17 09:20, Felix Fietkau wrote:

On 2017-08-22 12:01, Kevin Darbyshire-Bryant wrote:

Drop 300-mips_Os_cpu_rtx_cost_model.patch for gcc 7.2

This was causing mis-compilation of dropbear with the default '-Os' size
optimization as reported in FS#814

Tested on ar71xx, archer C7 v2.  For size comparison of my whole build:

12058628 O2-withoutpatch-dropbearworks.bin
12058628 O2-withpatch-dropbearworks.bin
11468804 Os-withoutpatch-dropbearworks.bin
11468804 Os-withpatch-dropbearfails.bin

Signed-off-by: Kevin Darbyshire-Bryant 

I strongly suspect that this change is hiding the real bug instead of
fixing it. Please double-check that the mis-compilation also does not
happen with -O2 instead of -Os.

- Felix



To further expand on this:  I switched from the 74kc cpu target to  
24kc (which is the lede default)


11993092 24O2-withoutpatch-works.bin
12058628 24O2-withpatch-works.bin
11403268 24Os-withoutpatch-works.bin
11468804 24Os-withpatch-fails.bin

2 observations: The working/not working follows the same pattern as  
found with 74kc.  Sizes on 24kc are always larger with the patch.


While removing the MIPS patch fixes dropbear when using gcc 7.1.0 and  
'-Os', uhttpd goes tits up with a segfault in liblua. With '-O2' it's  
fine for both, so I'll probably stick with that for now.



___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH 2/2] toolchain: gcc: drop MIPS patch

2017-08-23 Thread Kevin Darbyshire-Bryant



On 23/08/17 09:20, Felix Fietkau wrote:

On 2017-08-22 12:01, Kevin Darbyshire-Bryant wrote:

Drop 300-mips_Os_cpu_rtx_cost_model.patch for gcc 7.2

This was causing mis-compilation of dropbear with the default '-Os' size
optimization as reported in FS#814

Tested on ar71xx, archer C7 v2.  For size comparison of my whole build:

12058628 O2-withoutpatch-dropbearworks.bin
12058628 O2-withpatch-dropbearworks.bin
11468804 Os-withoutpatch-dropbearworks.bin
11468804 Os-withpatch-dropbearfails.bin

Signed-off-by: Kevin Darbyshire-Bryant 

I strongly suspect that this change is hiding the real bug instead of
fixing it. Please double-check that the mis-compilation also does not
happen with -O2 instead of -Os.

- Felix



To further expand on this:  I switched from the 74kc cpu target to 24kc 
(which is the lede default)


11993092 24O2-withoutpatch-works.bin
12058628 24O2-withpatch-works.bin
11403268 24Os-withoutpatch-works.bin
11468804 24Os-withpatch-fails.bin

2 observations: The working/not working follows the same pattern as 
found with 74kc.  Sizes on 24kc are always larger with the patch.


Kevin

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH 2/2] toolchain: gcc: drop MIPS patch

2017-08-23 Thread Syrone Wong
Hi,

Based on my test, it works well even if you keep this mips patch,
upstream already update libtommath and libtomcrypt
to latest, and I can confirm the update to these two libs fixes
dropbear misbehavior on mips.

https://github.com/mkj/dropbear/commit/a79b61517bc7123250d0e2dc21dc18deccf0bb64
https://github.com/mkj/dropbear/commit/364fb6019c1931de3d181f21ea491ec112161577


Best Regards,
Syrone Wong


On Wed, Aug 23, 2017 at 4:50 PM, Kevin Darbyshire-Bryant
 wrote:
>
>
> On 23/08/17 09:20, Felix Fietkau wrote:
>>
>> On 2017-08-22 12:01, Kevin Darbyshire-Bryant wrote:
>>>
>>> Drop 300-mips_Os_cpu_rtx_cost_model.patch for gcc 7.2
>>>
>>> This was causing mis-compilation of dropbear with the default '-Os' size
>>> optimization as reported in FS#814
>>>
>>> Tested on ar71xx, archer C7 v2.  For size comparison of my whole build:
>>>
>>> 12058628 O2-withoutpatch-dropbearworks.bin
>>> 12058628 O2-withpatch-dropbearworks.bin
>>> 11468804 Os-withoutpatch-dropbearworks.bin
>>> 11468804 Os-withpatch-dropbearfails.bin
>>>
>>> Signed-off-by: Kevin Darbyshire-Bryant 
>>
>> I strongly suspect that this change is hiding the real bug instead of
>> fixing it. Please double-check that the mis-compilation also does not
>> happen with -O2 instead of -Os.
>
>
> Hi Felix,
>
> The symptom of dropbear not responding (it goes into a tight loop) *only*
> occurs for me with the patch installed and with '-Os'.  As documented in the
> FS report, starting with gcc 7.1, dropbear (and for some uhttpd) go AWOL
> when built with '-Os'.  Initially I did not experience that issue because I
> always build with '-O2', however by switching to '-Os' I was able to
> reproduce the behaviour.
>
> As part of my bump to gcc 7.2 and 'cargo culting/refreshing' the 7.1 patches
> across, I thought I would investigate if the same erroneous behaviour
> existed - it did.  So questions:  Why MIPS only, why only with '-Os' and not
> '-O2', why is no one else screaming about this?  Many experiments and 'make
> dirclean' (to ensure gcc and the whole router image rebuilt) later I reached
> my conclusions with 300-mips_Os_cpu_rtx_cost_model.patch.
>
> What I have not done is check to see if removal of
> 300-mips_Os_cpu_rtx_cost_model.patch on gcc 7.1 solves the problem there, it
> could be that gcc 7.1 also had a bug.
>
> Cheers,
>
> Kevin
>
>
>
>
>>
>> - Felix
>>
>
> ___
> Lede-dev mailing list
> Lede-dev@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH 2/2] toolchain: gcc: drop MIPS patch

2017-08-23 Thread Kevin Darbyshire-Bryant



On 23/08/17 09:20, Felix Fietkau wrote:

On 2017-08-22 12:01, Kevin Darbyshire-Bryant wrote:

Drop 300-mips_Os_cpu_rtx_cost_model.patch for gcc 7.2

This was causing mis-compilation of dropbear with the default '-Os' size
optimization as reported in FS#814

Tested on ar71xx, archer C7 v2.  For size comparison of my whole build:

12058628 O2-withoutpatch-dropbearworks.bin
12058628 O2-withpatch-dropbearworks.bin
11468804 Os-withoutpatch-dropbearworks.bin
11468804 Os-withpatch-dropbearfails.bin

Signed-off-by: Kevin Darbyshire-Bryant 

I strongly suspect that this change is hiding the real bug instead of
fixing it. Please double-check that the mis-compilation also does not
happen with -O2 instead of -Os.


Hi Felix,

The symptom of dropbear not responding (it goes into a tight loop) 
*only* occurs for me with the patch installed and with '-Os'.  As 
documented in the FS report, starting with gcc 7.1, dropbear (and for 
some uhttpd) go AWOL when built with '-Os'.  Initially I did not 
experience that issue because I always build with '-O2', however by 
switching to '-Os' I was able to reproduce the behaviour.


As part of my bump to gcc 7.2 and 'cargo culting/refreshing' the 7.1 
patches across, I thought I would investigate if the same erroneous 
behaviour existed - it did.  So questions:  Why MIPS only, why only with 
'-Os' and not '-O2', why is no one else screaming about this?  Many 
experiments and 'make dirclean' (to ensure gcc and the whole router 
image rebuilt) later I reached my conclusions with 
300-mips_Os_cpu_rtx_cost_model.patch.


What I have not done is check to see if removal of 
300-mips_Os_cpu_rtx_cost_model.patch on gcc 7.1 solves the problem 
there, it could be that gcc 7.1 also had a bug.


Cheers,

Kevin





- Felix



___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH 2/2] toolchain: gcc: drop MIPS patch

2017-08-22 Thread Philip Prindeville

> On Aug 22, 2017, at 4:01 AM, Kevin Darbyshire-Bryant 
>  wrote:
> 
> Drop 300-mips_Os_cpu_rtx_cost_model.patch for gcc 7.2
> 
> This was causing mis-compilation of dropbear with the default '-Os' size
> optimization as reported in FS#814
> 
> Tested on ar71xx, archer C7 v2.  For size comparison of my whole build:
> 
> 12058628 O2-withoutpatch-dropbearworks.bin
> 12058628 O2-withpatch-dropbearworks.bin
> 11468804 Os-withoutpatch-dropbearworks.bin
> 11468804 Os-withpatch-dropbearfails.bin
> 
> Signed-off-by: Kevin Darbyshire-Bryant 
> ---
> .../7.2.0/300-mips_Os_cpu_rtx_cost_model.patch  | 21 -
> 1 file changed, 21 deletions(-)
> delete mode 100644 
> toolchain/gcc/patches/7.2.0/300-mips_Os_cpu_rtx_cost_model.patch
> 
> diff --git a/toolchain/gcc/patches/7.2.0/300-mips_Os_cpu_rtx_cost_model.patch 
> b/toolchain/gcc/patches/7.2.0/300-mips_Os_cpu_rtx_cost_model.patch
> deleted file mode 100644
> index 84c0fda..000
> --- a/toolchain/gcc/patches/7.2.0/300-mips_Os_cpu_rtx_cost_model.patch
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -commit ecf7671b769fe96f7b5134be442089f8bdba55d2
> -Author: Felix Fietkau 
> -Date:   Thu Aug 4 20:29:45 2016 +0200
> -
> -gcc: add a patch to generate better code with Os on mips
> -
> -Also happens to reduce compressed code size a bit
> -
> -Signed-off-by: Felix Fietkau 
> -
>  a/gcc/config/mips/mips.c
> -+++ b/gcc/config/mips/mips.c
> -@@ -19784,7 +19784,7 @@ mips_option_override (void)
> - flag_pcc_struct_return = 0;
> - 
> -   /* Decide which rtx_costs structure to use.  */
> --  if (optimize_size)
> -+  if (0 && optimize_size)
> - mips_cost = _rtx_cost_optimize_size;
> -   else
> - mips_cost = _rtx_cost_data[mips_tune];
> -- 
> 2.7.4



LGTM


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] [PATCH 2/2] toolchain: gcc: drop MIPS patch

2017-08-22 Thread Kevin Darbyshire-Bryant
Drop 300-mips_Os_cpu_rtx_cost_model.patch for gcc 7.2

This was causing mis-compilation of dropbear with the default '-Os' size
optimization as reported in FS#814

Tested on ar71xx, archer C7 v2.  For size comparison of my whole build:

12058628 O2-withoutpatch-dropbearworks.bin
12058628 O2-withpatch-dropbearworks.bin
11468804 Os-withoutpatch-dropbearworks.bin
11468804 Os-withpatch-dropbearfails.bin

Signed-off-by: Kevin Darbyshire-Bryant 
---
 .../7.2.0/300-mips_Os_cpu_rtx_cost_model.patch  | 21 -
 1 file changed, 21 deletions(-)
 delete mode 100644 
toolchain/gcc/patches/7.2.0/300-mips_Os_cpu_rtx_cost_model.patch

diff --git a/toolchain/gcc/patches/7.2.0/300-mips_Os_cpu_rtx_cost_model.patch 
b/toolchain/gcc/patches/7.2.0/300-mips_Os_cpu_rtx_cost_model.patch
deleted file mode 100644
index 84c0fda..000
--- a/toolchain/gcc/patches/7.2.0/300-mips_Os_cpu_rtx_cost_model.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-commit ecf7671b769fe96f7b5134be442089f8bdba55d2
-Author: Felix Fietkau 
-Date:   Thu Aug 4 20:29:45 2016 +0200
-
-gcc: add a patch to generate better code with Os on mips
-
-Also happens to reduce compressed code size a bit
-
-Signed-off-by: Felix Fietkau 
-
 a/gcc/config/mips/mips.c
-+++ b/gcc/config/mips/mips.c
-@@ -19784,7 +19784,7 @@ mips_option_override (void)
- flag_pcc_struct_return = 0;
- 
-   /* Decide which rtx_costs structure to use.  */
--  if (optimize_size)
-+  if (0 && optimize_size)
- mips_cost = _rtx_cost_optimize_size;
-   else
- mips_cost = _rtx_cost_data[mips_tune];
-- 
2.7.4


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev