[LLVMdev] Migrate Project Build system to LLVM BitCode

Hassan, Ahmad ahmad.hassan at sap.com
Thu Jan 17 07:19:36 PST 2013

Hi Swarp,

> clang -g -O2 -o .libs/mergedexe .libs/mergedbc.bc -pthread -Wl,--export-dynamic   .libs/lib1.a   -lssl -lcrypto -ldl -pthread .libs/lib2.so
Thanks. This works fine. The project that I am migrating is huge and has various massive Makefiles. But I am going to try this 3 step approach to apply passes and compile the code. If that gets too complex then I will move to GoldPlugin.

From: llvmdev-bounces at cs.uiuc.edu [llvmdev-bounces at cs.uiuc.edu] on behalf of Hassan, Ahmad [ahmad.hassan at sap.com]
Sent: Thursday, January 17, 2013 7:56 AM
To: llvmdev at cs.uiuc.edu
Subject: [LLVMdev] Migrate Project Build system to LLVM BitCode
Hi All,

I am migrating a build system of an existing project from 'Object files' based executable generation to 'LLVM Bitcode' files based exe generation and applying OPT pass to LLVM Bitcode. I found out the following 4 step procedure. Please let me know if this is the right procedure or is there any other easy way of doing it. I need to modify 'Makefile' accordingly. I read on some forums about GoldPlugin but I don't know exactly if it would be useful here:

Original Makefile- Object Files based Build/Link Steps:
clang -g -O2   -o  .libs/mergedexe  file1.o    file2.o   file3.o   -pthread -Wl,--export-dynamic   .libs/lib1.a   -lssl -ldl -pthread .libs/lib2.so

Proposed Makefile- LLVM Bitcode based Build/Link Steps:

1.       llvm-link -o .libs/mergedbc.bc   file1.bc    file2.bc   file3.bc

2.       opt  -o  optmerged.bc  -load /path/to/Mypass.so  -mypass <  mergedbc.bc

3.       llc  -o .libs/mergedbc.s    .libs/mergedbc.bc

4.       gcc -g -O2 -o .libs/mergedexe  .libs/mergedbc.s  -pthread -Wl,--export-dynamic   .libs/lib1.a   -lssl -lcrypto -ldl -pthread .libs/lib2.so


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130117/460245ec/attachment.html>

More information about the llvm-dev mailing list