Compile dll on Mingw

Hello, everyone!

请键入文字或网站地址,或者上传文档

取消

I’m a newbie about llvm. Now, our project need the dynamic link library(dll) about all of llvm library, such as libLLVMCore.dll, libLLVMSupport.dll, and so on. How should I do?

Thanks,
yuanzheng.

Hello, Yuan

I'm a newbie about llvm. Now, our project need the dynamic link library(dll)
about all of llvm library, such as libLLVMCore.dll, libLLVMSupport.dll, and
so on. How should I do?

You may do, "/path/to/configure --enable-shared=yes",
to build LLVM-2.8svn.dll.
On your project, you have to specify to linker,
"-L/path/to/dll -lLLVM-2.8svn"
(maybe with -Wl,--enable-auto-import)

We provide not individual DLLs but a "BIG" one.
We don't provide import libraries.

I think "DLL" feature is still experimental, and I need more feedback.
When you met any troubles with DLL, ask here or file bugs!

Have fun!

...Takumi

Hi, NAKAMURA Takumi

Thank you, and thanks for your answer.

1.First of all, I test it on Linux . As you said, I have attempted to do,
“/path/to/configure --enable-shared=yes” on ubuntu9.10.
After compiling, it generates lots of static libraries(.a) and only three
shared library(.so) , libLTO.so, LLVMHello.so, profile_rt.so. Is there
anyone which is the “BIG” one as you said?

2.And I find it seems that the option of “–enable-shared=yes” is defult
option. Command: $ ./configure --help , it will display this message:

Hello, NAKAMURA Takumi

As you said, I check out the head from svn trunk.
I build the source code as the following steps:
$./configure --enable-shared
$ make

After 1 hour, the building procedure is stopped and appear the following error message:

c:/strawberry/c/bin/…/lib/gcc/i686-w64-mingw32/4.4.3/…/…/…/…/i686-w64-mingw
32/bin/ld.exe: F:/msys/1.0/home/MK/llvm-2.8/llvm/tools/llvm-shlib/Debug+Asserts/
LLVM-2.8svn.a.o: too many sections (63677)
c:/strawberry/c/bin/…/lib/gcc/i686-w64-mingw32/4.4.3/…/…/…/…/i686-w64-mingw
32/bin/ld.exe: final link failed: File too big
collect2: ld returned 1 exit status
make[1]: *** [/usr/home/MK/llvm-2.8/llvm/tools/llvm-shlib/Debug+Asserts/LLVM-2.8
svn.a.o] Error 1
make[1]: Leaving directory `/home/MK/llvm-2.8/llvm/tools/llvm-shlib’
make: *** [all] Error 1

Expect your answer.

Thanks,
yuanzheng.

2010/9/2 NAKAMURA Takumi <geek4civic@gmail.com>

Good evening, Yuan

Excuse me, I gave up Debug build earlier due to my poor hosts.
I will improve able to build Debug :wink:

You may build with --enable-optimized=yes
(or, make ENABLE_OPTIMIZED=1)

btw, DLL builder has implemented since Aug.
It might be easier to port DLL stuff to 2.6 :slight_smile: Do you try?

...Takumi

Good evening, Yuan

Excuse me, I gave up Debug build earlier due to my poor hosts.
I will improve able to build Debug :wink:

You may build with --enable-optimized=yes
(or, make ENABLE_OPTIMIZED=1)

btw, DLL builder has implemented since Aug.
It might be easier to port DLL stuff to 2.6 :slight_smile: Do you try?

I am also interesting on llvm with MingW.
I do not understand why "easier" for build DLL on llvm-2.6. Is there
any one who can build dll library of llvm-2.6 in MingW development
environment?

Thanks
MK

"Michael.Kang" <blackfin.kang@gmail.com> writes:

I am also interesting on llvm with MingW.
I do not understand why "easier" for build DLL on llvm-2.6. Is there
any one who can build dll library of llvm-2.6 in MingW development
environment?

Maybe this helps:

http://article.gmane.org/gmane.comp.compilers.llvm.devel/10660/

LLVM changed a bit since I wrote that post and some files no longer
exists (the standalone .o files that acted as libraries, for instance)
but the procedure consisting on extracting all object files from the
static libraries and relink them into a single dll should still apply.

Hi, NAKAMURA Takumi

According to your prompt, I’m very glad that it can generate llvm-2.8svn.dll !

But there is still some compatibility problem between llvm-2.8
and our project. If we use llvm-2.6, there is no problem.

I would study the code of LLVM to find the difference recently,
and I will contact you if I make some progress.

Thanks for your enthusiastic and timely answer.

Thanks,
yuanzheng.

2010/9/2 NAKAMURA Takumi <geek4civic@gmail.com>