summaryrefslogtreecommitdiff
path: root/package/gpsd
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2011-01-17 21:55:49 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2011-01-17 21:55:49 +0100
commit15c84adca94bfe4a89ece5c04f06a884cf508ebb (patch)
tree727d3fd768a1abe75521190b90833b3a68cce4c6 /package/gpsd
parent0de5d9ecedff55481b3c1eb9c3841de17716a485 (diff)
fix packages to be compile with stack protector
- libtool do not pass -fstack-protector while linking, but this is required to successfully link libraries or executables with SSP - pass LDFLAGS for non-libtool packages
Diffstat (limited to 'package/gpsd')
-rw-r--r--package/gpsd/Makefile11
-rw-r--r--package/gpsd/patches/patch-Makefile_in11
-rw-r--r--package/gpsd/patches/patch-ltmain_sh20
3 files changed, 38 insertions, 4 deletions
diff --git a/package/gpsd/Makefile b/package/gpsd/Makefile
index 794d6074b..24536e5c1 100644
--- a/package/gpsd/Makefile
+++ b/package/gpsd/Makefile
@@ -13,8 +13,8 @@ PKG_DEPENDS:= libpthread
PKG_BUILDDEP:= ncurses
PKG_SITES:= http://download.berlios.de/gpsd/
PKG_URL:= http://gpsd.berlios.de/
-PKG_NEED_CXX:= 1
PKG_CXX:= GPSD
+PKG_NEED_CXX:= 1
PKG_SUBPKGS:= GPSD GPSD_CLIENTS
PKGSD_GPSD_CLIENTS:= GPS client utilities
@@ -32,10 +32,15 @@ CONFIGURE_ENV+= EGREP="grep -E" \
CONFIGURE_ARGS+= --disable-dbus
TCFLAGS+= -fPIC
+LIBRARIES:=-nodefaultlibs -luClibc++
+ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y)
+LIBRARIES+=-lssp -lssp_nonshared
+endif
+
ifeq ($(ADK_COMPILE_GPSD_WITH_UCLIBCXX),y)
-TCXXFLAGS+= -fno-builtin -fno-rtti -nostdinc++ \
+TCXXFLAGS+= -fno-rtti -nostdinc++ \
-I${STAGING_TARGET_DIR}/usr/include/uClibc++
-TLDFLAGS+= -luClibc++ -lc -lm -pthread -nodefaultlibs
+TLDFLAGS+= $(LIBRARIES)
else
TLDFLAGS+= -shared -pthread
endif
diff --git a/package/gpsd/patches/patch-Makefile_in b/package/gpsd/patches/patch-Makefile_in
index bd45358ee..b54aabbac 100644
--- a/package/gpsd/patches/patch-Makefile_in
+++ b/package/gpsd/patches/patch-Makefile_in
@@ -1,5 +1,5 @@
--- gpsd-2.95.orig/Makefile.in 2010-07-14 00:48:24.000000000 +0200
-+++ gpsd-2.95/Makefile.in 2010-07-30 13:04:19.000000000 +0200
++++ gpsd-2.95/Makefile.in 2011-01-15 19:56:22.000000000 +0100
@@ -612,8 +612,8 @@ libgps_la_SOURCES = $(libgps_c_sources)
libgpsd_la_SOURCES = $(libgpsd_c_sources) $(libgpsd_h_sources) \
driver_rtcm2.h packet_states.h
@@ -11,3 +11,12 @@
nodist_libgpsd_la_SOURCES = packet_names.h ais_json.i
libgps_la_LIBADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(LIBPTHREAD)
libgpsd_la_LIBADD = $(LIBM) $(LIBC) $(LIBNSL) $(LIBSOCKET) $(LIBPTHREAD) $(BLUEZ_LIBS) libgps.la
+@@ -996,7 +996,7 @@ clean-libLTLIBRARIES:
+ rm -f "$${dir}/so_locations"; \
+ done
+ libgps.la: $(libgps_la_OBJECTS) $(libgps_la_DEPENDENCIES)
+- $(libgps_la_LINK) -rpath $(libdir) $(libgps_la_OBJECTS) $(libgps_la_LIBADD) $(LIBS)
++ $(libgps_la_LINK) -rpath $(libdir) $(libgps_la_OBJECTS) $(libgps_la_LIBADD) $(LDFLAGS) $(LIBS)
+ libgpsd.la: $(libgpsd_la_OBJECTS) $(libgpsd_la_DEPENDENCIES)
+ $(LINK) -rpath $(libdir) $(libgpsd_la_OBJECTS) $(libgpsd_la_LIBADD) $(LIBS)
+ install-binPROGRAMS: $(bin_PROGRAMS)
diff --git a/package/gpsd/patches/patch-ltmain_sh b/package/gpsd/patches/patch-ltmain_sh
new file mode 100644
index 000000000..85a07afac
--- /dev/null
+++ b/package/gpsd/patches/patch-ltmain_sh
@@ -0,0 +1,20 @@
+--- gpsd-2.95.orig/ltmain.sh 2010-06-18 22:54:26.000000000 +0200
++++ gpsd-2.95/ltmain.sh 2011-01-15 20:23:12.000000000 +0100
+@@ -4765,7 +4765,7 @@ func_mode_link ()
+ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+ # @file GCC response files
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-fstack-protector*|-flto)
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ func_append compile_command " $arg"
+@@ -4963,7 +4963,7 @@ func_mode_link ()
+ done
+
+ if test "$linkmode" = lib; then
+- libs="$predeps $libs $compiler_lib_search_path $postdeps"
++ libs="$libs $compiler_lib_search_path"
+
+ # Compute libraries that are listed more than once in $predeps
+ # $postdeps and mark them as special (i.e., whose duplicates are