Skip to content

Cannot crosscompile libcore #15973

Closed
Closed
@farcaller

Description

@farcaller

Latest libcore compilation fails:

rustc --opt-level 2 -Z no-landing-pads --target thumbv7m-linux-eabi -Ctarget-cpu=cortex-m3 -C relocation_model=static -L /Users/farcaller/src/zinc/build --out-dir /Users/farcaller/src/zinc/build /Users/farcaller/src/zinc/thirdparty/libcore/lib.rs
/Users/farcaller/src/zinc/thirdparty/libcore/ptr.rs:215:5: 219:2 error: type `&mut iter::Range<uint>` does not implement any method in scope named `next`
/Users/farcaller/src/zinc/thirdparty/libcore/ptr.rs:215     for e in range(0, len) {
/Users/farcaller/src/zinc/thirdparty/libcore/ptr.rs:216         let n = arr.offset(e as int);
/Users/farcaller/src/zinc/thirdparty/libcore/ptr.rs:217         cb(*n);
/Users/farcaller/src/zinc/thirdparty/libcore/ptr.rs:218     }
/Users/farcaller/src/zinc/thirdparty/libcore/ptr.rs:219 }
/Users/farcaller/src/zinc/thirdparty/libcore/char.rs:186:5: 195:2 error: type `&mut iter::RangeStep<i32>` does not implement any method in scope named `next`
/Users/farcaller/src/zinc/thirdparty/libcore/char.rs:186     for offset in range_step::<i32>(4 * (pad - 1), -1, -4) {
/Users/farcaller/src/zinc/thirdparty/libcore/char.rs:187         let offset = offset as uint;
/Users/farcaller/src/zinc/thirdparty/libcore/char.rs:188         unsafe {
/Users/farcaller/src/zinc/thirdparty/libcore/char.rs:189             match ((c as i32) >> offset) & 0xf {
/Users/farcaller/src/zinc/thirdparty/libcore/char.rs:190                 i @ 0 .. 9 => { f(transmute('0' as i32 + i)); }
/Users/farcaller/src/zinc/thirdparty/libcore/char.rs:191                 i => { f(transmute('a' as i32 + (i - 10))); }
                                                         ...
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:51:13: 58:10 error: type `&mut iter::Rev<slice::MutItems<'_,u8>>` does not implement any method in scope named `next`
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:51             for byte in buf.mut_iter().rev() {
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:52                 let n = x % base;                         // Get the current place value.
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:53                 x = x / base;                             // Deaccumulate the number.
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:54                 *byte = self.digit(cast(n).unwrap());     // Store the digit in the buffer.
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:55                 curr -= 1;
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:56                 if x == zero() { break; }                 // No more digits left to accumulate.
                                                           ...
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:60:13: 67:10 error: type `&mut iter::Rev<slice::MutItems<'_,u8>>` does not implement any method in scope named `next`
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:60             for byte in buf.mut_iter().rev() {
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:61                 let n = -(x % base);                      // Get the current place value.
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:62                 x = x / base;                             // Deaccumulate the number.
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:63                 *byte = self.digit(cast(n).unwrap());     // Store the digit in the buffer.
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:64                 curr -= 1;
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/num.rs:65                 if x == zero() { break; }                 // No more digits left to accumulate.
                                                           ...
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/float.rs:276:25: 279:28 error: type `&mut iter::Rev<iter::Range<uint>>` does not implement any method in scope named `next`
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/float.rs:276                         for j in range(i as uint + 1, end).rev() {
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/float.rs:277                             buf[j + 1] = buf[j];
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/float.rs:278                         }
/Users/farcaller/src/zinc/thirdparty/libcore/fmt/float.rs:279                         buf[(i + 1) as uint] = value2ascii(1);
error: aborting due to 5 previous errors

For some strange reason, it fails in different way on travis (that's using same rust-nightly):

/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:50:13: 57:10 error: unresolved enum variant, struct or const `Some`
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:50             for byte in buf.mut_iter().rev() {
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:51                 let n = x % base;                         // Get the current place value.
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:52                 x = x / base;                             // Deaccumulate the number.
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:53                 *byte = self.digit(cast(n).unwrap());     // Store the digit in the buffer.
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:54                 curr -= 1;
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:55                 if x == zero() { break; }                 // No more digits left to accumulate.
                                                                  ...
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:59:13: 66:10 error: unresolved enum variant, struct or const `Some`
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:59             for byte in buf.mut_iter().rev() {
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:60                 let n = -(x % base);                      // Get the current place value.
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:61                 x = x / base;                             // Deaccumulate the number.
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:62                 *byte = self.digit(cast(n).unwrap());     // Store the digit in the buffer.
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:63                 curr -= 1;
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/num.rs:64                 if x == zero() { break; }                 // No more digits left to accumulate.
                                                                  ...
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/float.rs:274:25: 277:28 error: unresolved enum variant, struct or const `Some`
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/float.rs:274                         for j in range(i as uint + 1, end).rev() {
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/float.rs:275                             buf[j + 1] = buf[j];
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/float.rs:276                         }
/home/travis/build/hackndev/zinc/thirdparty/libcore/fmt/float.rs:277                         buf[(i + 1) as uint] = value2ascii(1);
error: aborting due to 3 previous errors

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions