Skip to contentSkip to conversation

gpsd: re-enable on microblaze architecture

PATCH New Sergio Prado 2 participants 3 messages Nov 21, 2015 – Nov 22, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gpsd: re-enable on microblaze architecture

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.

---
 package/gpsd/Config.in        | 3 ---
 package/gpsd/gpsd.mk          | 7 ++++++-
 package/sconeserver/Config.in | 2 --
 3 files changed, 6 insertions(+), 6 deletions(-)
package/gpsd/Config.in +0 -3
index fa8b8f6b2ad5..b4008ebd8353 100644
@@ -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,
package/gpsd/gpsd.mk +6 -1
index 87911c3905fe..18715f8f2933 100644
@@ -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); \
package/sconeserver/Config.in +0 -2
index f16e683bf563..4083aa7dce36 100644
@@ -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"
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 gpsd: re-enable on microblaze architecture

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 :-)

Quoted 52 lines · Sergio Prado

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.

---
 package/gpsd/Config.in        | 3 ---
 package/gpsd/gpsd.mk          | 7 ++++++-
 package/sconeserver/Config.in | 2 --
 3 files changed, 6 insertions(+), 6 deletions(-)
package/gpsd/Config.in +0 -3
index fa8b8f6b2ad5..b4008ebd8353 100644
@@ -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,
package/gpsd/gpsd.mk +1 -0
index 87911c3905fe..18715f8f2933 100644
@@ -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)
 

package/gpsd/gpsd.mk else · line 41

Quoted 4 lines
package/gpsd/gpsd.mk +1 -0
@@ -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

Regards,
Arnout

Quoted 36 lines
package/gpsd/gpsd.mk +4 -1
+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); \
package/sconeserver/Config.in +0 -2
index f16e683bf563..4083aa7dce36 100644
@@ -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"
Signature · 6 lines
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
#2 lore raw

PATCH 1/1 gpsd: re-enable on microblaze architecture

Sergio Prado
Embedded Labworks
Office: +55 11 2628-3461
Mobile: +55 11 97123-3420

2015-11-21 22:23 GMT-02:00 Arnout Vandecappelle <[email protected]>:

Quoted 6 lines

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. :)

Quoted 55 lines · Sergio Prado
Quoted 6 lines

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

Quoted 25 lines

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.

---
 package/gpsd/Config.in        | 3 ---
 package/gpsd/gpsd.mk          | 7 ++++++-
 package/sconeserver/Config.in | 2 --
 3 files changed, 6 insertions(+), 6 deletions(-)
package/gpsd/Config.in +0 -1
index fa8b8f6b2ad5..b4008ebd8353 100644
@@ -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"

package/gpsd/Config.in config BR2_PACKAGE_GPSD · line 14

Quoted 8 lines
package/gpsd/Config.in +0 -2
@@ -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,

Quoted 12 lines
package/gpsd/gpsd.mk +1 -0
index 87911c3905fe..18715f8f2933 100644
@@ -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)
 
Quoted 8 lines

package/gpsd/gpsd.mk else · line 41

Quoted 5 lines
package/gpsd/gpsd.mk +1 -0
@@ -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.

Quoted 4 lines

Otherwise looks good so you can add my

I will do it and send v2.

Thanks!

Quoted 44 lines

Regards,
Arnout

Review

Quoted 16 lines
package/gpsd/gpsd.mk +4 -1
+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); \
(quoted diff) +0 -0

b/package/sconeserver/Config.in

Quoted 13 lines

index f16e683bf563..4083aa7dce36 100644

package/sconeserver/Config.in +0 -1
@@ -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

package/sconeserver/Config.in config BR2_PACKAGE_SCONESERVER_LOCATION · line 76

Quoted 7 lines
package/sconeserver/Config.in +0 -1
@@ -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"

--

Quoted 7 lines
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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151122/566dd4c8/attachment.html>