Skip to content

some libc solaris definitions are not correct #515

@binarycrusader

Description

@binarycrusader

There are a few somewhat subtle errors in the definitions found in src/unix/solaris/mod.rs.

  1. pthread_t should be a c_uint, not a uintptr_t just as pthread_key_t is defined
  2. fd_set is actually a long on Solaris, so needs to change definition based on target_pointer_width; not only is this only working by chance right now, it prevents process spawning from working correctly on sparc since the 32-bit value is placed in the lower half of the 64-bit value passed to select/pselect
  3. for lp64, FD_SETSIZE should actually be 65536 as has been true since 1997

I will send a pull request shortly with proposed fixes. This is the first time I've sent a pull request, so please let me know if I've missed any steps (I've tried to follow the instructions at https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#pull-requests).

/cc @dhduvall

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions