Skip to content

Windows DLLwrap failor in newest alpha? #52

Closed

Description

@gabyx

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 2

Activity

  1. xianyi commented on Aug 31, 2011

    @xianyi
    Collaborator

    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

    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 2

  2. gabyx commented on Aug 31, 2011

    @gabyx
    Author

    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

    ifeq ($(BINARY32), 1)
        $(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
        --entry _dllinit@12 -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
        -lib /machine:i386 /def:libgoto2.def
    else
        $(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
        --entry _dllinit    -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
        -lib /machine:X64 /def:libgoto2.def 
    endif

    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

    ifeq ($(BINARY32), 1)
        $(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
        --entry _dllinit@12 -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
        -lib /machine:i386 /def:libgoto2.def
    else
        $(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
        --entry dllinit    -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
        -lib /machine:X64 /def:libgoto2.def 
    endif

    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!

  3. xianyi commented on Aug 31, 2011

    @xianyi
    Collaborator

    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

    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

    ifeq ($(BINARY32), 1)
      $(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
      --entry _dllinit@12 -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
      -lib /machine:i386 /def:libgoto2.def
    else
      $(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
      --entry _dllinit    -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
      -lib /machine:X64 /def:libgoto2.def
    endif

    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

    ifeq ($(BINARY32), 1)
      $(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
      --entry _dllinit@12 -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
      -lib /machine:i386 /def:libgoto2.def
    else
      $(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
      --entry dllinit    -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
      -lib /machine:X64 /def:libgoto2.def
    endif

    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!

  4. added a commit that references this issue on May 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions