diff mbox

[1/1] gpsd: re-enable on microblaze architecture

Message ID 1448142802-1294-1-git-send-email-sergio.prado@e-labworks.com
State Superseded
Headers show

Commit Message

Sergio Prado Nov. 21, 2015, 9:53 p.m. UTC
Fix (works around) bug #6872
https://bugs.busybox.net/show_bug.cgi?id=6872

The gpsd package was disabled due to an internal compiler error for
the microblaze architecture in the following commit:
http://git.buildroot.net/buildroot/commit/?id=d517415bcda380336f4a27bf248cef4d81791c9e

The problem is due to an specific GCC optimization flag
(-fexpensive-optimizations), so disabling it we can work around this
problem and compile gpsd for the microblaze architecture.

Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
---
 package/gpsd/Config.in        | 3 ---
 package/gpsd/gpsd.mk          | 7 ++++++-
 package/sconeserver/Config.in | 2 --
 3 files changed, 6 insertions(+), 6 deletions(-)

Comments

Arnout Vandecappelle Nov. 22, 2015, 12:23 a.m. UTC | #1
Since you also add a workaround, the subject should have been:

gpsd: add work-around and re-enable for microblaze

(I've taken some poetic license here :-)

On 21-11-15 22:53, Sergio Prado wrote:
> Fix (works around) bug #6872
> https://bugs.busybox.net/show_bug.cgi?id=6872
> 
> The gpsd package was disabled due to an internal compiler error for
> the microblaze architecture in the following commit:
> http://git.buildroot.net/buildroot/commit/?id=d517415bcda380336f4a27bf248cef4d81791c9e
> 
> The problem is due to an specific GCC optimization flag
> (-fexpensive-optimizations), so disabling it we can work around this
> problem and compile gpsd for the microblaze architecture.
> 
> Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
> ---
>  package/gpsd/Config.in        | 3 ---
>  package/gpsd/gpsd.mk          | 7 ++++++-
>  package/sconeserver/Config.in | 2 --
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/package/gpsd/Config.in b/package/gpsd/Config.in
> index fa8b8f6b2ad5..b4008ebd8353 100644
> --- a/package/gpsd/Config.in
> +++ b/package/gpsd/Config.in
> @@ -1,7 +1,6 @@
>  comment "gpsd needs a toolchain w/ threads, dynamic library"
>  	depends on BR2_USE_MMU
>  	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
> -	depends on !BR2_microblaze
>  
>  config BR2_PACKAGE_GPSD
>  	bool "gpsd"
> @@ -10,8 +9,6 @@ config BR2_PACKAGE_GPSD
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
>  	# Always tries to build a shared library
>  	depends on !BR2_STATIC_LIBS
> -	# triggers gcc ice
> -	depends on !BR2_microblaze
>  	help
>  	  gpsd is a service daemon that monitors one or more GPSes or AIS
>  	  receivers attached to a host computer through serial or USB ports,
> diff --git a/package/gpsd/gpsd.mk b/package/gpsd/gpsd.mk
> index 87911c3905fe..18715f8f2933 100644
> --- a/package/gpsd/gpsd.mk
> +++ b/package/gpsd/gpsd.mk
> @@ -13,6 +13,7 @@ GPSD_INSTALL_STAGING = YES
>  GPSD_DEPENDENCIES = host-scons host-pkgconf
>  
>  GPSD_LDFLAGS = $(TARGET_LDFLAGS)
> +GPSD_CFLAGS = $(TARGET_CFLAGS)
>  
>  GPSD_SCONS_ENV = $(TARGET_CONFIGURE_OPTS)
>  
> @@ -37,6 +38,10 @@ else
>  GPSD_SCONS_OPTS += libgpsmm=no
>  endif
>  
> +ifeq ($(BR2_microblaze),y)

 The 'triggers gcc ice' comment should be repeated here.

 Otherwise looks good so you can add my
 Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>


 Regards,
 Arnout

> +GPSD_CFLAGS += -fno-expensive-optimizations
> +endif
> +
>  # Enable or disable Qt binding
>  ifeq ($(BR2_PACKAGE_QT_NETWORK),y)
>  GPSD_SCONS_ENV += QMAKE="$(QT_QMAKE)"
> @@ -185,7 +190,7 @@ ifeq ($(BR2_PACKAGE_GPSD_MAX_DEV),y)
>  GPSD_SCONS_OPTS += limited_max_devices=$(BR2_PACKAGE_GPSD_MAX_DEV_VALUE)
>  endif
>  
> -GPSD_SCONS_ENV += LDFLAGS="$(GPSD_LDFLAGS)"
> +GPSD_SCONS_ENV += LDFLAGS="$(GPSD_LDFLAGS)" CFLAGS="$(GPSD_CFLAGS)"
>  
>  define GPSD_BUILD_CMDS
>  	(cd $(@D); \
> diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in
> index f16e683bf563..4083aa7dce36 100644
> --- a/package/sconeserver/Config.in
> +++ b/package/sconeserver/Config.in
> @@ -63,7 +63,6 @@ config BR2_PACKAGE_SCONESERVER_LOCATION
>  	bool "location"
>  	depends on BR2_USE_MMU # gpsd
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # gpsd
> -	depends on !BR2_microblaze # gpsd
>  	depends on !BR2_STATIC_LIBS # gpsd
>  	select BR2_PACKAGE_GPSD
>  	help
> @@ -72,7 +71,6 @@ config BR2_PACKAGE_SCONESERVER_LOCATION
>  comment "location support needs a toolchain w/ theads, dynamic library"
>  	depends on BR2_USE_MMU
>  	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBRARY
> -	depends on !BR2_microblaze
>  
>  config BR2_PACKAGE_SCONESERVER_LETTUCE
>  	bool "lettuce"
>
Sergio Prado Nov. 22, 2015, 11:52 a.m. UTC | #2
Sergio Prado
Embedded Labworks
Office: +55 11 2628-3461
Mobile: +55 11 97123-3420

2015-11-21 22:23 GMT-02:00 Arnout Vandecappelle <arnout@mind.be>:

>  Since you also add a workaround, the subject should have been:
>
> gpsd: add work-around and re-enable for microblaze
>
> (I've taken some poetic license here :-)
>
OK. :)


>
> On 21-11-15 22:53, Sergio Prado wrote:
> > Fix (works around) bug #6872
> > https://bugs.busybox.net/show_bug.cgi?id=6872
> >
> > The gpsd package was disabled due to an internal compiler error for
> > the microblaze architecture in the following commit:
> >
> http://git.buildroot.net/buildroot/commit/?id=d517415bcda380336f4a27bf248cef4d81791c9e
> >
> > The problem is due to an specific GCC optimization flag
> > (-fexpensive-optimizations), so disabling it we can work around this
> > problem and compile gpsd for the microblaze architecture.
> >
> > Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
> > ---
> >  package/gpsd/Config.in        | 3 ---
> >  package/gpsd/gpsd.mk          | 7 ++++++-
> >  package/sconeserver/Config.in | 2 --
> >  3 files changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/package/gpsd/Config.in b/package/gpsd/Config.in
> > index fa8b8f6b2ad5..b4008ebd8353 100644
> > --- a/package/gpsd/Config.in
> > +++ b/package/gpsd/Config.in
> > @@ -1,7 +1,6 @@
> >  comment "gpsd needs a toolchain w/ threads, dynamic library"
> >       depends on BR2_USE_MMU
> >       depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
> > -     depends on !BR2_microblaze
> >
> >  config BR2_PACKAGE_GPSD
> >       bool "gpsd"
> > @@ -10,8 +9,6 @@ config BR2_PACKAGE_GPSD
> >       depends on BR2_TOOLCHAIN_HAS_THREADS
> >       # Always tries to build a shared library
> >       depends on !BR2_STATIC_LIBS
> > -     # triggers gcc ice
> > -     depends on !BR2_microblaze
> >       help
> >         gpsd is a service daemon that monitors one or more GPSes or AIS
> >         receivers attached to a host computer through serial or USB
> ports,
> > diff --git a/package/gpsd/gpsd.mk b/package/gpsd/gpsd.mk
> > index 87911c3905fe..18715f8f2933 100644
> > --- a/package/gpsd/gpsd.mk
> > +++ b/package/gpsd/gpsd.mk
> > @@ -13,6 +13,7 @@ GPSD_INSTALL_STAGING = YES
> >  GPSD_DEPENDENCIES = host-scons host-pkgconf
> >
> >  GPSD_LDFLAGS = $(TARGET_LDFLAGS)
> > +GPSD_CFLAGS = $(TARGET_CFLAGS)
> >
> >  GPSD_SCONS_ENV = $(TARGET_CONFIGURE_OPTS)
> >
> > @@ -37,6 +38,10 @@ else
> >  GPSD_SCONS_OPTS += libgpsmm=no
> >  endif
> >
> > +ifeq ($(BR2_microblaze),y)
>
>  The 'triggers gcc ice' comment should be repeated here.
>
OK.


>
>  Otherwise looks good so you can add my
>  Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>
I will do it and send v2.

Thanks!


>
>  Regards,
>  Arnout
>
> > +GPSD_CFLAGS += -fno-expensive-optimizations
> > +endif
> > +
> >  # Enable or disable Qt binding
> >  ifeq ($(BR2_PACKAGE_QT_NETWORK),y)
> >  GPSD_SCONS_ENV += QMAKE="$(QT_QMAKE)"
> > @@ -185,7 +190,7 @@ ifeq ($(BR2_PACKAGE_GPSD_MAX_DEV),y)
> >  GPSD_SCONS_OPTS += limited_max_devices=$(BR2_PACKAGE_GPSD_MAX_DEV_VALUE)
> >  endif
> >
> > -GPSD_SCONS_ENV += LDFLAGS="$(GPSD_LDFLAGS)"
> > +GPSD_SCONS_ENV += LDFLAGS="$(GPSD_LDFLAGS)" CFLAGS="$(GPSD_CFLAGS)"
> >
> >  define GPSD_BUILD_CMDS
> >       (cd $(@D); \
> > diff --git a/package/sconeserver/Config.in
> b/package/sconeserver/Config.in
> > index f16e683bf563..4083aa7dce36 100644
> > --- a/package/sconeserver/Config.in
> > +++ b/package/sconeserver/Config.in
> > @@ -63,7 +63,6 @@ config BR2_PACKAGE_SCONESERVER_LOCATION
> >       bool "location"
> >       depends on BR2_USE_MMU # gpsd
> >       depends on BR2_TOOLCHAIN_HAS_THREADS # gpsd
> > -     depends on !BR2_microblaze # gpsd
> >       depends on !BR2_STATIC_LIBS # gpsd
> >       select BR2_PACKAGE_GPSD
> >       help
> > @@ -72,7 +71,6 @@ config BR2_PACKAGE_SCONESERVER_LOCATION
> >  comment "location support needs a toolchain w/ theads, dynamic library"
> >       depends on BR2_USE_MMU
> >       depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBRARY
> > -     depends on !BR2_microblaze
> >
> >  config BR2_PACKAGE_SCONESERVER_LETTUCE
> >       bool "lettuce"
> >
>
>
> --
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
>
diff mbox

Patch

diff --git a/package/gpsd/Config.in b/package/gpsd/Config.in
index fa8b8f6b2ad5..b4008ebd8353 100644
--- a/package/gpsd/Config.in
+++ b/package/gpsd/Config.in
@@ -1,7 +1,6 @@ 
 comment "gpsd needs a toolchain w/ threads, dynamic library"
 	depends on BR2_USE_MMU
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
-	depends on !BR2_microblaze
 
 config BR2_PACKAGE_GPSD
 	bool "gpsd"
@@ -10,8 +9,6 @@  config BR2_PACKAGE_GPSD
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	# Always tries to build a shared library
 	depends on !BR2_STATIC_LIBS
-	# triggers gcc ice
-	depends on !BR2_microblaze
 	help
 	  gpsd is a service daemon that monitors one or more GPSes or AIS
 	  receivers attached to a host computer through serial or USB ports,
diff --git a/package/gpsd/gpsd.mk b/package/gpsd/gpsd.mk
index 87911c3905fe..18715f8f2933 100644
--- a/package/gpsd/gpsd.mk
+++ b/package/gpsd/gpsd.mk
@@ -13,6 +13,7 @@  GPSD_INSTALL_STAGING = YES
 GPSD_DEPENDENCIES = host-scons host-pkgconf
 
 GPSD_LDFLAGS = $(TARGET_LDFLAGS)
+GPSD_CFLAGS = $(TARGET_CFLAGS)
 
 GPSD_SCONS_ENV = $(TARGET_CONFIGURE_OPTS)
 
@@ -37,6 +38,10 @@  else
 GPSD_SCONS_OPTS += libgpsmm=no
 endif
 
+ifeq ($(BR2_microblaze),y)
+GPSD_CFLAGS += -fno-expensive-optimizations
+endif
+
 # Enable or disable Qt binding
 ifeq ($(BR2_PACKAGE_QT_NETWORK),y)
 GPSD_SCONS_ENV += QMAKE="$(QT_QMAKE)"
@@ -185,7 +190,7 @@  ifeq ($(BR2_PACKAGE_GPSD_MAX_DEV),y)
 GPSD_SCONS_OPTS += limited_max_devices=$(BR2_PACKAGE_GPSD_MAX_DEV_VALUE)
 endif
 
-GPSD_SCONS_ENV += LDFLAGS="$(GPSD_LDFLAGS)"
+GPSD_SCONS_ENV += LDFLAGS="$(GPSD_LDFLAGS)" CFLAGS="$(GPSD_CFLAGS)"
 
 define GPSD_BUILD_CMDS
 	(cd $(@D); \
diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in
index f16e683bf563..4083aa7dce36 100644
--- a/package/sconeserver/Config.in
+++ b/package/sconeserver/Config.in
@@ -63,7 +63,6 @@  config BR2_PACKAGE_SCONESERVER_LOCATION
 	bool "location"
 	depends on BR2_USE_MMU # gpsd
 	depends on BR2_TOOLCHAIN_HAS_THREADS # gpsd
-	depends on !BR2_microblaze # gpsd
 	depends on !BR2_STATIC_LIBS # gpsd
 	select BR2_PACKAGE_GPSD
 	help
@@ -72,7 +71,6 @@  config BR2_PACKAGE_SCONESERVER_LOCATION
 comment "location support needs a toolchain w/ theads, dynamic library"
 	depends on BR2_USE_MMU
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBRARY
-	depends on !BR2_microblaze
 
 config BR2_PACKAGE_SCONESERVER_LETTUCE
 	bool "lettuce"