forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of rust-lang#124050 - saethlin:less-sysroot-libc, r=ChrisDenton Remove libc from MSVC targets ``@ChrisDenton`` started working on a project to remove libc from Windows MSVC targets. I'm completing that work here. The primary change is to cfg out the dependency in `library/`. And then there's a lot of test patching. Happy to separate this more if people want.
- Loading branch information
Showing
30 changed files
with
108 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
#![cfg(not(all(windows, target_env = "msvc")))] | ||
|
||
use crate::any::TypeId; | ||
|
||
macro_rules! ok { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,21 @@ | ||
// Test what happens we save incremental compilation state that makes | ||
// use of foreign items. This used to ICE (#34991). | ||
//@ ignore-sgx no libc | ||
|
||
//@ revisions: rpass1 | ||
|
||
#![feature(rustc_private)] | ||
|
||
extern crate libc; | ||
|
||
use std::ffi::CString; | ||
|
||
mod mlibc { | ||
use libc::{c_char, c_long, c_longlong}; | ||
|
||
extern "C" { | ||
pub fn atol(x: *const c_char) -> c_long; | ||
pub fn atoll(x: *const c_char) -> c_longlong; | ||
// strlen is provided either by an external library or compiler-builtins as a fallback | ||
pub fn strlen(x: *const std::ffi::c_char) -> usize; | ||
} | ||
} | ||
|
||
fn atol(s: String) -> isize { | ||
let c = CString::new(s).unwrap(); | ||
unsafe { mlibc::atol(c.as_ptr()) as isize } | ||
} | ||
|
||
fn atoll(s: String) -> i64 { | ||
fn strlen(s: String) -> usize { | ||
let c = CString::new(s).unwrap(); | ||
unsafe { mlibc::atoll(c.as_ptr()) as i64 } | ||
unsafe { mlibc::strlen(c.as_ptr()) } | ||
} | ||
|
||
pub fn main() { | ||
assert_eq!(atol("1024".to_string()) * 10, atol("10240".to_string())); | ||
assert_eq!( | ||
(atoll("11111111111111111".to_string()) * 10), | ||
atoll("111111111111111110".to_string()) | ||
); | ||
assert_eq!(strlen("1024".to_string()), strlen("2048".to_string())); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,8 @@ | ||
#![feature(rustc_private)] | ||
#![feature(test)] | ||
|
||
extern crate alloc; | ||
|
||
extern crate libc as alloc; | ||
extern crate test as alloc; | ||
//~^ ERROR E0259 | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
// gate-test-rustc_private | ||
|
||
extern crate libc; //~ ERROR use of unstable library feature 'rustc_private' | ||
extern crate cfg_if; //~ ERROR use of unstable library feature 'rustc_private' | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
fn main() { | ||
extern crate libc; //~ ERROR use of unstable | ||
use libc::*; //~ ERROR unresolved import | ||
extern crate test; //~ ERROR use of unstable | ||
use test::*; //~ ERROR unresolved import | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.