test: Use liblibc in lang-item-public

Makes this test case more robust by using standard libraries to ensure the
binary can be built.
This commit is contained in:
Alex Crichton 2015-06-25 09:13:30 -07:00
parent 9e3cb64475
commit 759a7f1f66
2 changed files with 8 additions and 57 deletions

View file

@ -8,15 +8,12 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(no_std)]
#![feature(no_std, core, libc)]
#![no_std]
#![feature(lang_items)]
#[lang="sized"]
pub trait Sized { }
#[lang="panic"]
fn panic(_: &(&'static str, &'static str, usize)) -> ! { loop {} }
extern crate core;
extern crate libc;
#[lang = "stack_exhausted"]
extern fn stack_exhausted() {}
@ -24,26 +21,8 @@ extern fn stack_exhausted() {}
#[lang = "eh_personality"]
extern fn eh_personality() {}
#[lang="copy"]
pub trait Copy {
// Empty.
}
#[lang="rem"]
pub trait Rem<RHS=Self> {
type Output = Self;
fn rem(self, rhs: RHS) -> Self::Output;
}
impl Rem for isize {
type Output = isize;
#[inline]
fn rem(self, other: isize) -> isize {
// if you use `self % other` here, as one would expect, you
// get back an error because of potential failure/overflow,
// which tries to invoke error fns that don't have the
// appropriate signatures anymore. So...just return 0.
0
}
#[lang = "panic_fmt"]
extern fn rust_begin_unwind(msg: core::fmt::Arguments, file: &'static str,
line: u32) -> ! {
loop {}
}

View file

@ -11,39 +11,11 @@
// aux-build:lang-item-public.rs
// ignore-android
#![feature(lang_items, start, no_std)]
#![feature(start, no_std)]
#![no_std]
extern crate lang_item_public as lang_lib;
#[cfg(target_os = "linux")]
#[link(name = "c")]
extern {}
#[cfg(target_os = "android")]
#[link(name = "c")]
extern {}
#[cfg(target_os = "freebsd")]
#[link(name = "execinfo")]
extern {}
#[cfg(target_os = "freebsd")]
#[link(name = "c")]
extern {}
#[cfg(target_os = "dragonfly")]
#[link(name = "c")]
extern {}
#[cfg(any(target_os = "bitrig", target_os = "openbsd"))]
#[link(name = "c")]
extern {}
#[cfg(target_os = "macos")]
#[link(name = "System")]
extern {}
#[start]
fn main(_: isize, _: *const *const u8) -> isize {
1_isize % 1_isize