Mark Wielaard 9baecd
commit ada5ad79e5d8ecf47838319a46ea4671079e6291
Mark Wielaard 9baecd
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Mark Wielaard 9baecd
Date:   Wed May 22 10:21:10 2013 +0000
Mark Wielaard 9baecd
Mark Wielaard 9baecd
    Support Linux kernel AF_BLUETOOTH for bind().
Mark Wielaard 9baecd
    
Mark Wielaard 9baecd
    Bug #320116. sockaddr_rc might contain some padding which might not be
Mark Wielaard 9baecd
    initialized. Explicitly check the sockaddr_rc fields are set. That also
Mark Wielaard 9baecd
    produces better diagnostics about which field is unitialized.
Mark Wielaard 9baecd
    
Mark Wielaard 9baecd
    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13404 a5019735-40e9-0310-863c-91ae7b9d1cf9
Mark Wielaard 9baecd
Mark Wielaard 9baecd
diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c
Mark Wielaard 9baecd
index 40a4bbe..3a6ea82 100644
Mark Wielaard 9baecd
--- a/coregrind/m_syswrap/syswrap-generic.c
Mark Wielaard 9baecd
+++ b/coregrind/m_syswrap/syswrap-generic.c
Mark Wielaard 9baecd
@@ -941,6 +941,7 @@ void pre_mem_read_sockaddr ( ThreadId tid,
Mark Wielaard 9baecd
    struct vki_sockaddr_un*  sun  = (struct vki_sockaddr_un *)sa;
Mark Wielaard 9baecd
    struct vki_sockaddr_in*  sin  = (struct vki_sockaddr_in *)sa;
Mark Wielaard 9baecd
    struct vki_sockaddr_in6* sin6 = (struct vki_sockaddr_in6 *)sa;
Mark Wielaard 9baecd
+   struct vki_sockaddr_rc*  rc   = (struct vki_sockaddr_rc *)sa;
Mark Wielaard 9baecd
 
Mark Wielaard 9baecd
    /* NULL/zero-length sockaddrs are legal */
Mark Wielaard 9baecd
    if ( sa == NULL || salen == 0 ) return;
Mark Wielaard 9baecd
@@ -981,6 +982,13 @@ void pre_mem_read_sockaddr ( ThreadId tid,
Mark Wielaard 9baecd
             (Addr) &sin6->sin6_scope_id, sizeof (sin6->sin6_scope_id) );
Mark Wielaard 9baecd
          break;
Mark Wielaard 9baecd
                
Mark Wielaard 9baecd
+      case VKI_AF_BLUETOOTH:
Mark Wielaard 9baecd
+         VG_(sprintf) ( outmsg, description, "rc_bdaddr" );
Mark Wielaard 9baecd
+         PRE_MEM_READ( outmsg, (Addr) &rc->rc_bdaddr, sizeof (rc->rc_bdaddr) );
Mark Wielaard 9baecd
+         VG_(sprintf) ( outmsg, description, "rc_channel" );
Mark Wielaard 9baecd
+         PRE_MEM_READ( outmsg, (Addr) &rc->rc_channel, sizeof (rc->rc_channel) );
Mark Wielaard 9baecd
+         break;
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
       default:
Mark Wielaard 9baecd
          VG_(sprintf) ( outmsg, description, "" );
Mark Wielaard 9baecd
          PRE_MEM_READ( outmsg, (Addr) sa, salen );
Mark Wielaard 9baecd
diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h
Mark Wielaard 9baecd
index c57cabd..08ab138 100644
Mark Wielaard 9baecd
--- a/include/vki/vki-linux.h
Mark Wielaard 9baecd
+++ b/include/vki/vki-linux.h
Mark Wielaard 9baecd
@@ -676,6 +676,7 @@ __KINLINE struct vki_cmsghdr * vki_cmsg_nxthdr (struct vki_msghdr *__msg, struct
Mark Wielaard 9baecd
 #define VKI_AF_UNIX	1	/* Unix domain sockets 		*/
Mark Wielaard 9baecd
 #define VKI_AF_INET	2	/* Internet IP Protocol		*/
Mark Wielaard 9baecd
 #define VKI_AF_INET6	10	/* IP version 6			*/
Mark Wielaard 9baecd
+#define VKI_AF_BLUETOOTH 31	/* Bluetooth sockets		*/
Mark Wielaard 9baecd
 
Mark Wielaard 9baecd
 #define VKI_MSG_NOSIGNAL	0x4000	/* Do not generate SIGPIPE */
Mark Wielaard 9baecd
 
Mark Wielaard 9baecd
@@ -2968,6 +2969,16 @@ struct vki_hci_inquiry_req {
Mark Wielaard 9baecd
 };
Mark Wielaard 9baecd
 
Mark Wielaard 9baecd
 //----------------------------------------------------------------------
Mark Wielaard 9baecd
+// From linux-3.9.2/include/net/bluetooth/rfcomm.h
Mark Wielaard 9baecd
+//----------------------------------------------------------------------
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+struct vki_sockaddr_rc {
Mark Wielaard 9baecd
+        vki_sa_family_t     rc_family;
Mark Wielaard 9baecd
+        vki_bdaddr_t        rc_bdaddr;
Mark Wielaard 9baecd
+        __vki_u8            rc_channel;
Mark Wielaard 9baecd
+};
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+//----------------------------------------------------------------------
Mark Wielaard 9baecd
 // From linux-3.4/include/linux/kvm.h
Mark Wielaard 9baecd
 //----------------------------------------------------------------------
Mark Wielaard 9baecd
 #define KVMIO 0xAE
Mark Wielaard 9baecd
diff --git a/memcheck/tests/linux/Makefile.am b/memcheck/tests/linux/Makefile.am
Mark Wielaard 9baecd
index 4cc9113..9755f5c 100644
Mark Wielaard 9baecd
--- a/memcheck/tests/linux/Makefile.am
Mark Wielaard 9baecd
+++ b/memcheck/tests/linux/Makefile.am
Mark Wielaard 9baecd
@@ -8,6 +8,7 @@ EXTRA_DIST = \
Mark Wielaard 9baecd
 	capget.vgtest capget.stderr.exp capget.stderr.exp2 \
Mark Wielaard 9baecd
 	lsframe1.vgtest lsframe1.stdout.exp lsframe1.stderr.exp \
Mark Wielaard 9baecd
 	lsframe2.vgtest lsframe2.stdout.exp lsframe2.stderr.exp \
Mark Wielaard 9baecd
+	rfcomm.vgtest rfcomm.stderr.exp \
Mark Wielaard 9baecd
 	sigqueue.vgtest sigqueue.stderr.exp \
Mark Wielaard 9baecd
 	stack_changes.stderr.exp stack_changes.stdout.exp \
Mark Wielaard 9baecd
 	    stack_changes.stdout.exp2 stack_changes.vgtest \
Mark Wielaard 9baecd
@@ -26,6 +27,7 @@ check_PROGRAMS = \
Mark Wielaard 9baecd
 	getregset \
Mark Wielaard 9baecd
 	lsframe1 \
Mark Wielaard 9baecd
 	lsframe2 \
Mark Wielaard 9baecd
+	rfcomm \
Mark Wielaard 9baecd
 	sigqueue \
Mark Wielaard 9baecd
 	stack_changes \
Mark Wielaard 9baecd
 	stack_switch \
Mark Wielaard 9baecd
diff --git a/memcheck/tests/linux/rfcomm.c b/memcheck/tests/linux/rfcomm.c
Mark Wielaard 9baecd
new file mode 100644
Mark Wielaard 9baecd
index 0000000..02dcd7e
Mark Wielaard 9baecd
--- /dev/null
Mark Wielaard 9baecd
+++ b/memcheck/tests/linux/rfcomm.c
Mark Wielaard 9baecd
@@ -0,0 +1,54 @@
Mark Wielaard 9baecd
+#include <stdint.h>
Mark Wielaard 9baecd
+#include <stdio.h>
Mark Wielaard 9baecd
+#include <stdlib.h>
Mark Wielaard 9baecd
+#include <sys/types.h>
Mark Wielaard 9baecd
+#include <sys/socket.h>
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+/* user space headers might not be there, define things ourselves. */
Mark Wielaard 9baecd
+typedef struct {
Mark Wielaard 9baecd
+   uint8_t b[6];
Mark Wielaard 9baecd
+} __attribute__((packed)) vui_bdaddr_t;
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+struct vui_sockaddr_rc {
Mark Wielaard 9baecd
+	sa_family_t	rc_family;
Mark Wielaard 9baecd
+	vui_bdaddr_t	rc_bdaddr;
Mark Wielaard 9baecd
+	uint8_t		rc_channel;
Mark Wielaard 9baecd
+};
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+#define VUI_AF_BLUETOOTH 31
Mark Wielaard 9baecd
+#define VUI_BTPROTO_RFCOMM 3
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+#define VUI_BDADDR_ANY (&(vui_bdaddr_t) {{0, 0, 0, 0, 0, 0}})
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+int
Mark Wielaard 9baecd
+main (int argc, char **argv)
Mark Wielaard 9baecd
+{
Mark Wielaard 9baecd
+  int nSocket;
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+  nSocket = socket(VUI_AF_BLUETOOTH, SOCK_STREAM, VUI_BTPROTO_RFCOMM);
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+  if (nSocket < 0)
Mark Wielaard 9baecd
+    {
Mark Wielaard 9baecd
+      // Not supported, nothing to test...
Mark Wielaard 9baecd
+      return 1;
Mark Wielaard 9baecd
+    }
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+  struct vui_sockaddr_rc aAddr;
Mark Wielaard 9baecd
+  // Ignore return values.
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+  // Missing family
Mark Wielaard 9baecd
+  bind(nSocket, (struct sockaddr *) &aAddr, sizeof(aAddr));
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+  aAddr.rc_family = VUI_AF_BLUETOOTH;
Mark Wielaard 9baecd
+  // Missing bdaddr.
Mark Wielaard 9baecd
+  bind(nSocket, (struct sockaddr *) &aAddr, sizeof(aAddr));
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+  aAddr.rc_bdaddr = *VUI_BDADDR_ANY;
Mark Wielaard 9baecd
+  // Missing channel.
Mark Wielaard 9baecd
+  bind(nSocket, (struct sockaddr *) &aAddr, sizeof(aAddr));
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+  aAddr.rc_channel = 5;
Mark Wielaard 9baecd
+  bind(nSocket, (struct sockaddr *) &aAddr, sizeof(aAddr));
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+  return 0;
Mark Wielaard 9baecd
+}
Mark Wielaard 9baecd
diff --git a/memcheck/tests/linux/rfcomm.stderr.exp b/memcheck/tests/linux/rfcomm.stderr.exp
Mark Wielaard 9baecd
new file mode 100644
Mark Wielaard 9baecd
index 0000000..4df935b
Mark Wielaard 9baecd
--- /dev/null
Mark Wielaard 9baecd
+++ b/memcheck/tests/linux/rfcomm.stderr.exp
Mark Wielaard 9baecd
@@ -0,0 +1,21 @@
Mark Wielaard 9baecd
+Syscall param socketcall.bind(my_addr.sa_family) points to uninitialised byte(s)
Mark Wielaard 9baecd
+   ...
Mark Wielaard 9baecd
+   by 0x........: main (rfcomm.c:40)
Mark Wielaard 9baecd
+ Address 0x........ is on thread 1's stack
Mark Wielaard 9baecd
+ Uninitialised value was created by a stack allocation
Mark Wielaard 9baecd
+   at 0x........: main (rfcomm.c:25)
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+Syscall param socketcall.bind(my_addr.rc_bdaddr) points to uninitialised byte(s)
Mark Wielaard 9baecd
+   ...
Mark Wielaard 9baecd
+   by 0x........: main (rfcomm.c:44)
Mark Wielaard 9baecd
+ Address 0x........ is on thread 1's stack
Mark Wielaard 9baecd
+ Uninitialised value was created by a stack allocation
Mark Wielaard 9baecd
+   at 0x........: main (rfcomm.c:25)
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+Syscall param socketcall.bind(my_addr.rc_channel) points to uninitialised byte(s)
Mark Wielaard 9baecd
+   ...
Mark Wielaard 9baecd
+   by 0x........: main (rfcomm.c:48)
Mark Wielaard 9baecd
+ Address 0x........ is on thread 1's stack
Mark Wielaard 9baecd
+ Uninitialised value was created by a stack allocation
Mark Wielaard 9baecd
+   at 0x........: main (rfcomm.c:25)
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
diff --git a/memcheck/tests/linux/rfcomm.vgtest b/memcheck/tests/linux/rfcomm.vgtest
Mark Wielaard 9baecd
new file mode 100644
Mark Wielaard 9baecd
index 0000000..490aef4
Mark Wielaard 9baecd
--- /dev/null
Mark Wielaard 9baecd
+++ b/memcheck/tests/linux/rfcomm.vgtest
Mark Wielaard 9baecd
@@ -0,0 +1,5 @@
Mark Wielaard 9baecd
+prog: rfcomm
Mark Wielaard 9baecd
+vgopts: -q --track-origins=yes
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+# Will exit -1 if AF_BLUETOOTH not supported
Mark Wielaard 9baecd
+prereq: ./rfcomm
Mark Wielaard 9baecd
Mark Wielaard 9baecd
commit 4cb663fdaa2a63efc447f7251270446c4e8c9611
Mark Wielaard 9baecd
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Mark Wielaard 9baecd
Date:   Wed May 22 10:37:52 2013 +0000
Mark Wielaard 9baecd
Mark Wielaard 9baecd
    Don't break platforms without AF_BLUETOOTH.
Mark Wielaard 9baecd
    
Mark Wielaard 9baecd
    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13405 a5019735-40e9-0310-863c-91ae7b9d1cf9
Mark Wielaard 9baecd
Mark Wielaard 9baecd
diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c
Mark Wielaard 9baecd
index 3a6ea82..b85fd9c 100644
Mark Wielaard 9baecd
--- a/coregrind/m_syswrap/syswrap-generic.c
Mark Wielaard 9baecd
+++ b/coregrind/m_syswrap/syswrap-generic.c
Mark Wielaard 9baecd
@@ -941,7 +941,9 @@ void pre_mem_read_sockaddr ( ThreadId tid,
Mark Wielaard 9baecd
    struct vki_sockaddr_un*  sun  = (struct vki_sockaddr_un *)sa;
Mark Wielaard 9baecd
    struct vki_sockaddr_in*  sin  = (struct vki_sockaddr_in *)sa;
Mark Wielaard 9baecd
    struct vki_sockaddr_in6* sin6 = (struct vki_sockaddr_in6 *)sa;
Mark Wielaard 9baecd
+#ifdef VKI_AF_BLUETOOTH
Mark Wielaard 9baecd
    struct vki_sockaddr_rc*  rc   = (struct vki_sockaddr_rc *)sa;
Mark Wielaard 9baecd
+#endif
Mark Wielaard 9baecd
 
Mark Wielaard 9baecd
    /* NULL/zero-length sockaddrs are legal */
Mark Wielaard 9baecd
    if ( sa == NULL || salen == 0 ) return;
Mark Wielaard 9baecd
@@ -981,13 +983,15 @@ void pre_mem_read_sockaddr ( ThreadId tid,
Mark Wielaard 9baecd
          PRE_MEM_READ( outmsg,
Mark Wielaard 9baecd
             (Addr) &sin6->sin6_scope_id, sizeof (sin6->sin6_scope_id) );
Mark Wielaard 9baecd
          break;
Mark Wielaard 9baecd
-               
Mark Wielaard 9baecd
+
Mark Wielaard 9baecd
+#ifdef VKI_AF_BLUETOOTH
Mark Wielaard 9baecd
       case VKI_AF_BLUETOOTH:
Mark Wielaard 9baecd
          VG_(sprintf) ( outmsg, description, "rc_bdaddr" );
Mark Wielaard 9baecd
          PRE_MEM_READ( outmsg, (Addr) &rc->rc_bdaddr, sizeof (rc->rc_bdaddr) );
Mark Wielaard 9baecd
          VG_(sprintf) ( outmsg, description, "rc_channel" );
Mark Wielaard 9baecd
          PRE_MEM_READ( outmsg, (Addr) &rc->rc_channel, sizeof (rc->rc_channel) );
Mark Wielaard 9baecd
          break;
Mark Wielaard 9baecd
+#endif
Mark Wielaard 9baecd
 
Mark Wielaard 9baecd
       default:
Mark Wielaard 9baecd
          VG_(sprintf) ( outmsg, description, "" );
Mark Wielaard 9baecd
--- valgrind-3.8.1.orig/memcheck/tests/linux/Makefile.in	2013-07-08 15:15:20.579962577 +0200
Mark Wielaard 9baecd
+++ valgrind-3.8.1/memcheck/tests/linux/Makefile.in	2013-07-08 16:12:36.353352626 +0200
Mark Wielaard 9baecd
@@ -55,8 +55,8 @@
Mark Wielaard 9baecd
 @VGCONF_HAVE_PLATFORM_SEC_TRUE@		-DVGP_SEC_@VGCONF_ARCH_PRI@_@VGCONF_OS@=1
Mark Wielaard 9baecd
 
Mark Wielaard 9baecd
 check_PROGRAMS = brk$(EXEEXT) capget$(EXEEXT) getregset$(EXEEXT) \
Mark Wielaard 9baecd
-	lsframe1$(EXEEXT) lsframe2$(EXEEXT) sigqueue$(EXEEXT) \
Mark Wielaard 9baecd
-	stack_changes$(EXEEXT) stack_switch$(EXEEXT) \
Mark Wielaard 9baecd
+	lsframe1$(EXEEXT) lsframe2$(EXEEXT) rfcomm$(EXEEXT) \
Mark Wielaard 9baecd
+	sigqueue$(EXEEXT) stack_changes$(EXEEXT) stack_switch$(EXEEXT) \
Mark Wielaard 9baecd
 	syscalls-2007$(EXEEXT) syslog-syscall$(EXEEXT) \
Mark Wielaard 9baecd
 	timerfd-syscall$(EXEEXT) proc-auxv$(EXEEXT)
Mark Wielaard 9baecd
 subdir = memcheck/tests/linux
Mark Wielaard 9baecd
@@ -86,6 +86,9 @@
Mark Wielaard 9baecd
 proc_auxv_SOURCES = proc-auxv.c
Mark Wielaard 9baecd
 proc_auxv_OBJECTS = proc-auxv.$(OBJEXT)
Mark Wielaard 9baecd
 proc_auxv_LDADD = $(LDADD)
Mark Wielaard 9baecd
+rfcomm_SOURCES = rfcomm.c
Mark Wielaard 9baecd
+rfcomm_OBJECTS = rfcomm.$(OBJEXT)
Mark Wielaard 9baecd
+rfcomm_LDADD = $(LDADD)
Mark Wielaard 9baecd
 sigqueue_SOURCES = sigqueue.c
Mark Wielaard 9baecd
 sigqueue_OBJECTS = sigqueue.$(OBJEXT)
Mark Wielaard 9baecd
 sigqueue_LDADD = $(LDADD)
Mark Wielaard 9baecd
@@ -114,10 +117,10 @@
Mark Wielaard 9baecd
 CCLD = $(CC)
Mark Wielaard 9baecd
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
Mark Wielaard 9baecd
 SOURCES = brk.c capget.c getregset.c lsframe1.c lsframe2.c proc-auxv.c \
Mark Wielaard 9baecd
-	sigqueue.c stack_changes.c stack_switch.c syscalls-2007.c \
Mark Wielaard 9baecd
-	syslog-syscall.c timerfd-syscall.c
Mark Wielaard 9baecd
+	rfcomm.c sigqueue.c stack_changes.c stack_switch.c \
Mark Wielaard 9baecd
+	syscalls-2007.c syslog-syscall.c timerfd-syscall.c
Mark Wielaard 9baecd
 DIST_SOURCES = brk.c capget.c getregset.c lsframe1.c lsframe2.c \
Mark Wielaard 9baecd
-	proc-auxv.c sigqueue.c stack_changes.c stack_switch.c \
Mark Wielaard 9baecd
+	proc-auxv.c rfcomm.c sigqueue.c stack_changes.c stack_switch.c \
Mark Wielaard 9baecd
 	syscalls-2007.c syslog-syscall.c timerfd-syscall.c
Mark Wielaard 9baecd
 ETAGS = etags
Mark Wielaard 9baecd
 CTAGS = ctags
Mark Wielaard 9baecd
@@ -405,6 +408,7 @@
Mark Wielaard 9baecd
 	capget.vgtest capget.stderr.exp capget.stderr.exp2 \
Mark Wielaard 9baecd
 	lsframe1.vgtest lsframe1.stdout.exp lsframe1.stderr.exp \
Mark Wielaard 9baecd
 	lsframe2.vgtest lsframe2.stdout.exp lsframe2.stderr.exp \
Mark Wielaard 9baecd
+	rfcomm.vgtest rfcomm.stderr.exp \
Mark Wielaard 9baecd
 	sigqueue.vgtest sigqueue.stderr.exp \
Mark Wielaard 9baecd
 	stack_changes.stderr.exp stack_changes.stdout.exp \
Mark Wielaard 9baecd
 	    stack_changes.stdout.exp2 stack_changes.vgtest \
Mark Wielaard 9baecd
@@ -473,6 +477,9 @@
Mark Wielaard 9baecd
 proc-auxv$(EXEEXT): $(proc_auxv_OBJECTS) $(proc_auxv_DEPENDENCIES) 
Mark Wielaard 9baecd
 	@rm -f proc-auxv$(EXEEXT)
Mark Wielaard 9baecd
 	$(LINK) $(proc_auxv_OBJECTS) $(proc_auxv_LDADD) $(LIBS)
Mark Wielaard 9baecd
+rfcomm$(EXEEXT): $(rfcomm_OBJECTS) $(rfcomm_DEPENDENCIES) 
Mark Wielaard 9baecd
+	@rm -f rfcomm$(EXEEXT)
Mark Wielaard 9baecd
+	$(LINK) $(rfcomm_OBJECTS) $(rfcomm_LDADD) $(LIBS)
Mark Wielaard 9baecd
 sigqueue$(EXEEXT): $(sigqueue_OBJECTS) $(sigqueue_DEPENDENCIES) 
Mark Wielaard 9baecd
 	@rm -f sigqueue$(EXEEXT)
Mark Wielaard 9baecd
 	$(LINK) $(sigqueue_OBJECTS) $(sigqueue_LDADD) $(LIBS)
Mark Wielaard 9baecd
@@ -504,6 +511,7 @@
Mark Wielaard 9baecd
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsframe1.Po@am__quote@
Mark Wielaard 9baecd
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsframe2.Po@am__quote@
Mark Wielaard 9baecd
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proc-auxv.Po@am__quote@
Mark Wielaard 9baecd
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfcomm.Po@am__quote@
Mark Wielaard 9baecd
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigqueue.Po@am__quote@
Mark Wielaard 9baecd
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack_changes.Po@am__quote@
Mark Wielaard 9baecd
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack_switch.Po@am__quote@