Skip to content
  • Jeremy Soller's avatar
    Add Redox scheme prefix · 4d71257e
    Jeremy Soller authored
    Fixes for Redox Path handling
    
    Update to new system calls and enviromental variables
    
    Remove unused type parameter
    
    Don't forget to close executable file
    
    Interpret shebangs on redox
    
    This is no longer handled on the kernel side
    
    Fix for missing setenv/unsetenv
    
    Use mangled names for compiler builtins to avoid conflicts with relibc
    
    Another attempt to fix build issues
    
    WIP aarch64-unknown-redox support
    
    Untested.
    
    Introduce a target family for Redox
    
    The Redox base target spec located within the rustc source did not
    specify a 'target_family' attribute. However, the x86_64 specific target
    spec located within the redox source did.
    
    Now AArch64 could have done something similar but unfortunately can't
    since there are rust compiler mods needed to support Redox on AArch64
    which imply that any AArch64 target spec file in the Redox source shall
    be ignored in favour of the target spec within the rustc source.
    
    The target_family attribute is eventually translated into an environment
    variable called CARGO_CFG_TARGET_FAMILY whose presence can be tested by
    software built with the compiler generated from the target spec.
    
    Some crates expect this variable to contain something failing which they
    crash. Eg onig_sys within rust-onig. Since the Redox base target spec in
    the rustc source doesn't specify target_family for AArch64, such crates
    don't build.
    
    The solution is to introduce target_family in the Redox base
    target spec within the rustc source so both x86_64 and AArch64 have it
    defined by default. It is set to "redox".
    
    "unix" would perhaps be more preferable but using that breaks the rustc
    build which starts making incorrect assumptions about the support libs
    that Redox has.
    4d71257e