diff options
Diffstat (limited to 'package/gpsd')
-rw-r--r-- | package/gpsd/Config.in | 18 | ||||
-rw-r--r-- | package/gpsd/Makefile | 18 | ||||
-rw-r--r-- | package/gpsd/patches/patch-contrib_binlog_c | 11 | ||||
-rw-r--r-- | package/gpsd/patches/patch-contrib_motosend_c | 29 | ||||
-rw-r--r-- | package/gpsd/patches/patch-driver_garmin_txt_c | 20 | ||||
-rw-r--r-- | package/gpsd/patches/patch-driver_sirf_c | 11 | ||||
-rw-r--r-- | package/gpsd/patches/patch-gpspipe_c | 11 | ||||
-rw-r--r-- | package/gpsd/patches/patch-hex_c | 11 |
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); |