Преглед на файлове

Auto merge of #73 - japaric:weak, r=japaric

put weak mem* symbols behind an opt-in Cargo feature

closes #64
cc #66
homunkulus преди 8 години
родител
ревизия
c56a3f8a6e
променени са 4 файла, в които са добавени 30 реда и са изтрити 7 реда
  1. 8 0
      .travis.yml
  2. 1 1
      Cargo.toml
  3. 20 5
      ci/script.sh
  4. 1 1
      src/lib.rs

+ 8 - 0
.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

+ 1 - 1
Cargo.toml

@@ -18,6 +18,6 @@ rand = "0.3.14"
 path = "gcc_s"
 
 [features]
-default = ["rlibc/weak"]
+weak = ["rlibc/weak"]
 
 [workspace]

+ 20 - 5
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;

+ 1 - 1
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;