llvm code working on linux but not mac, 64 bit problem?

Hi,
Learning the ropes of LLVM. I have this simple LLVM assembly snippet which compiles/runs fine in Ubuntu but won’t work on snow leopard. Somehow related to 64-bit? Anyone else experience this?

llvm-as if.ll
llc -f if.bc
gcc -o if if.s
ld: 32-bit pointer out of range in _main from -Tmp-//cck44HlB.o collect2: ld returned 1 exit status -------- @s = internal constant [4 x i8] c"%d\0A\00" declare i32 @printf(i8 , …) define i32 @main() nounwind { entry: %x = alloca i32 %x.0 = add i32 0, 5 %t1 = icmp sgt i32 %x.0, 0 br i1 %t1, label %thenLabel1, label %elseLabel2 thenLabel1: %x.1 = add i32 2, %x.0 br label %joinIfLabel3 elseLabel2: %x.2 = add i32 3, %x.0 br label %joinIfLabel3 joinIfLabel3: %x.3 = phi i32 [%x.1, %thenLabel1],[%x.2, %elseLabel2] tail call i32 (i8, …)* @printf(i8* getelementptr ([4 x i8]* @s, i64 0, i64 0), i32 %x.3) nounwind ret i32 0 }

Tommy Chheng <tommy.chheng@gmail.com> writes:

Learning the ropes of LLVM. I have this simple LLVM assembly snippet
which compiles/runs fine in Ubuntu but won't work on snow
leopard. Somehow related to 64-bit? Anyone else experience this?

Works on my 64-bit debian system so it's not totally broken on 64-bit systems.

It runs fine on my Snow Leopard installation. I do recall though
that LLVM did not build in 64-bit mode automatically. I configured
LLVM as follows to get a 64-bit build.

./configure --build=x86_64-apple-darwin10 --host=x86_64-apple-darwin10 --target=x86_64-apple-darwin1

Harmen

Tommy Chheng wrote:

I re-compiled LLVM with the parameters and it's working.

Thanks!
Tommy