[LLVMdev] Migrate Project Build system to LLVM BitCode
Sahoo, Swarup Kumar
ssahoo2 at illinois.edu
Thu Jan 17 07:10:17 PST 2013
Hi Ahmad,
If the Makefile contains only this command, then it is not worth spending time on GoldPlugin. If you are building a large project, then it will be simpler to use GoldPlugin.
The steps you are using seem right. You can possibly combine the last two steps (3&4) using only 1 clang command.
clang -g -O2 -o .libs/mergedexe .libs/mergedbc.bc -pthread -Wl,--export-dynamic .libs/lib1.a -lssl -lcrypto –ldl –pthread .libs/lib2.so
-Swarup.
________________________________
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
Thanks.
Ahmad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130117/4ace3622/attachment.html>
More information about the llvm-dev
mailing list