[GHC] #9945: export list for System.Posix.Internals breaking the build on Windows

GHC ghc-devs at haskell.org
Wed Dec 31 17:32:51 UTC 2014


#9945: export list for System.Posix.Internals breaking the build on Windows
-------------------------------------+-------------------------------------
        Reporter:  MartinF           |                   Owner:  MartinF
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:
       Component:  Compiler          |                 Version:  7.11
      Resolution:                    |                Keywords:
Operating System:  Windows           |            Architecture:
 Type of failure:  Building GHC      |  Unknown/Multiple
  failed                             |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:  #9852             |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by MartinF):

 Ah, you've beaten me to it. I've been working along effectively the same
 lines:

 {{{
 diff --git a/libraries/base/System/Posix/Internals.hs
 b/libraries/base/System/Posix/Internals.hs
 index e2e32c3..d316826 100644
 --- a/libraries/base/System/Posix/Internals.hs
 +++ b/libraries/base/System/Posix/Internals.hs
 @@ -25,24 +25,33 @@ module System.Posix.Internals
       CFLock, CFilePath, CGroup, CLconv, CPasswd, CSigaction, CSigset,
 CStat,
       CTermios, CTm, CTms, CUtimbuf, CUtsname, FD,

 -     c_access, c_chmod, c_close, c_creat, c_dup, c_dup2, c_fcntl_lock,
 -     c_fcntl_read, c_fcntl_write, c_fork, c_fstat, c_ftruncate, c_getpid,
 -     c_isatty, c_lflag, c_link, c_lseek, c_mkfifo, c_open, c_pipe,
 c_read,
 -     c_s_isblk, c_s_ischr, c_s_isdir, c_s_isfifo, c_s_isreg, c_s_issock,
 -     c_safe_open, c_safe_read, c_safe_write, c_sigaddset, c_sigemptyset,
 -     c_sigprocmask, c_stat, c_tcgetattr, c_tcsetattr, c_umask, c_unlink,
 -     c_utime, c_waitpid, c_write, const_echo, const_f_getfl,
 const_f_setfd,
 -     const_f_setfl, const_fd_cloexec, const_icanon, const_sig_block,
 -     const_sig_setmask, const_sigttou, const_tcsanow, const_vmin,
 const_vtime,
 -     dEFAULT_BUFFER_SIZE, fdFileSize, fdGetMode, fdStat, fdType,
 fileType,
 -     getEcho, get_saved_termios, ioe_unknownfiletype, lstat, newFilePath,
 -     o_APPEND, o_BINARY, o_CREAT, o_EXCL, o_NOCTTY, o_NONBLOCK, o_RDONLY,
 -     o_RDWR, o_TRUNC, o_WRONLY, peekFilePath, peekFilePathLen,
 poke_c_lflag,
 -     ptr_c_cc, puts, sEEK_CUR, sEEK_END, sEEK_SET, s_isblk, s_ischr,
 s_isdir,
 -     s_isfifo, s_isreg, s_issock, setCloseOnExec, setCooked, setEcho,
 -     setNonBlockingFD, set_saved_termios, sizeof_sigset_t, sizeof_stat,
 -     sizeof_termios, st_dev, st_ino, st_mode, st_mtime, st_size,
 statGetType,
 -     tcSetAttr, withFilePath
 +     c_access, c_chmod, c_close, c_creat, c_dup, c_dup2, c_fstat,
 c_ftruncate,
 +     c_getpid, c_isatty, c_lseek, c_open, c_read, c_s_isblk, c_s_ischr,
 +     c_s_isdir, c_s_isfifo, c_s_isreg, c_safe_open, c_safe_read,
 c_safe_write,
 +     c_stat, c_umask, c_unlink, c_write, const_echo, const_f_getfl,
 +     const_f_setfd, const_f_setfl, const_fd_cloexec, const_icanon,
 +     const_sig_block, const_sig_setmask, const_sigttou, const_tcsanow,
 +     const_vmin, const_vtime, dEFAULT_BUFFER_SIZE, fdFileSize, fdGetMode,
 +     fdStat, fdType, fileType, getEcho, ioe_unknownfiletype, lstat,
 +     newFilePath, o_APPEND, o_BINARY, o_CREAT, o_EXCL, o_NOCTTY,
 o_NONBLOCK,
 +     o_RDONLY, o_RDWR, o_TRUNC, o_WRONLY, peekFilePath, puts, sEEK_CUR,
 +     sEEK_END, sEEK_SET, s_isblk, s_ischr, s_isdir, s_isfifo, s_isreg,
 +     s_issock, setCooked, setEcho, setNonBlockingFD, sizeof_stat, st_dev,
 +     st_ino, st_mode, st_mtime, st_size, statGetType, withFilePath,
 +#if !defined(mingw32_HOST_OS) && !defined(__MINGW32__)
 +     c_fcntl_lock, c_fcntl_read, c_fcntl_write, c_fork, c_link, c_mkfifo,
 +     c_pipe, c_s_issock, c_sigaddset, c_sigemptyset, c_sigprocmask,
 +     c_tcgetattr, c_tcsetattr, c_utime, c_waitpid, setCloseOnExec,
 +#endif
 +#if !defined(mingw32_HOST_OS)
 +     peekFilePathLen,
 +#endif
 +#if defined(HTYPE_TCFLAG_T)
 +     c_lflag, get_saved_termios, poke_c_lflag, ptr_c_cc,
 set_saved_termios,
 +     sizeof_sigset_t, sizeof_termios, tcSetAttr,
 +#else
 +     is_console,
 +#endif
       ) where

  #include "HsBaseConfig.h"
 }}}

 What do `HTYPE_TCFLAG_T` / `mingw32_HOST_OS` / `__MINGW32__` mean exactly?
 Are their precise semantics written down somewhere?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9945#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list