Skip to content

Commit 2fdd3ac

Browse files
Lokathorgnzlbg
authored andcommitted
Revert the regression, add a GBA target to avoid this again
1 parent e3e067d commit 2fdd3ac

File tree

3 files changed

+58
-2
lines changed

3 files changed

+58
-2
lines changed

.travis.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,24 @@ matrix:
6464
env: TARGET=thumbv7em-none-eabi NORUN=1 NOSTD=1 NO_DOCKER=1
6565
- name: "thumbv7em-none-eabihf - build libcore only"
6666
env: TARGET=thumbv7em-none-eabihf NORUN=1 NOSTD=1 NO_DOCKER=1
67+
- name: "Game Boy Advance - build libcore only"
68+
env: NORUN=1 NOSTD=1 NO_DOCKER=1
69+
install: cargo install xargo
70+
script:
71+
# Obtain the devkitPro tools, using `target/` as a temp directory. This
72+
# is required because we need to use their linker. `lld` uses the `BLX`
73+
# instruction, which was not available in thumb state code until ARMv5.
74+
- mkdir -p target
75+
- cd target
76+
- wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb
77+
- sudo dpkg -i devkitpro-pacman.deb
78+
- sudo dkp-pacman -Sy
79+
- sudo dkp-pacman -Syu
80+
- sudo dkp-pacman -S -v --noconfirm gba-tools devkitARM
81+
- export PATH="$PATH:/opt/devkitpro/devkitARM/bin"
82+
- export PATH="$PATH:/opt/devkitpro/tools/bin"
83+
- cd ..
84+
- xargo build --all --target=ci/gba.json
6785
- name: "Documentation"
6886
install: true
6987
script: ci/dox.sh

ci/gba.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"abi-blacklist": [
3+
"stdcall",
4+
"fastcall",
5+
"vectorcall",
6+
"thiscall",
7+
"win64",
8+
"sysv64"
9+
],
10+
"arch": "arm",
11+
"atomic-cas": false,
12+
"cpu": "arm7tdmi",
13+
"data-layout": "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64",
14+
"emit-debug-gdb-scripts": false,
15+
"env": "agb",
16+
"executables": true,
17+
"features": "+soft-float,+strict-align",
18+
"linker": "arm-none-eabi-ld",
19+
"linker-flavor": "ld",
20+
"linker-is-gnu": true,
21+
"llvm-target": "thumbv4-none-agb",
22+
"os": "none",
23+
"panic-strategy": "abort",
24+
"pre-link-args": {
25+
"ld": [
26+
"-Tlinker.ld"
27+
]
28+
},
29+
"relocation-model": "static",
30+
"target-c-int-width": "32",
31+
"target-endian": "little",
32+
"target-pointer-width": "32",
33+
"vendor": "nintendo"
34+
}
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
/// Application Program Status Register
22
pub struct APSR;
33

4-
#[cfg(any(not(target_feature = "thumb-mode"), target_feature = "v6t2"))]
5-
rsr!(APSR);
4+
// Note (@Lokathor): Because this breaks the use of Rust on the Game Boy
5+
// Advance, this change must be reverted until Rust learns to handle cpu state
6+
// properly. See also: https://github.com/rust-lang-nursery/stdsimd/issues/702
7+
8+
//#[cfg(any(not(target_feature = "thumb-state"), target_feature = "v6t2"))]
9+
//rsr!(APSR);

0 commit comments

Comments
 (0)