[LLVMdev] 2.6/trunk Execution Engine question

Kenneth Uildriks kennethuil at gmail.com
Tue Oct 6 12:39:54 PDT 2009


My front-end is humming along beautifully now with the LLVM trunk.  A
few upgrade notes for anyone who is interested:

1. Not surprisingly, everything in your front-end needs to be
recompiled; object layouts have changed.  My generated code was
calling some name-mangled stuff in the C++ libraries, and using
struct/class definitions defined therein, and it fell over hard when I
ran it against the trunk libraries.  I ripped all that stuff out and
added what I needed to the C bindings.

2. Linkage enums have changed.  Since my front-end doesn't understand
C, I had ported some LLVM definitions over so that I could use them in
my language.  That port, of course, was not automatically updated when
I built against the trunk, so I ended up with global linkage settings
that I wasn't expecting.  This led to:

3. llc gets very unhappy if you give an unnamed global variable weak
linkage.  This is not surprising, since weak linkage uses name
matching and doesn't make sense for things that have no name.
Updating my linkage enum port cleared that up for me.

4. The set of library names to link against has changed considerably.

5. C bindings to ExecutionEngine stuff have moved out of libCore.a.



More information about the llvm-dev mailing list