summaryrefslogtreecommitdiff
path: root/package/gpsd
diff options
context:
space:
mode:
Diffstat (limited to 'package/gpsd')
-rw-r--r--package/gpsd/Config.in18
-rw-r--r--package/gpsd/Makefile18
-rw-r--r--package/gpsd/patches/patch-contrib_binlog_c11
-rw-r--r--package/gpsd/patches/patch-contrib_motosend_c29
-rw-r--r--package/gpsd/patches/patch-driver_garmin_txt_c20
-rw-r--r--package/gpsd/patches/patch-driver_sirf_c11
-rw-r--r--package/gpsd/patches/patch-gpspipe_c11
-rw-r--r--package/gpsd/patches/patch-hex_c11
8 files changed, 127 insertions, 2 deletions
diff --git a/package/gpsd/Config.in b/package/gpsd/Config.in
index f8c3614df..f0c274449 100644
--- a/package/gpsd/Config.in
+++ b/package/gpsd/Config.in
@@ -24,3 +24,21 @@ config ADK_PACKAGE_GPSD_CLIENTS
help
This enables the command-line GPS client "cgps" and
the "gpxlogger" tool for outputting standard GPX files.
+
+choice
+prompt "C++ library to use"
+depends on ADK_PACKAGE_GPSD
+default ADK_COMPILE_GPSD_WITH_STDCXX if ADK_TARGET_LIB_GLIBC
+default ADK_COMPILE_GPSD_WITH_UCLIBCXX if ADK_TARGET_LIB_UCLIBC
+
+config ADK_COMPILE_GPSD_WITH_STDCXX
+ bool "Standard C++ library"
+ select ADK_PACKAGE_LIBSTDCXX
+ help
+
+config ADK_COMPILE_GPSD_WITH_UCLIBCXX
+ bool "Embedded uClibc++ library"
+ select ADK_PACKAGE_UCLIBCXX
+ help
+
+endchoice
diff --git a/package/gpsd/Makefile b/package/gpsd/Makefile
index 61555098e..ced495739 100644
--- a/package/gpsd/Makefile
+++ b/package/gpsd/Makefile
@@ -16,6 +16,12 @@ PKG_DESCR_1:= GPS client utilities
include ${TOPDIR}/mk/package.mk
+ifeq ($(ADK_COMPILE_GPSD_WITH_UCLIBCXX),y)
+PKG_DEPENDS+= uclibc++
+else
+PKG_DEPENDS+= libstdcxx
+endif
+
$(eval $(call PKG_template,GPSD,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,GPSD_CLIENTS,gpsd-clients,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR_1},${PKG_SECTION}))
@@ -31,8 +37,9 @@ CONFIGURE_ARGS+= --without-x \
BUILD_STYLE= auto
INSTALL_STYLE= auto
-ifeq ($(ADK_TARGET_LIB_UCLIBCXX),y)
-TCXXFLAGS+= -fno-builtin -fno-rtti -nostdinc++
+ifeq ($(ADK_COMPILE_GPSD_WITH_UCLIBCXX),y)
+TCXXFLAGS+= -fno-builtin -fno-rtti -nostdinc++ \
+ -I${STAGING_DIR}/usr/include/uClibc++
TLDFLAGS+= -luClibc++ -lc -lm -nodefaultlibs
else
TLDFLAGS+= -shared
@@ -41,6 +48,13 @@ endif
post-extract:
@find ${WRKBUILD} -name *.rej -delete
+ifeq (${ADK_COMPILE_GPSD_WITH_UCLIBCXX},y)
+# add workaround because libtool tries to link libstdc++
+post-configure:
+ ${SED} 's#postdeps="-lstdc.*#postdeps=""#' \
+ ${WRKBUILD}/libtool
+endif
+
post-install:
${INSTALL_DIR} ${IDIR_GPSD}/usr/lib ${IDIR_GPSD}/usr/sbin
${CP} ${WRKINST}/usr/lib/libgps.so.* ${IDIR_GPSD}/usr/lib
diff --git a/package/gpsd/patches/patch-contrib_binlog_c b/package/gpsd/patches/patch-contrib_binlog_c
new file mode 100644
index 000000000..99b20bf47
--- /dev/null
+++ b/package/gpsd/patches/patch-contrib_binlog_c
@@ -0,0 +1,11 @@
+--- gpsd-2.39.orig/contrib/binlog.c 2009-01-28 21:53:46.000000000 +0100
++++ gpsd-2.39/contrib/binlog.c 2009-06-13 09:13:00.000000000 +0200
+@@ -58,7 +58,7 @@ int main(int argc, char **argv) {
+ if (l > 0)
+ write(ofd, buf, l);
+ usleep(1000);
+- bzero(buf, BUFSIZ);
++ memset(buf, 0, BUFSIZ);
+ spinner( n++ );
+ }
+ return 0;
diff --git a/package/gpsd/patches/patch-contrib_motosend_c b/package/gpsd/patches/patch-contrib_motosend_c
new file mode 100644
index 000000000..c5f1b0162
--- /dev/null
+++ b/package/gpsd/patches/patch-contrib_motosend_c
@@ -0,0 +1,29 @@
+--- gpsd-2.39.orig/contrib/motosend.c 2008-06-26 21:08:36.000000000 +0200
++++ gpsd-2.39/contrib/motosend.c 2009-06-13 09:12:46.000000000 +0200
+@@ -81,7 +81,7 @@ int main(int argc, char **argv) {
+ t = 0; n = 0;
+ while (1){
+ usleep(1000);
+- bzero(buf, BSIZ);
++ memset(buf, 0, BSIZ);
+ if ((l = read(fd, buf, BSIZ)) == -1)
+ if (!(EINTR == errno || EAGAIN == errno))
+ err(1, "read");
+@@ -119,7 +119,7 @@ static int moto_send(int fd, char *type,
+ if ((buf = malloc(l+7)) == NULL)
+ return -1;
+
+- bzero(buf, l+7);
++ memset(buf, 0, l+7);
+ buf[0] = '@'; buf[1] = '@';
+ buf[2] = type[0]; buf[3] = type[1];
+
+@@ -171,7 +171,7 @@ int gpsd_hexpack(char *src, char *dst, i
+ if ((l < 1) || (l > len))
+ return -1;
+
+- bzero(dst, len);
++ memset(dst, 0, len);
+ for (i = 0; i < l; i++)
+ if ((k = hex2bin(src+i*2)) != -1)
+ dst[i] = (char)(k & 0xff);
diff --git a/package/gpsd/patches/patch-driver_garmin_txt_c b/package/gpsd/patches/patch-driver_garmin_txt_c
new file mode 100644
index 000000000..604e103b0
--- /dev/null
+++ b/package/gpsd/patches/patch-driver_garmin_txt_c
@@ -0,0 +1,20 @@
+--- gpsd-2.39.orig/driver_garmin_txt.c 2009-03-03 12:39:57.000000000 +0100
++++ gpsd-2.39/driver_garmin_txt.c 2009-06-13 09:13:23.000000000 +0200
+@@ -167,7 +167,7 @@ static int gar_decode(const char *data,
+ return -1;
+ }
+
+- bzero(buf, (int)sizeof(buf));
++ memset(buf, 0, (int)sizeof(buf));
+ (void) strncpy(buf, data, length);
+ gpsd_report(LOG_RAW, "Decoded string: %s\n", buf);
+
+@@ -230,7 +230,7 @@ static int gar_int_decode(const char *da
+ return -1;
+ }
+
+- bzero(buf, (int)sizeof(buf));
++ memset(buf, 0, (int)sizeof(buf));
+ (void) strncpy(buf, data, length);
+ gpsd_report(LOG_RAW, "Decoded string: %s\n", buf);
+
diff --git a/package/gpsd/patches/patch-driver_sirf_c b/package/gpsd/patches/patch-driver_sirf_c
new file mode 100644
index 000000000..1e44cee91
--- /dev/null
+++ b/package/gpsd/patches/patch-driver_sirf_c
@@ -0,0 +1,11 @@
+--- gpsd-2.39.orig/driver_sirf.c 2009-03-07 16:30:58.000000000 +0100
++++ gpsd-2.39/driver_sirf.c 2009-06-13 09:13:42.000000000 +0200
+@@ -238,7 +238,7 @@ static gps_mask_t sirf_msg_debug(unsigne
+ char msgbuf[MAX_PACKET_LENGTH*3 + 2];
+ int i;
+
+- bzero(msgbuf, (int)sizeof(msgbuf));
++ memset(msgbuf, 0, (int)sizeof(msgbuf));
+
+ /*@ +charint @*/
+ if (0xe1 == buf[0]) { /* Development statistics messages */
diff --git a/package/gpsd/patches/patch-gpspipe_c b/package/gpsd/patches/patch-gpspipe_c
new file mode 100644
index 000000000..d840a2a36
--- /dev/null
+++ b/package/gpsd/patches/patch-gpspipe_c
@@ -0,0 +1,11 @@
+--- gpsd-2.39.orig/gpspipe.c 2009-03-03 00:22:49.000000000 +0100
++++ gpsd-2.39/gpspipe.c 2009-06-13 09:14:14.000000000 +0200
+@@ -108,7 +108,7 @@ static void open_serial(char* device)
+ }
+
+ /* Clear struct for new port settings. */
+- /*@i@*/bzero(&newtio, sizeof(newtio));
++ /*@i@*/memset(&newtio, 0, sizeof(newtio));
+
+ /* make it raw */
+ (void)cfmakeraw(&newtio);
diff --git a/package/gpsd/patches/patch-hex_c b/package/gpsd/patches/patch-hex_c
new file mode 100644
index 000000000..ebb2e1697
--- /dev/null
+++ b/package/gpsd/patches/patch-hex_c
@@ -0,0 +1,11 @@
+--- gpsd-2.39.orig/hex.c 2009-03-18 18:37:56.000000000 +0100
++++ gpsd-2.39/hex.c 2009-06-13 09:13:58.000000000 +0200
+@@ -61,7 +61,7 @@ int gpsd_hexpack(char *src, char *dst, s
+ if ((l < 1) || ((size_t)l > len))
+ return -2;
+
+- bzero(dst, (int)len);
++ memset(dst, 0, (int)len);
+ for (i = 0; i < l; i++)
+ if ((k = hex2bin(src+i*2)) != -1)
+ dst[i] = (char)(k & 0xff);