bytecode didn't read correctly under cygwin


I’m trying to run “llc” tool on files from “test” subdirectory of LLVM root. I compile source files with the following line:

llvm-gcc -c -ocompiled.o ackermann.c

Then I run llc like the following:

llc compiled.o

which outputs

llc: bytecode didn’t read correctly

(I mean, I try it with different options but even the default ones aint working)

My llvm-gcc version is

Using built-in specs.
Target: i686-pc-cygwin
Configured with: …/src/configure --prefix=/llvm-gcc/install --enable-llvm=/llvm
/obj --enable-languages=c,c++ --disable-threads --enable-checking
Thread model: single
gcc version 4.0.1 LLVM (Apple Computer, Inc. build 5400)

and LLVM version (as llc gives it)

Low Level Virtual Machine (
llvm version 1.9cvs
DEBUG build with assertions.

I use cygwin.

Thanks a lot for help.


P.S. compiled.o from ackermann.c is attached.

compiled.o (816 Bytes)

Sorry, these are my own test sources.
So I attached ackerman.c to this letter.

ackermann.c (477 Bytes)

The 4.0 compiler produces a native .o by default. If you want the byte code file then you should;

llvm-gcc -emit-llvm -c -o compiled.o ackermann.c


– Jim


By default, llvm-gcc4 does not produce bytecode, it produces a native
object file, just like GCC does. So, if you try to pass it to llc, it is
obviously going to report problems with the bytecode. Either skip the
llc step or use the -emit-llvm option:

llvm-gcc -c -emit-llvm -o compiled.o ackermann.c
llc compiled.o -o compiled.s


Thanks Reid and Jim! That helped.