commit 9cf92718e9f2e82c7d1f2a896b5c93b01f1ad073 from: Richard Miller via: Russ Cox date: Wed May 18 17:20:56 2011 UTC arm: build fixes Get p9p to build cleanly for ARM - based on suggestions from rsc and eekee, plus a final tweak from me. Tested (a bit) on sheevaplug (ubuntu jaunty), Nokia N800 (maemo 4) and Nokia N900 (maemo 5). R=rsc CC=plan9port.codebot http://codereview.appspot.com/4524056 commit - c1f950fc32d55890e0b914d9368657b23122dd59 commit + 9cf92718e9f2e82c7d1f2a896b5c93b01f1ad073 blob - /dev/null blob + 43a4662b3107e2118f6f6f4d82324d66dbec14e3 (mode 644) --- /dev/null +++ src/libmp/arm/mkfile @@ -0,0 +1,4 @@ +all: + +%:V: + # nothing to see here blob - /dev/null blob + 43a4662b3107e2118f6f6f4d82324d66dbec14e3 (mode 644) --- /dev/null +++ src/libsec/arm/mkfile @@ -0,0 +1,4 @@ +all: + +%:V: + # nothing to see here blob - 433588002ab9afaf25259ddf581fc87551ef39a4 blob + 907fb0c3fd4b29e0279c5de34eb0e374b2514d97 --- src/libthread/Linux-arm-swapcontext.c +++ src/libthread/Linux-arm-swapcontext.c @@ -3,24 +3,24 @@ void makecontext(ucontext_t *uc, void (*fn)(void), int argc, ...) { - int i, *sp; - va_list arg; - - sp = (int*)uc->uc_stack.ss_sp+uc->uc_stack.ss_size/4; - va_start(arg, argc); - for(i=0; i<4 && iuc_mcontext.gregs[i] = va_arg(arg, uint); - va_end(arg); - uc->uc_mcontext.gregs[13] = (uint)sp; - uc->uc_mcontext.gregs[14] = (uint)fn; + int i, *sp; + va_list arg; + + sp = (int*)uc->uc_stack.ss_sp+uc->uc_stack.ss_size/4; + va_start(arg, argc); + for(i=0; i<4 && iuc_mcontext.arm_r0)[i] = va_arg(arg, uint); + va_end(arg); + uc->uc_mcontext.arm_sp = (uint)sp; + uc->uc_mcontext.arm_lr = (uint)fn; } int swapcontext(ucontext_t *oucp, const ucontext_t *ucp) { - if(getcontext(oucp) == 0) - setcontext(ucp); - return 0; + if(getcontext(oucp) == 0) + setcontext(ucp); + return 0; } blob - 270294713673b2355f590eed14de4e0fce166f94 blob + 32600a7147f767f2bff6080218f39b0b4d1ea209 --- src/libthread/sysofiles.sh +++ src/libthread/sysofiles.sh @@ -4,9 +4,6 @@ test -f $PLAN9/config && . $PLAN9/config tag="$OBJTYPE-$SYSNAME-${SYSVERSION:-`uname -r`}-${CC9:-cc}" case "$tag" in -arm-Linux-*) - echo ${SYSNAME}-${OBJTYPE}-asm.o $SYSNAME.o - ;; *-Linux-2.6.*) echo pthread.o ;; blob - f5c44f63292e8ba30743df9e57362f07ee556b69 blob + 8b931ae7597a396888c95c67ef632ce24f0bf5af --- src/libthread/threadimpl.h +++ src/libthread/threadimpl.h @@ -73,10 +73,10 @@ but surely the latter would be defined(__sparc__). */ #if defined(__arm__) -int mygetmcontext(mcontext_t*); -void mysetmcontext(const mcontext_t*); -#define setcontext(u) mysetmcontext(&(u)->uc_mcontext) -#define getcontext(u) mygetmcontext(&(u)->uc_mcontext) +int mygetmcontext(ulong*); +void mysetmcontext(const ulong*); +#define setcontext(u) mysetmcontext(&(u)->uc_mcontext.arm_r0) +#define getcontext(u) mygetmcontext(&(u)->uc_mcontext.arm_r0) #endif