Commit 31a0e3fa authored by Sergio Prado's avatar Sergio Prado Committed by Thomas Petazzoni
Browse files

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

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: default avatarSergio Prado <sergio.prado@e-labworks.com>
Reviewed-by: default avatarArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 08e08586
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
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,
+7 −1
Original line number Diff line number Diff line
@@ -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,11 @@ else
GPSD_SCONS_OPTS += libgpsmm=no
endif

# prevents from triggering GCC ICE
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 +191,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); \
+0 −2
Original line number Diff line number Diff line
@@ -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"