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>
diff --git a/configure.ac b/configure.ac
index 9b65d4b..db24349 100644
--- a/configure.ac
+++ b/configure.ac
@@ -220,6 +220,7 @@
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 @@
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 @@
}
return 1;
}
+
+#endif /* HAVE_SCSI_SG_H */