All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] xserver_xorg-server: use -O2 build optimization level
@ 2016-05-06  0:08 Gustavo Zacarias
  2016-05-06  6:47 ` Peter Seiderer
  2016-05-06 13:51 ` Thomas Petazzoni
  0 siblings, 2 replies; 6+ messages in thread
From: Gustavo Zacarias @ 2016-05-06  0:08 UTC (permalink / raw)
  To: buildroot

The xorg server is somewhat sensitive to certain gcc versions combined
with -Os, particularly for ARM and MIPS, typically in the form of the
following symptom/error:

(EE) Segmentation fault at address 0x0
(EE)
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting

Force -O2 to work around this problem - for a target rootfs that uses
X11 the tradeoff is minimal since a sample/test image for qemu vexpress
with X11 + xinit + xterm + twm + xclock + gtk2 with demos is 60+ MB.

And it's less complicated than trying to find all of the bad
combinations.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/x11r7/xserver_xorg-server/xserver_xorg-server.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
index 617bcbc..9de6d91 100644
--- a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
+++ b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
@@ -62,7 +62,7 @@ XSERVER_XORG_SERVER_CONF_OPTS = \
 	--disable-xephyr \
 	--disable-dmx \
 	--with-builder-addr=buildroot at buildroot.org \
-	CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/pixman-1" \
+	CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/pixman-1 -O2" \
 	--with-fontrootdir=/usr/share/fonts/X11/ \
 	--$(if $(BR2_PACKAGE_XSERVER_XORG_SERVER_XVFB),en,dis)able-xvfb
 
-- 
2.7.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] xserver_xorg-server: use -O2 build optimization level
  2016-05-06  0:08 [Buildroot] [PATCH] xserver_xorg-server: use -O2 build optimization level Gustavo Zacarias
@ 2016-05-06  6:47 ` Peter Seiderer
  2016-05-06  6:55   ` Peter Seiderer
  2016-05-06 12:15   ` Gustavo Zacarias
  2016-05-06 13:51 ` Thomas Petazzoni
  1 sibling, 2 replies; 6+ messages in thread
From: Peter Seiderer @ 2016-05-06  6:47 UTC (permalink / raw)
  To: buildroot

Hello Gustavo,

On Thu,  5 May 2016 21:08:27 -0300, Gustavo Zacarias <gustavo@zacarias.com.ar> wrote:

> The xorg server is somewhat sensitive to certain gcc versions combined
> with -Os, particularly for ARM and MIPS, typically in the form of the
> following symptom/error:
> 
> (EE) Segmentation fault at address 0x0
> (EE)
> Fatal server error:
> (EE) Caught signal 11 (Segmentation fault). Server aborting
> 
> Force -O2 to work around this problem - for a target rootfs that uses
> X11 the tradeoff is minimal since a sample/test image for qemu vexpress
> with X11 + xinit + xterm + twm + xclock + gtk2 with demos is 60+ MB.
> 
> And it's less complicated than trying to find all of the bad
> combinations.
> 
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>  package/x11r7/xserver_xorg-server/xserver_xorg-server.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
> index 617bcbc..9de6d91 100644
> --- a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
> +++ b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
> @@ -62,7 +62,7 @@ XSERVER_XORG_SERVER_CONF_OPTS = \
>  	--disable-xephyr \
>  	--disable-dmx \
>  	--with-builder-addr=buildroot at buildroot.org \
> -	CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/pixman-1" \
> +	CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/pixman-1 -O2" \
>  	--with-fontrootdir=/usr/share/fonts/X11/ \
>  	--$(if $(BR2_PACKAGE_XSERVER_XORG_SERVER_XVFB),en,dis)able-xvfb
>  

Thanks for the patch, will surely improve the 'out of the box' usability of buildroot,
but I would prefer a 'blacklist' of known failing combinations and simply disable
xserver (with comment why) in this case(s), the only know to me is RPi1:

  BR2_ARCH="arm"
  BR2_GCC_TARGET_CPU="arm1176jzf-s"
  BR2_OPTIMIZE_S=y

The perfect solution would be a fix for gcc (and/or xserver)...

Regards,
Peter

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] xserver_xorg-server: use -O2 build optimization level
  2016-05-06  6:47 ` Peter Seiderer
@ 2016-05-06  6:55   ` Peter Seiderer
  2016-05-06 12:15   ` Gustavo Zacarias
  1 sibling, 0 replies; 6+ messages in thread
From: Peter Seiderer @ 2016-05-06  6:55 UTC (permalink / raw)
  To: buildroot

On Fri, 6 May 2016 08:47:34 +0200, Peter Seiderer <ps.report@gmx.net> wrote:

> Hello Gustavo,
> 
> On Thu,  5 May 2016 21:08:27 -0300, Gustavo Zacarias <gustavo@zacarias.com.ar> wrote:
> 
> > The xorg server is somewhat sensitive to certain gcc versions combined
> > with -Os, particularly for ARM and MIPS, typically in the form of the
> > following symptom/error:
> > 
> > (EE) Segmentation fault at address 0x0
> > (EE)
> > Fatal server error:
> > (EE) Caught signal 11 (Segmentation fault). Server aborting
> > 
> > Force -O2 to work around this problem - for a target rootfs that uses
> > X11 the tradeoff is minimal since a sample/test image for qemu vexpress
> > with X11 + xinit + xterm + twm + xclock + gtk2 with demos is 60+ MB.
> > 
> > And it's less complicated than trying to find all of the bad
> > combinations.
> > 
> > Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> > ---
> >  package/x11r7/xserver_xorg-server/xserver_xorg-server.mk | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
> > index 617bcbc..9de6d91 100644
> > --- a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
> > +++ b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
> > @@ -62,7 +62,7 @@ XSERVER_XORG_SERVER_CONF_OPTS = \
> >  	--disable-xephyr \
> >  	--disable-dmx \
> >  	--with-builder-addr=buildroot at buildroot.org \
> > -	CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/pixman-1" \
> > +	CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/pixman-1 -O2" \
> >  	--with-fontrootdir=/usr/share/fonts/X11/ \
> >  	--$(if $(BR2_PACKAGE_XSERVER_XORG_SERVER_XVFB),en,dis)able-xvfb
> >  
> 
> Thanks for the patch, will surely improve the 'out of the box' usability of buildroot,
> but I would prefer a 'blacklist' of known failing combinations and simply disable
> xserver (with comment why) in this case(s), the only know to me is RPi1:
> 
>   BR2_ARCH="arm"
>   BR2_GCC_TARGET_CPU="arm1176jzf-s"
>   BR2_OPTIMIZE_S=y
> 

The original post [1] was about RPi2, so two known failing combinations ;-)

Curious if its the same failure location as for RPi1 (see [2]), anyone with
RPi2 hardware who could try to run with debug info enabled (and/or the reduced
test case from the bug report)?

Regards,
Peter

[1] http://lists.busybox.net/pipermail/buildroot/2016-May/160491.html
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63346


> The perfect solution would be a fix for gcc (and/or xserver)...
> 
> Regards,
> Peter
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] xserver_xorg-server: use -O2 build optimization level
  2016-05-06  6:47 ` Peter Seiderer
  2016-05-06  6:55   ` Peter Seiderer
@ 2016-05-06 12:15   ` Gustavo Zacarias
  2016-05-06 21:33     ` Peter Seiderer
  1 sibling, 1 reply; 6+ messages in thread
From: Gustavo Zacarias @ 2016-05-06 12:15 UTC (permalink / raw)
  To: buildroot

On 06/05/16 03:47, Peter Seiderer wrote:

> Thanks for the patch, will surely improve the 'out of the box' usability of buildroot,
> but I would prefer a 'blacklist' of known failing combinations and simply disable
> xserver (with comment why) in this case(s), the only know to me is RPi1:
>
>    BR2_ARCH="arm"
>    BR2_GCC_TARGET_CPU="arm1176jzf-s"
>    BR2_OPTIMIZE_S=y
>
> The perfect solution would be a fix for gcc (and/or xserver)...
>
> Regards,
> Peter

Hi Peter.
Isn't that a bit harsh?
I'm not 100% comfortable with this solution either, however blacklisting 
xorg will be messy to put it lightly.
Also finding the failing combinations will not be simple - it seems ARM 
in general is affected on several toolchain combinations, as is MIPS as 
well (both tested in Qemu) - so it goes beyond some particular platforms.
Another alternative could be finding the exact gcc option that's causing 
it diffing the output of --help=optimizers and trying enabling/disabling 
one by one until it's fixed or fails since this would probably help 
pinpoint the precise optimizations that's causing it (which would in 
turn help in making a minimal test case to help upstream).
Regards.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] xserver_xorg-server: use -O2 build optimization level
  2016-05-06  0:08 [Buildroot] [PATCH] xserver_xorg-server: use -O2 build optimization level Gustavo Zacarias
  2016-05-06  6:47 ` Peter Seiderer
@ 2016-05-06 13:51 ` Thomas Petazzoni
  1 sibling, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2016-05-06 13:51 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu,  5 May 2016 21:08:27 -0300, Gustavo Zacarias wrote:
> The xorg server is somewhat sensitive to certain gcc versions combined
> with -Os, particularly for ARM and MIPS, typically in the form of the
> following symptom/error:
> 
> (EE) Segmentation fault at address 0x0
> (EE)
> Fatal server error:
> (EE) Caught signal 11 (Segmentation fault). Server aborting
> 
> Force -O2 to work around this problem - for a target rootfs that uses
> X11 the tradeoff is minimal since a sample/test image for qemu vexpress
> with X11 + xinit + xterm + twm + xclock + gtk2 with demos is 60+ MB.
> 
> And it's less complicated than trying to find all of the bad
> combinations.
> 
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>  package/x11r7/xserver_xorg-server/xserver_xorg-server.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

I've added a comment in the .mk file that explains why we are forcing
-O2, and a reference to the Bugzilla bug that this is fixing. Applied
with those changes. Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] xserver_xorg-server: use -O2 build optimization level
  2016-05-06 12:15   ` Gustavo Zacarias
@ 2016-05-06 21:33     ` Peter Seiderer
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Seiderer @ 2016-05-06 21:33 UTC (permalink / raw)
  To: buildroot

Hello Gustavo,

On Fri, 6 May 2016 09:15:10 -0300, Gustavo Zacarias <gustavo@zacarias.com.ar> wrote:

> On 06/05/16 03:47, Peter Seiderer wrote:
> 
> > Thanks for the patch, will surely improve the 'out of the box' usability of buildroot,
> > but I would prefer a 'blacklist' of known failing combinations and simply disable
> > xserver (with comment why) in this case(s), the only know to me is RPi1:
> >
> >    BR2_ARCH="arm"
> >    BR2_GCC_TARGET_CPU="arm1176jzf-s"
> >    BR2_OPTIMIZE_S=y
> >
> > The perfect solution would be a fix for gcc (and/or xserver)...
> >
> > Regards,
> > Peter
> 
> Hi Peter.
> Isn't that a bit harsh?

Ups, sorry, apologize for my wrong/misleading wording, was not meant so...

> I'm not 100% comfortable with this solution either, however blacklisting 
> xorg will be messy to put it lightly.

Yes, did not catch it that more than one combination is affected (thought it
was only RPi1....until sending the first e-mail, and only afterward registered
the original post was about RPi2...
 
> Also finding the failing combinations will not be simple - it seems ARM 
> in general is affected on several toolchain combinations, as is MIPS as 
> well (both tested in Qemu) - so it goes beyond some particular platforms.

Mind to share your configs and test commands (specially the MIPS one)?

> Another alternative could be finding the exact gcc option that's causing 
> it diffing the output of --help=optimizers and trying enabling/disabling 
> one by one until it's fixed or fails since this would probably help 
> pinpoint the precise optimizations that's causing it (which would in 
> turn help in making a minimal test case to help upstream).
> Regards.

Thanks for the suggestion, will try it with a test case...

Regards,
Peter

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-05-06 21:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-06  0:08 [Buildroot] [PATCH] xserver_xorg-server: use -O2 build optimization level Gustavo Zacarias
2016-05-06  6:47 ` Peter Seiderer
2016-05-06  6:55   ` Peter Seiderer
2016-05-06 12:15   ` Gustavo Zacarias
2016-05-06 21:33     ` Peter Seiderer
2016-05-06 13:51 ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.