move libc related stuff out of platform.h

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/coreutils/stty.c b/coreutils/stty.c
index 5506fdb..e02fe7c 100644
--- a/coreutils/stty.c
+++ b/coreutils/stty.c
@@ -68,10 +68,6 @@
 # define CSWTCH _POSIX_VDISABLE
 #endif
 
-#ifndef IUCLC
-# define IUCLC 0
-#endif
-
 /* SunOS 5.3 loses (^Z doesn't work) if 'swtch' is the same as 'susp'.
    So the default is to disable 'swtch.'  */
 #if defined(__sparc__) && defined(__svr4__)
diff --git a/include/platform.h b/include/platform.h
index 99e747f..7c88d1b 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -342,49 +342,5 @@
 
 #endif
 
-#if defined(__linux__)
-# include <sys/mount.h>
-/* Make sure we have all the new mount flags we actually try to use. */
-# ifndef MS_BIND
-#  define MS_BIND        (1 << 12)
-# endif
-# ifndef MS_MOVE
-#  define MS_MOVE        (1 << 13)
-# endif
-# ifndef MS_RECURSIVE
-#  define MS_RECURSIVE   (1 << 14)
-# endif
-# ifndef MS_SILENT
-#  define MS_SILENT      (1 << 15)
-# endif
-/* The shared subtree stuff, which went in around 2.6.15. */
-# ifndef MS_UNBINDABLE
-#  define MS_UNBINDABLE  (1 << 17)
-# endif
-# ifndef MS_PRIVATE
-#  define MS_PRIVATE     (1 << 18)
-# endif
-# ifndef MS_SLAVE
-#  define MS_SLAVE       (1 << 19)
-# endif
-# ifndef MS_SHARED
-#  define MS_SHARED      (1 << 20)
-# endif
-# ifndef MS_RELATIME
-#  define MS_RELATIME    (1 << 21)
-# endif
-
-# if !defined(BLKSSZGET)
-#  define BLKSSZGET _IO(0x12, 104)
-# endif
-# if !defined(BLKGETSIZE64)
-#  define BLKGETSIZE64 _IOR(0x12,114,size_t)
-# endif
-#endif
-
-/* The field domainname of struct utsname is Linux specific. */
-#if !defined(__linux__)
-# define HAVE_NO_UTSNAME_DOMAINNAME
-#endif
 
 #endif
diff --git a/libbb/login.c b/libbb/login.c
index 98e641c..ba9f4d2 100644
--- a/libbb/login.c
+++ b/libbb/login.c
@@ -62,7 +62,8 @@
 			case 'm':
 				outbuf = uts.machine;
 				break;
-#ifndef HAVE_NO_UTSNAME_DOMAINNAME
+/* The field domainname of struct utsname is Linux specific. */
+#if defined(__linux__)
 			case 'D':
 			case 'o':
 				outbuf = uts.domainname;
diff --git a/miscutils/eject.c b/miscutils/eject.c
index 94a36c0..75618be 100644
--- a/miscutils/eject.c
+++ b/miscutils/eject.c
@@ -13,7 +13,11 @@
  * Most of the dirty work blatantly ripped off from cat.c =)
  */
 
+#include <sys/mount.h>
 #include "libbb.h"
+/* Must be after libbb.h: they need size_t */
+#include <scsi/sg.h>
+#include <scsi/scsi.h>
 
 /* various defines swiped from linux/cdrom.h */
 #define CDROMCLOSETRAY            0x5319  /* pendant of CDROMEJECT  */
@@ -27,9 +31,6 @@
 /* Code taken from the original eject (http://eject.sourceforge.net/),
  * refactored it a bit for busybox (ne-bb@nicoerfurth.de) */
 
-#include <scsi/sg.h>
-#include <scsi/scsi.h>
-
 static void eject_scsi(const char *dev)
 {
 	static const char sg_commands[3][6] = {
diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c
index e8a4838..362b212 100644
--- a/miscutils/hdparm.c
+++ b/miscutils/hdparm.c
@@ -11,8 +11,9 @@
  * hdparm.c - Command line interface to get/set hard disk parameters
  *          - by Mark Lord (C) 1994-2002 -- freely distributable
  */
-#include "libbb.h"
 #include <linux/hdreg.h>
+#include <sys/mount.h>
+#include "libbb.h"
 
 /* device types */
 /* ------------ */
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
index 514b5d7..4416408 100644
--- a/util-linux/fdisk.c
+++ b/util-linux/fdisk.c
@@ -12,6 +12,10 @@
 #define _LARGEFILE64_SOURCE
 #endif
 #include <assert.h>             /* assert */
+#include <sys/mount.h>
+#if !defined(BLKSSZGET)
+# define BLKSSZGET _IO(0x12, 104)
+#endif
 #include "libbb.h"
 
 /* Looks like someone forgot to add this to config system */
diff --git a/util-linux/freeramdisk.c b/util-linux/freeramdisk.c
index bde6afc..6b9d95e 100644
--- a/util-linux/freeramdisk.c
+++ b/util-linux/freeramdisk.c
@@ -8,7 +8,7 @@
  *
  * Licensed under GPLv2, see file LICENSE in this tarball for details.
  */
-
+#include <sys/mount.h>
 #include "libbb.h"
 
 /* From <linux/fd.h> */
diff --git a/util-linux/mkfs_vfat.c b/util-linux/mkfs_vfat.c
index 8c6078d..8d12bab 100644
--- a/util-linux/mkfs_vfat.c
+++ b/util-linux/mkfs_vfat.c
@@ -7,12 +7,15 @@
  *
  * Licensed under GPLv2, see file LICENSE in this tarball for details.
  */
-#include "libbb.h"
-#include "volume_id/volume_id_internal.h"
-
 #include <linux/hdreg.h> /* HDIO_GETGEO */
 #include <linux/fd.h>    /* FDGETPRM */
+#include <sys/mount.h>   /* BLKSSZGET */
+#if !defined(BLKSSZGET)
+# define BLKSSZGET _IO(0x12, 104)
+#endif
 //#include <linux/msdos_fs.h>
+#include "libbb.h"
+#include "volume_id/volume_id_internal.h"
 
 #define SECTOR_SIZE             512
 
diff --git a/util-linux/mount.c b/util-linux/mount.c
index 72dabd8..56c32e1 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -8,7 +8,6 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
-
 // Design notes: There is no spec for mount.  Remind me to write one.
 //
 // mount_main() calls singlemount() which calls mount_it_now().
@@ -17,9 +16,37 @@
 // singlemount() can loop through /etc/filesystems for fstype detection.
 // mount_it_now() does the actual mount.
 //
-
 #include <mntent.h>
 #include <syslog.h>
+#include <sys/mount.h>
+#ifndef MS_BIND
+# define MS_BIND        (1 << 12)
+#endif
+#ifndef MS_MOVE
+# define MS_MOVE        (1 << 13)
+#endif
+#ifndef MS_RECURSIVE
+# define MS_RECURSIVE   (1 << 14)
+#endif
+#ifndef MS_SILENT
+# define MS_SILENT      (1 << 15)
+#endif
+/* The shared subtree stuff, which went in around 2.6.15. */
+#ifndef MS_UNBINDABLE
+# define MS_UNBINDABLE  (1 << 17)
+#endif
+#ifndef MS_PRIVATE
+# define MS_PRIVATE     (1 << 18)
+#endif
+#ifndef MS_SLAVE
+# define MS_SLAVE       (1 << 19)
+#endif
+#ifndef MS_SHARED
+# define MS_SHARED      (1 << 20)
+#endif
+#ifndef MS_RELATIME
+# define MS_RELATIME    (1 << 21)
+#endif
 #include "libbb.h"
 
 #if ENABLE_FEATURE_MOUNT_LABEL
diff --git a/util-linux/switch_root.c b/util-linux/switch_root.c
index 0f00b60..ff05518 100644
--- a/util-linux/switch_root.c
+++ b/util-linux/switch_root.c
@@ -5,18 +5,16 @@
  *
  * Licensed under GPL version 2, see file LICENSE in this tarball for details.
  */
-#include "libbb.h"
 #include <sys/vfs.h>
-
+#include <sys/mount.h>
+#include "libbb.h"
 // Make up for header deficiencies
 #ifndef RAMFS_MAGIC
 # define RAMFS_MAGIC ((unsigned)0x858458f6)
 #endif
-
 #ifndef TMPFS_MAGIC
 # define TMPFS_MAGIC ((unsigned)0x01021994)
 #endif
-
 #ifndef MS_MOVE
 # define MS_MOVE     8192
 #endif
diff --git a/util-linux/umount.c b/util-linux/umount.c
index 5b22bfa..a4b2bd0 100644
--- a/util-linux/umount.c
+++ b/util-linux/umount.c
@@ -7,8 +7,37 @@
  *
  * Licensed under GPL version 2, see file LICENSE in this tarball for details.
  */
-
 #include <mntent.h>
+#include <sys/mount.h>
+/* Make sure we have all the new mount flags we actually try to use. */
+#ifndef MS_BIND
+# define MS_BIND        (1 << 12)
+#endif
+#ifndef MS_MOVE
+# define MS_MOVE        (1 << 13)
+#endif
+#ifndef MS_RECURSIVE
+# define MS_RECURSIVE   (1 << 14)
+#endif
+#ifndef MS_SILENT
+# define MS_SILENT      (1 << 15)
+#endif
+/* The shared subtree stuff, which went in around 2.6.15. */
+#ifndef MS_UNBINDABLE
+# define MS_UNBINDABLE  (1 << 17)
+#endif
+#ifndef MS_PRIVATE
+# define MS_PRIVATE     (1 << 18)
+#endif
+#ifndef MS_SLAVE
+# define MS_SLAVE       (1 << 19)
+#endif
+#ifndef MS_SHARED
+# define MS_SHARED      (1 << 20)
+#endif
+#ifndef MS_RELATIME
+# define MS_RELATIME    (1 << 21)
+#endif
 #include "libbb.h"
 
 #if defined(__dietlibc__)
diff --git a/util-linux/volume_id/get_devname.c b/util-linux/volume_id/get_devname.c
index a1786df..0686a07 100644
--- a/util-linux/volume_id/get_devname.c
+++ b/util-linux/volume_id/get_devname.c
@@ -7,11 +7,12 @@
  *
  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
-
+#include <sys/mount.h> /* BLKGETSIZE64 */
+#if !defined(BLKGETSIZE64)
+# define BLKGETSIZE64 _IOR(0x12,114,size_t)
+#endif
 #include "volume_id_internal.h"
 
-//#define BLKGETSIZE64 _IOR(0x12,114,size_t)
-
 static struct uuidCache_s {
 	struct uuidCache_s *next;
 //	int major, minor;