fixes for problems found by bionic build
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 14 Mar 2016 17:23:33 +0000 (18:23 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 14 Mar 2016 17:23:33 +0000 (18:23 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
include/libbb.h
miscutils/eject.c

index d05ac29769b04c673ea98854ac0f744fe713b7ee..8b226c00c5147791b32fdec8716bfc4d5437a76f 100644 (file)
 # include <netinet/in.h>
 #else
 # include <arpa/inet.h>
-# if !defined(__socklen_t_defined) && !defined(_SOCKLEN_T_DECLARED)
-/* We #define socklen_t *after* includes, otherwise we get
- * typedef redefinition errors from system headers
- * (in case "is it defined already" detection above failed)
- */
-#  define socklen_t bb_socklen_t
-   typedef unsigned socklen_t;
-# endif
+//This breaks on bionic:
+//# if !defined(__socklen_t_defined) && !defined(_SOCKLEN_T_DECLARED)
+///* We #define socklen_t *after* includes, otherwise we get
+// * typedef redefinition errors from system headers
+// * (in case "is it defined already" detection above failed)
+// */
+//#  define socklen_t bb_socklen_t
+//   typedef unsigned socklen_t;
+//# endif
+//if this is still needed, add a fix along the lines of
+//  ifdef SPECIFIC_BROKEN_LIBC_CHECK / typedef socklen_t / endif
+//in platform.h instead!
 #endif
 #ifndef HAVE_CLEARENV
 # define clearenv() do { if (environ) environ[0] = NULL; } while (0)
index a20e04b7f45fbdbb1a70739f1535532a3e673e41..15eaf556d68bd7c7ba3aca164f0856215d9aeb38 100644 (file)
 
 #include <sys/mount.h>
 #include "libbb.h"
+#if ENABLE_FEATURE_EJECT_SCSI
 /* Must be after libbb.h: they need size_t */
-#include "fix_u32.h"
-#include <scsi/sg.h>
-#include <scsi/scsi.h>
-
-/* various defines swiped from linux/cdrom.h */
-#define CDROMCLOSETRAY            0x5319  /* pendant of CDROMEJECT  */
-#define CDROMEJECT                0x5309  /* Ejects the cdrom media */
-#define CDROM_DRIVE_STATUS        0x5326  /* Get tray position, etc. */
-/* drive status possibilities returned by CDROM_DRIVE_STATUS ioctl */
-#define CDS_TRAY_OPEN        2
+# include "fix_u32.h"
+# include <scsi/sg.h>
+# include <scsi/scsi.h>
+#endif
 
 #define dev_fd 3
 
 /* Code taken from the original eject (http://eject.sourceforge.net/),
  * refactored it a bit for busybox (ne-bb@nicoerfurth.de) */
 
+#if ENABLE_FEATURE_EJECT_SCSI
 static void eject_scsi(const char *dev)
 {
        static const char sg_commands[3][6] = {
@@ -76,6 +72,16 @@ static void eject_scsi(const char *dev)
        /* force kernel to reread partition table when new disc is inserted */
        ioctl(dev_fd, BLKRRPART);
 }
+#else
+# define eject_scsi() ((void)0)
+#endif
+
+/* various defines swiped from linux/cdrom.h */
+#define CDROMCLOSETRAY            0x5319  /* pendant of CDROMEJECT  */
+#define CDROMEJECT                0x5309  /* Ejects the cdrom media */
+#define CDROM_DRIVE_STATUS        0x5326  /* Get tray position, etc. */
+/* drive status possibilities returned by CDROM_DRIVE_STATUS ioctl */
+#define CDS_TRAY_OPEN        2
 
 #define FLAG_CLOSE  1
 #define FLAG_SMART  2