Inconsistent sizes for struct rlimit
On my 32-bit system, I find
/* Define to Haskell type for rlim_t */
#define HTYPE_RLIM_T Word64
in HsBaseConfig.h. gcc says sizeof(rlim_t) = 4 and thus sizeof(struct rlimit) = 8.
Previously (7.0 and before), get/setResourceLimit allocated a 16-byte buffer and wrote/read the hard limit at an 8-byte offset, consistent with HsBaseConfig.h (but not with sys/resource.h), and apparently it worked (test resourceLimit used to pass and getting the limits returned the previously set values in a few tests for various resources).
Now they allocate 8 bytes and read/write the hard limit at a 4-byte offset, consistent with sys/resource.h, but inconsistent with HsBaseConfig.h, and resourceLimit fails, the same tests as above always returned ResourceLimit (2^64-1) for both, soft and hard limits. (The compiled ways of resourceLimit fail with invalid argument on setting.)
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | libraries/unix |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |