diff --git a/.travis.yml b/.travis.yml index d4a1319..74f3a08 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,12 +32,20 @@ matrix: os: linux - env: TARGET=thumbv6m-none-eabi os: linux + - env: TARGET=thumbv6m-none-eabi WEAK=true + os: linux - env: TARGET=thumbv7em-none-eabi os: linux + - env: TARGET=thumbv7em-none-eabi WEAK=true + os: linux - env: TARGET=thumbv7em-none-eabihf os: linux + - env: TARGET=thumbv7em-none-eabihf WEAK=true + os: linux - env: TARGET=thumbv7m-none-eabi os: linux + - env: TARGET=thumbv7m-none-eabi WEAK=true + os: linux - env: TARGET=x86_64-apple-darwin language: ruby os: osx diff --git a/Cargo.toml b/Cargo.toml index e086f7c..ae28057 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,6 +18,6 @@ rand = "0.3.14" path = "gcc_s" [features] -default = ["rlibc/weak"] +weak = ["rlibc/weak"] [workspace] diff --git a/ci/script.sh b/ci/script.sh index 38c6b32..9dffac5 100644 --- a/ci/script.sh +++ b/ci/script.sh @@ -8,8 +8,13 @@ gist_it() { } build() { - $CARGO build --target $TARGET - $CARGO build --target $TARGET --release + if [[ $WEAK ]]; then + $CARGO build --features weak --target $TARGET + $CARGO build --features weak --target $TARGET --release + else + $CARGO build --target $TARGET + $CARGO build --target $TARGET --release + fi } inspect() { @@ -19,12 +24,21 @@ inspect() { $PREFIX$OBJDUMP -Cd target/**/release/*.rlib | gist_it set -e - # Check presence of weak symbols - if [[ $LINUX ]]; then + # Check presence/absence of weak symbols + if [[ $WEAK ]]; then local symbols=( memcmp memcpy memmove memset ) for symbol in "${symbols[@]}"; do - $PREFIX$NM target/**/debug/deps/librlibc*.rlib | grep -q "W $symbol" + $PREFIX$NM target/$TARGET/debug/deps/librlibc-*.rlib | grep -q "W $symbol" done + else + set +e + ls target/$TARGET/debug/deps/librlibc-*.rlib + + if [[ $? == 0 ]]; then + exit 1 + fi + + set -e fi } @@ -50,6 +64,7 @@ main() { -e TRAVIS_BRANCH=$TRAVIS_BRANCH \ -e TRAVIS_COMMIT=$TRAVIS_COMMIT \ -e TRAVIS_OS_NAME=$TRAVIS_OS_NAME \ + -e WEAK=$WEAK \ -v $(pwd):/mnt \ japaric/rustc-builtins \ sh -c 'cd /mnt; diff --git a/src/lib.rs b/src/lib.rs index 88bbbec..7f2d391 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -23,7 +23,7 @@ extern crate gcc_s; #[cfg(test)] extern crate rand; -#[cfg(all(not(windows), not(target_os = "macos")))] +#[cfg(feature = "weak")] extern crate rlibc; pub mod int;