| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous code was prone to conflicts with when the platform happens
to expose a `execvpe(3)` implementation in its libc.
This commit renames the internal implementation to `__hsunix_execvpe` as
well as adding an autoconf-detection for the presence of `execvpe(3)`,
in which case `__hsunix_execvpe()` forwards the call to `execvpe(3)`.
Moreover, the code has been cleaned up to remove likely bitrotted CPP
conditionals.
This should fix #22
(This also partially addresses #11 on platforms which have a
libc-provided `execvpe(3)`)
|
|
|
|
| |
Closes #27
|
|\
| |
| | |
`System.Posix.Files.fileAccess` fails inside OS X sandbox
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The issue is that sys/types.h header on Solaris includes somehow
/usr/include/sys/feature_tests.h which tests if _FILE_OFFSET_BITS
is defined and if not, then it defines it to 32 if we're compiling
32 bit code (x86). This is simply wrong since we'd like to have it
defined to 64. The issue is solved by including HsUnixConfig.h first
which defines _FILE_OFFSET_BITS to 64 and feature_tests.h is later
OK with that.
|
| |
| |
| |
| |
| | |
This makes sure we pick up the LFS version of `truncate` in case `off_t`
is affected by CPP defines such as `_FILE_OFFSET_BITS`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes the FFI imports to use the proper `CLong` type over the
previous incorrect `COff` type, as using the wrong argument type can
cause problems when the `long` and `off_t` types have different size.
Historic note from the manual page:
In glibc up to version 2.1.1, the return type of telldir() was off_t.
POSIX.1-2001 specifies long, and this is the type used since glibc
2.1.2 (released in 1999).
|
| |
| |
| |
| |
| |
| |
| | |
This is useful on OS X when its sandboxing mechanism is used, because
that will set errno = EPERM when a file can't be written due to
sandboxing (as opposed to setting it to EACCES when file permissions
deny writing).
|
| |
| |
| |
| |
| |
| |
| | |
The ByteString variant of the access function didn't accept the same
flags as the non-ByteString one, but it makes sense that the OS doesn't
care about which one is being used and returns all error codes for both
variants.
|
|/ |
|
|
|
|
|
| |
This makes it more obvious why `unix` depends on `time` in the first
place, i.e. for the sole purpose of reusing the `POSIXTime` type.
|
|
|
|
|
|
|
|
|
| |
This patch fixes getGroupEntryForID and getGroupEntryForName on Solaris
The issue on Solaris is that it defines both required getgrgid_r
and getgrnam_r functions as CPP macros which depending on configuration
are mapped to real function implementations with different names.
The issue is solved by using C API calling convention instead of platform
C ABI calling convention.
|
|
|
|
|
|
|
|
| |
The function haveRtldLocal was introduced for compatibility with Cygwin
on Mar 28 2002 in GHC commit 4740cf56c774b92e02d31b4666158d70c2e85a8f.
According to https://cygwin.com/viewvc/src/winsup/cygwin/include/dlfcn.h
RTLD_LOCAL has been available on Cygwin since Revision 1.4 (August 9 2010).
|
|
|
|
|
|
|
|
|
|
|
| |
These checks were introduced for OpenBSD on July 16 2002 in GHC commit
03e9edb3094fd3bb38ed886b96ee9f61f39e9b53.
According to http://www.openbsd.org/cgi-bin/cvsweb/src/include/dlfcn.h
RTLD_NOW, RTLD_GLOBAL and RTLD_LOCAL have been available on OpenBSD
since Revision 1.8 (September 2 2003).
This is merely code cleanup.
|
|
|
|
| |
Related ticket: #8902.
|
| |
|
|
|
|
|
|
|
|
|
| |
Solaris
Patch provided by Christian Maeder <Christian.Maeder@dfki.de>
Signed-off-by: Karel Gardas <karel.gardas@centrum.cz>
Signed-off-by: Austin Seipp <austin@well-typed.com>
|
|
|
|
| |
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
|
|
|
| |
This extends `System.Posix.Files.`access` to map EROFS & ETXTBSY to
mean permission denied just like EACCESS.
Based on a patch by Alain O'Dea and comments by Duncan Coutts
Authored-by: Alain O'Dea <alain.odea@verafin.com>
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
| |
This is a follow-up to 17192d89e6 which missed that export.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
| |
...on recently touched files
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
| |
This helps Haddock make tose hyperlinked functions.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
| |
This seemed to be an obvious addition while working on #8433.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
|
|
|
| |
...and while at it, use `bracket` to fix a potential resource leak due
to `freeStablePtr` not being called if `throwErrnoIfMinus1` throws an
exception.
This fixes #8433
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
| |
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
| |
The removed paragraph is obsolete and does no longer apply to the
implementation as noted by Duncan in #8286.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
|
| |
On Android, the functions imported from `<termios.h>` are actually
inlined functions, so we need to wrap them via the `capi` calling
convention.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
| |
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
| |
|
| |
|
|
|
|
| |
(And a small matter of using != instead of /= -- how embarrassing!)
|
|
|
|
|
| |
On MacOS X, it is defined as "(((__uint64_t)1 << 63) - 1)", and
hence cannot be used inside C preprocessor logic.
|
| |
|
|
|
|
|
|
|
|
|
| |
CPP conditional code sections have been carefully taken into account
while performing this warning cleanup. Most `OPTIONS_GHC` declarations
could be dropped (now only a lonely `{-# OPTIONS_GHC -fno-cse #-}`
remains in `Posix.Signals`).
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
|
|
|
|
| |
By avoiding `import Foreign` this accomplishes backward-compatibility
w.r.t. the `unsafePerformIO` relocation w/o resorting to CPP
conditionals.
Moreover, in order to support base<4.7 this commits needs to reintroduce
a harmless backport of `newFilePath`.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
| |
The changelog file will be shown on Hackage once it's included in the
source tarball.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
|
|
| |
Only language extensions not active when `-XHaskell2010` is enabled are
declared, this way we can drop many redundant
`{-# LANGUAGE ForeignFunctionInterface #-}` occurences. This commit also
removes/replaces some `{-# OPTIONS_GHC -XRecordWildCards #-}` pragmas.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
|
|
| |
This is a follow-up to b8fb0a0a9 which made the module exports of
`tellDirStream` and `seekDirStream` CPP-conditional but didn't
explicitly include `HsUnixConfig.h` which defines the respective CPP
defines.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
| |
Their use site is now unconditional. Issue #8223.
Signed-off-by: Austin Seipp <austin@well-typed.com>
|
|
|
|
|
|
| |
Also comes with tests. This closes #8108.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
Submitted by: Nathan Hüsken <nathan.huesken@posteo.de>
|
|
|
|
| |
Submitted by: Nathan Hüsken <nathan.huesken@posteo.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Bool field of Terminated is new, as is the documentation:
data ProcessStatus
= Exited ExitCode -- ^ the process exited by calling
-- @exit()@ or returning from @main@
| Terminated Signal Bool -- ^ the process was terminated by a
-- signal, the @Bool@ is @True@ if a core
-- dump was produced
| Stopped Signal -- ^ the process was stopped by a signal
deriving (Eq, Ord, Show)
This is an API change, hence will need a major version bump.
|
| |
|
|
|
|
| |
Fixes signals004(threaded1,threaded2) on OS X 32.
|
|
|
|
| |
I assume that this is what was intended.
|
|
|
|
|
| |
We were freeing the string, but the string becomes part of the
environment.
|
|
|
|
| |
and remove code to support older versions
|