Repository navigation
Closed
Description
Hello I try to build the library on windows with cygwin and mingw
The following build has been used: make -j12 TARGET=NEHALEM USE_THREAD=6 BINARY=64 CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran
But I always fail at the end to export the DLL? Would really appreciate what is wrong here?
THANKS alot!
Below the ouput from the end!
make -C exports dll
make[1]: Entering directory `/home/ZfMGPU/OpenBlas/OpenBLAS/exports'
x86_64-w64-mingw32-ranlib ../libopenblas_nehalemp-r0.1alpha2.2.lib
x86_64-w64-mingw32-dllwrap -o ../libopenblas_nehalemp-r0.1alpha2.2.dll --def lib
goto2.def \
--entry _dllinit -s dllinit.obj --dllname libopenblas_nehalemp-r0.1al
pha2.2.dll ../libopenblas_nehalemp-r0.1alpha2.2.lib
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: war
ning: cannot find entry symbol _dllinit; defaulting to 000000006b4c1000
/usr/lib/gcc/x86_64-w64-mingw32/4.5.3/../../../../x86_64-w64-mingw32/bin/ld: war
ning: cannot find entry symbol _dllinit; defaulting to 000000006b4c1000
../libopenblas_nehalemp-r0.1alpha2.2.lib(sgesvd.obj):sgesvd.f:(.text+0x399): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(sgesvd.obj):sgesvd.f:(.text+0xca3): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(shseqr.obj):shseqr.f:(.text+0x481): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(slalsa.obj):slalsa.f:(.text+0x5ae): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(slalsa.obj):slalsa.f:(.text+0x710): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(slalsa.obj):slalsa.f:(.text+0xb04): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(sormbr.obj):sormbr.f:(.text+0x3d6): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(sormbr.obj):sormbr.f:(.text+0x627): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(sormbr.obj):sormbr.f:(.text+0x6cf): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(sormbr.obj):sormbr.f:(.text+0x754): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(sormhr.obj):sormhr.f:(.text+0x36f): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(sormhr.obj):sormhr.f:(.text+0x587): mor
e undefined references to `_gfortran_concat_string' follow
../libopenblas_nehalemp-r0.1alpha2.2.lib(claed0.obj):claed0.f:(.text+0x2b3): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(claed0.obj):claed0.f:(.text+0x2c8): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(claed7.obj):claed7.f:(.text+0x17c): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(claed7.obj):claed7.f:(.text+0x1b3): und
efined reference to `_gfortran_pow_i4_i4'
$ d
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(clalsa.obj):clalsa.f:(.text+0xcc0): mor
e undefined references to `_gfortran_pow_i4_i4' follow
../libopenblas_nehalemp-r0.1alpha2.2.lib(cunmbr.obj):cunmbr.f:(.text+0x3f6): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(cunmbr.obj):cunmbr.f:(.text+0x65f): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(cunmbr.obj):cunmbr.f:(.text+0x75a): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(cunmbr.obj):cunmbr.f:(.text+0x7e7): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(cunmhr.obj):cunmhr.f:(.text+0x37f): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(cunmhr.obj):cunmhr.f:(.text+0x597): mor
e undefined references to `_gfortran_concat_string' follow
../libopenblas_nehalemp-r0.1alpha2.2.lib(dlalsa.obj):dlalsa.f:(.text+0x5ae): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(dlalsa.obj):dlalsa.f:(.text+0x710): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(dlalsa.obj):dlalsa.f:(.text+0xb13): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(dormbr.obj):dormbr.f:(.text+0x3d6): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(dormbr.obj):dormbr.f:(.text+0x62a): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(dormbr.obj):dormbr.f:(.text+0x6cf): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(dormbr.obj):dormbr.f:(.text+0x754): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(dormhr.obj):dormhr.f:(.text+0x36f): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(dormhr.obj):dormhr.f:(.text+0x587): mor
e undefined references to `_gfortran_concat_string' follow
../libopenblas_nehalemp-r0.1alpha2.2.lib(zlaed0.obj):zlaed0.f:(.text+0x2b4): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zlaed0.obj):zlaed0.f:(.text+0x2c9): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zlaed7.obj):zlaed7.f:(.text+0x184): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zlaed7.obj):zlaed7.f:(.text+0x1c0): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zlalsa.obj):zlalsa.f:(.text+0xb7e): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zlalsa.obj):zlalsa.f:(.text+0xcc1): mor
e undefined references to `_gfortran_pow_i4_i4' follow
../libopenblas_nehalemp-r0.1alpha2.2.lib(zunmbr.obj):zunmbr.f:(.text+0x3f6): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zunmbr.obj):zunmbr.f:(.text+0x65f): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zunmbr.obj):zunmbr.f:(.text+0x75b): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zunmbr.obj):zunmbr.f:(.text+0x7e7): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zunmhr.obj):zunmhr.f:(.text+0x37f): und
efined reference to `_gfortran_concat_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(zunmhr.obj):zunmhr.f:(.text+0x5a7): mor
e undefined references to `_gfortran_concat_string' follow
../libopenblas_nehalemp-r0.1alpha2.2.lib(ilaenv.obj):ilaenv.f:(.text+0x1e5): und
efined reference to `_gfortran_compare_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(ilaenv.obj):ilaenv.f:(.text+0x20c): und
efined reference to `_gfortran_compare_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(ilaenv.obj):ilaenv.f:(.text+0x231): und
efined reference to `_gfortran_compare_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(ilaenv.obj):ilaenv.f:(.text+0x253): und
efined reference to `_gfortran_compare_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(ilaenv.obj):ilaenv.f:(.text+0x275): und
efined reference to `_gfortran_compare_string'
../libopenblas_nehalemp-r0.1alpha2.2.lib(ilaenv.obj):ilaenv.f:(.text+0x297): mor
e undefined references to `_gfortran_compare_string' follow
../libopenblas_nehalemp-r0.1alpha2.2.lib(slasda.obj):slasda.f:(.text+0xd01): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(slasda.obj):slasda.f:(.text+0xeaa): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(sstedc.obj):sstedc.f:(.text+0x458): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(sstedc.obj):sstedc.f:(.text+0x48e): und
efined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(slaeda.obj):slaeda.f:(.text+0x86): unde
fined reference to `_gfortran_pow_i4_i4'
../libopenblas_nehalemp-r0.1alpha2.2.lib(slaeda.obj):slaeda.f:(.text+0x97): more
undefined references to `_gfortran_pow_i4_i4' follow
collect2: ld gab 1 als Ende-Status zur"uck
x86_64-w64-mingw32-dllwrap: x86_64-w64-mingw32-gcc exited with status 1
make[1]: *** [../libopenblas_nehalemp-r0.1alpha2.2.dll] Fehler 1
make[1]: Leaving directory `/home/ZfMGPU/OpenBlas/OpenBLAS/exports'
make: *** [shared] Fehler 2Metadata
Metadata
Assignees
Labels
No labels
Activity
xianyi commentedon Aug 31, 2011
Hi gabyx,
Sorry, I can't reproduce this error. I just compiled OpenBLAS dll
successfully with "make USE_THREAD=2 CC=gcc FC=gfortran" on mingw32. The
test box equips Intel Core2 Duo P8700 and OS is windows 7. GCC version
is 4.5.2.
I think those undefined references are in libgfortran library. Could you
have suitable gfortran library? I am not familiar with cygwin, mingw32 &
windows. Thus, I can't provide more information.
Thanks
Xianyi
gabyx write:Sent: 2011/8/31 1:38
gabyx commentedon Aug 31, 2011
OK, found that NO_LAPACK=1 will work
I have not sucessfully linked against the cblas calls, but I have linked against fortran calls and they work, but I had experienced the following BUG (?) in the MAKEFILE in /exports
It could not find somehow the entry _dllinit? (dont know what that means)
But as I had a GotoBlas environemnt by me which works ->
I changed to the following
NOTE: _dllinit ---> dllinit
Then the lib and dll building worked (but only fortran calls)
hm...
Do you know how to call in c++ the cblas_gemv for example, I can never link, does not find the function if I include cblas.h
Thanks for the reply!
xianyi commentedon Aug 31, 2011
Hi gabyx,
It's very interesting.Could you give me more information about your
box? For example, CPU, OS, mingw version,gcc version. Meanwhile, please
send me Makefile.conf_last and config_last.h in OpenBLAS folder. I think
this issue relates to the different calling convention.
Do you set NO_CBLAS=1 ? If you set this, it will only generate FORTRAN
interface.
You can run "make PREFIX=/path_to_install install". Then, It will
generate cblas.h in /path_to_install folder. You can include this header
file in C++.
Thanks
Xianyi
gabyx write:Sent: 2011/8/31 20:37
Merge pull request #52 from xianyi/develop