Hi! I want to know if it is possible to link llvm object files with native static/shared libraries. I mean: without using the provided c/c++ frontend to compile first the sources of the libraries to llvm and then -everything being llvm- linking. For example, I would like to compile XLanguage to llvm and then link the resulting object against libXRuntime.so. If this can be done, could you give me a clue? Thank you in advance. Regards, Carlos. ___________________________________________________________ 100mb gratis, Antivirus y Antispam Correo Yahoo!, el mejor correo web del mundo http://correo.yahoo.com.ar
On Tue, 27 Jul 2004, [iso-8859-1] Carlos Pita wrote:> I want to know if it is possible to link llvm object files with native > static/shared libraries.Absolutely, we do this routinely.> I mean: without using the provided c/c++ frontend to compile first the > sources of the libraries to llvm and then -everything being llvm- > linking. For example, I would like to compile XLanguage to llvm and then > link the resulting object against libXRuntime.so. If this can be done, > could you give me a clue? Thank you in advance. Regards, Carlos.Yes, this is no problem. You can do something like this: $ llvmgcc X.c -c -o X.bc $ llc X.bc -o X.s [or use the C backend at your choice) $ gcc Y.c -o Y.o -c $ gcc X.s Y.o -o program $ ./program -Chris -- http://llvm.cs.uiuc.edu/ http://nondot.org/sabre/
> Yes, this is no problem. You can do something like > this: > > $ llvmgcc X.c -c -o X.bc > $ llc X.bc -o X.s > $ gcc Y.c -o Y.o -c > $ gcc X.s Y.o -o program > $ ./programOk, fine, and what about the interpreter? It takes 100% llvm, doesn't it? Or is there some kind of import facility (perhaps as an specially interpreted call or as an extension to llvm which makes the intrepreter dlopen the lib and map unresolved symbols in the llvm to those exported by the lib)? Thank you again. Regards, Carlos. ___________________________________________________________ 100mb gratis, Antivirus y Antispam Correo Yahoo!, el mejor correo web del mundo http://correo.yahoo.com.ar