summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2014-02-25 23:04:55 +0000
committerDmitry V. Levin <ldv@altlinux.org>2014-02-25 23:15:20 +0000
commitfdb896e577d4154b4dbd4350c9828e7df3b7da84 (patch)
tree1890a4a9eacf4212ff7031ff96d4f1f72a87ebae
parenta7c6e5143cef6d0b62e8812b8dee13f22e31d5db (diff)
downloadstrace-fdb896e577d4154b4dbd4350c9828e7df3b7da84.tar.gz
strace-fdb896e577d4154b4dbd4350c9828e7df3b7da84.tar.bz2
strace-fdb896e577d4154b4dbd4350c9828e7df3b7da84.tar.xz
Do not compile scsi ioctl decoding if <scsi/sg.h> is not available
Add a generic test for <scsi/sg.h> availability to fix build with Bionic libc that does not provide <scsi/sg.h>. * configure.ac (AC_CHECK_HEADERS): Add scsi/sg.h. * ioctl.c (ioctl_decode): Do not call scsi_ioctl if !HAVE_SCSI_SG_H. * scsi.c: Do not compile scsi ioctl decoding if !HAVE_SCSI_SG_H. Reported-by: Elliott Hughes <enh@google.com>
-rw-r--r--configure.ac1
-rw-r--r--ioctl.c2
-rw-r--r--scsi.c9
3 files changed, 10 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 9b65d4b..db24349 100644
--- a/configure.ac
+++ b/configure.ac
@@ -220,6 +220,7 @@ AC_CHECK_HEADERS(m4_normalize([
mqueue.h
netinet/sctp.h
poll.h
+ scsi/sg.h
stropts.h
sys/acl.h
sys/asynch.h
diff --git a/ioctl.c b/ioctl.c
index e9a503d..3f6c410 100644
--- a/ioctl.c
+++ b/ioctl.c
@@ -86,8 +86,10 @@ ioctl_decode(struct tcb *tcp, long code, long arg)
case 0x03:
case 0x12:
return block_ioctl(tcp, code, arg);
+#ifdef HAVE_SCSI_SG_H
case 0x22:
return scsi_ioctl(tcp, code, arg);
+#endif
case 'L':
return loop_ioctl(tcp, code, arg);
case 'M':
diff --git a/scsi.c b/scsi.c
index ed5b3bb..c49f954 100644
--- a/scsi.c
+++ b/scsi.c
@@ -27,8 +27,11 @@
*/
#include "defs.h"
-#include <sys/ioctl.h>
-#include <scsi/sg.h>
+
+#ifdef HAVE_SCSI_SG_H
+
+# include <sys/ioctl.h>
+# include <scsi/sg.h>
static const struct xlat sg_io_dxfer_direction[] = {
XLAT(SG_DXFER_NONE),
@@ -137,3 +140,5 @@ scsi_ioctl(struct tcb *tcp, long code, long arg)
}
return 1;
}
+
+#endif /* HAVE_SCSI_SG_H */