diff --git a/configure b/configure
index 1dc0122..ae9c44e 100755
--- a/configure
+++ b/configure
@@ -10934,6 +10934,8 @@
 
 
 
+
+
 for ac_header in \
 	arpa/inet.h \
 	arpa/nameser.h \
@@ -10971,6 +10973,7 @@
 	sys/file.h \
 	sys/filio.h \
 	sys/inttypes.h \
+	sys/ioctl.h \
 	sys/ipc.h \
 	sys/link.h \
 	sys/lwp.h \
@@ -10997,6 +11000,7 @@
 	sys/vm86.h \
 	sys/wait.h \
 	syscall.h \
+	termios.h \
 	ucontext.h \
 	unistd.h \
 
diff --git a/configure.ac b/configure.ac
index 61fc815..250e545 100644
--- a/configure.ac
+++ b/configure.ac
@@ -968,6 +968,7 @@
 	sys/file.h \
 	sys/filio.h \
 	sys/inttypes.h \
+	sys/ioctl.h \
 	sys/ipc.h \
 	sys/link.h \
 	sys/lwp.h \
@@ -994,6 +995,7 @@
 	sys/vm86.h \
 	sys/wait.h \
 	syscall.h \
+	termios.h \
 	ucontext.h \
 	unistd.h \
 )
diff --git a/dlls/kernel/comm.c b/dlls/kernel/comm.c
index ef2c257..fc98f98 100644
--- a/dlls/kernel/comm.c
+++ b/dlls/kernel/comm.c
@@ -54,7 +54,9 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#ifdef HAVE_TERMIOS_H
 #include <termios.h>
+#endif
 #include <fcntl.h>
 #include <string.h>
 #ifdef HAVE_STRINGS_H
@@ -66,7 +68,9 @@
 #ifdef HAVE_SYS_FILIO_H
 # include <sys/filio.h>
 #endif
+#ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
+#endif
 #include <unistd.h>
 #include <sys/poll.h>
 #ifdef HAVE_SYS_MODEM_H
@@ -145,12 +149,16 @@
 
 static int COMM_WhackModem(int fd, unsigned int andy, unsigned int orrie)
 {
+#ifdef TIOCMGET
     unsigned int mstat, okay;
     okay = ioctl(fd, TIOCMGET, &mstat);
     if (okay) return okay;
     if (andy) mstat &= andy;
     mstat |= orrie;
     return ioctl(fd, TIOCMSET, &mstat);
+#else
+    return 0;
+#endif
 }
 
 /***********************************************************************
diff --git a/dlls/netapi32/netapi32.c b/dlls/netapi32/netapi32.c
index a3bffe3..65dce6e 100644
--- a/dlls/netapi32/netapi32.c
+++ b/dlls/netapi32/netapi32.c
@@ -34,7 +34,9 @@
 #ifdef HAVE_SYS_FILE_H
 # include <sys/file.h>
 #endif
-#include <sys/ioctl.h>
+#ifdef HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+#endif
 #ifdef HAVE_SYS_SOCKET_H
 # include <sys/socket.h>
 #endif
diff --git a/dlls/ntdll/cdrom.c b/dlls/ntdll/cdrom.c
index 19730cc..f0bf01a 100644
--- a/dlls/ntdll/cdrom.c
+++ b/dlls/ntdll/cdrom.c
@@ -27,19 +27,12 @@
 #include <stdio.h>
 #include <unistd.h>
 #include <fcntl.h>
-#include <sys/ioctl.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 
-#include "ntddk.h"
-#include "winioctl.h"
-#include "ntddstor.h"
-#include "ntddcdrm.h"
-#include "ntddscsi.h"
-#include "drive.h"
-#include "file.h"
-#include "wine/debug.h"
-
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#endif
 #ifdef HAVE_SCSI_SG_H
 # include <scsi/sg.h>
 #endif
@@ -62,8 +55,44 @@
 # include <sys/cdio.h>
 #endif
 
+#include "ntddk.h"
+#include "winioctl.h"
+#include "ntddstor.h"
+#include "ntddcdrm.h"
+#include "ntddscsi.h"
+#include "drive.h"
+#include "file.h"
+#include "wine/debug.h"
+
 WINE_DEFAULT_DEBUG_CHANNEL(cdrom);
 
+#ifdef linux
+
+# ifndef IDE6_MAJOR
+#  define IDE6_MAJOR 88
+# endif
+# ifndef IDE7_MAJOR
+#  define IDE7_MAJOR 89
+# endif
+
+/* structure for CDROM_PACKET_COMMAND ioctl */
+/* not all Linux versions have all the fields, so we define the
+ * structure ourselves to make sure */
+struct linux_cdrom_generic_command
+{
+    unsigned char          cmd[CDROM_PACKET_SIZE];
+    unsigned char         *buffer;
+    unsigned int           buflen;
+    int                    stat;
+    struct request_sense  *sense;
+    unsigned char          data_direction;
+    int                    quiet;
+    int                    timeout;
+    void                  *reserved[1];
+};
+
+#endif  /* linux */
+
 /* FIXME: this is needed because we can't open simultaneously several times /dev/cdrom 
  * this should be removed when a proper device interface is implemented
  */
@@ -1036,7 +1065,7 @@
 {
     int ret = STATUS_NOT_SUPPORTED;
 #if defined(linux)
-    struct cdrom_generic_command cmd;
+    struct linux_cdrom_generic_command cmd;
     struct request_sense sense;
     int io;
 
@@ -1073,7 +1102,6 @@
 	break;
     default:
        return STATUS_INVALID_PARAMETER;
-       break;
     }
 
     io = ioctl(dev, CDROM_SEND_PACKET, &cmd);
@@ -1100,7 +1128,7 @@
 {
     int ret = STATUS_NOT_SUPPORTED;
 #if defined(linux)
-    struct cdrom_generic_command cmd;
+    struct linux_cdrom_generic_command cmd;
     struct request_sense sense;
     int io;
 
@@ -1144,7 +1172,6 @@
 	break;
     default:
        return STATUS_INVALID_PARAMETER;
-       break;
     }
 
     io = ioctl(dev, CDROM_SEND_PACKET, &cmd);
diff --git a/dlls/rpcrt4/rpcrt4_main.c b/dlls/rpcrt4/rpcrt4_main.c
index f974cd9..ac31532 100644
--- a/dlls/rpcrt4/rpcrt4_main.c
+++ b/dlls/rpcrt4/rpcrt4_main.c
@@ -40,7 +40,9 @@
 #ifdef HAVE_SYS_FILE_H
 # include <sys/file.h>
 #endif
-#include <sys/ioctl.h>
+#ifdef HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+#endif
 #ifdef HAVE_SYS_SOCKET_H
 # include <sys/socket.h>
 #endif
diff --git a/include/config.h.in b/include/config.h.in
index c6706f6..6343b39 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -440,6 +440,9 @@
 /* Define to 1 if you have the <sys/inttypes.h> header file. */
 #undef HAVE_SYS_INTTYPES_H
 
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
 /* Define to 1 if you have the <sys/ipc.h> header file. */
 #undef HAVE_SYS_IPC_H
 
@@ -527,6 +530,9 @@
 /* Define to 1 if you have the `tcgetattr' function. */
 #undef HAVE_TCGETATTR
 
+/* Define to 1 if you have the <termios.h> header file. */
+#undef HAVE_TERMIOS_H
+
 /* Define to 1 if you have the `timegm' function. */
 #undef HAVE_TIMEGM
 
diff --git a/library/loader.c b/library/loader.c
index 029e9a9..bedab96 100644
--- a/library/loader.c
+++ b/library/loader.c
@@ -185,6 +185,7 @@
 /* map a builtin dll in memory and fixup RVAs */
 static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
 {
+#ifdef HAVE_MMAP
     IMAGE_DATA_DIRECTORY *dir;
     IMAGE_DOS_HEADER *dos;
     IMAGE_NT_HEADERS *nt;
@@ -292,6 +293,9 @@
         fixup_rva_ptrs( &exports->AddressOfNameOrdinals, addr, 1 );
     }
     return addr;
+#else  /* HAVE_MMAP */
+    return NULL;
+#endif  /* HAVE_MMAP */
 }
 
 
diff --git a/library/port.c b/library/port.c
index 37e7dd9..6d15147 100644
--- a/library/port.c
+++ b/library/port.c
@@ -40,10 +40,14 @@
 # include <sys/time.h>
 #endif
 #include <sys/stat.h>
+#ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
+#endif
 #include <errno.h>
 #include <fcntl.h>
+#ifdef HAVE_TERMIOS_H
 #include <termios.h>
+#endif
 #ifdef HAVE_SYS_MMAN_H
 #include <sys/mman.h>
 #endif
@@ -61,7 +65,7 @@
  *		usleep
  */
 #ifndef HAVE_USLEEP
-unsigned int usleep (unsigned int useconds)
+int usleep (unsigned int useconds)
 {
 #if defined(__EMX__)
     DosSleep(useconds);
@@ -474,6 +478,7 @@
  */
 void *wine_anon_mmap( void *start, size_t size, int prot, int flags )
 {
+#ifdef HAVE_MMAP
     static int fdzero = -1;
 
 #ifdef MAP_ANON
@@ -504,6 +509,9 @@
 #endif
 
     return mmap( start, size, prot, flags, fdzero, 0 );
+#else
+    return (void *)-1;
+#endif
 }
 
 
