Menu

#92 OpenIPMI 2.0.30 no longer builds with MSYS/MinGW

v1.0_(example)
closed
nobody
None
5
2021-03-30
2020-12-09
No

Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

It looks like there are dllexport/dllimport issues.
This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

libtool: link: x86_64-w64-mingw32-gcc -shared  .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o   -lws2_32 -liphlpapi -lgdi32  -g -O2   -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `add_after':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to `__imp_ilist_mem_alloc'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `add_before':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to `__imp_ilist_mem_alloc'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `alloc_ilist':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to `__imp_ilist_mem_alloc'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to `__imp_ilist_mem_free'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `alloc_ilist_iter':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to `__imp_ilist_mem_alloc'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `free_ilist':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to `__imp_ilist_mem_free'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `free_ilist_iter':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to `__imp_ilist_mem_free'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `ilist_delete':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to `__imp_ilist_mem_free'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `ilist_remove_first':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to `__imp_ilist_mem_free'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `ilist_remove_last':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to `__imp_ilist_mem_free'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to `__imp_ilist_mem_free' follow
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `ilist_add_twoitem':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to `__imp_ilist_mem_alloc'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `ilist_remove_twoitem':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to `__imp_ilist_mem_free'
d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function `ilist_first':
R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to `__imp_ilist_mem_free'

Related

Bugs: #92

Discussion

  • Corey Minyard

    Corey Minyard - 2020-12-09

    On Wed, Dec 09, 2020 at 08:17:47AM -0000, Brecht Sanders wrote:

    Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

    That was quick :-). Thanks for the report.

    It looks like there are dllexport/dllimport issues.
    This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
    I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

    I don't understand how that would fix it. It's failing when linking the
    libOpenIPMIutils shared library, which is before it tries to build
    libOpenIPMI, so I don't see how splitting them could be relevant.
    But I will admit I don't understand how this works on the Windows side,
    I just followed instructions.

    Really, ilist_mem_alloc() and ilist_mem_free() should not have public
    visibility. Can you verify if removing IPMI_DLL_PUBLIC from those
    definitions in include/OpenIPMI/internal/ilist.h solves the problem?
    I'm guessing that other problems will show up.

    But this is really strange, because I've verified that
    OpenIPMI/internal/ilist.h is included in all places that define
    and use these functions. My understanding is that should be all that is
    required.

    Thanks,

    -corey

    ~~~
    libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'
    ~~~


    Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openipmi/bugs/92/

    To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

     
  • Brecht Sanders

    Brecht Sanders - 2020-12-09

    This doesn't fix it:

    patch -ulbf include/OpenIPMI/internal/ilist.h << EOF
    @@ -224,5 +224,3 @@
     /* You must define these. */
    -IPMI_DLL_PUBLIC
     void *ilist_mem_alloc(size_t size);
    -IPMI_DLL_PUBLIC
     void ilist_mem_free(void *data);
    EOF
    

    Note that make -Cutils works fine. The errors start when running make -Clib and there's a lot of them (see attachment).

    When a project generates multiple DLLs you should separate defines per library for the dllexport/dllimport stuff, as it is possible some functions are exported in one library while other functions are imported from another - as I believe this is the case here.
    The result is header files will tell functions to be exported from the second library, while in fact they should be imported from the first library, which the second library links with.

    Also I noticed #ifdef BUILDING_DLL in include/OpenIPMI/dllvisibility.h but I don't see BUILDING_DLL actually being defined (e.g. by configure).
    A more appropiate way to do this would be to define either BUILDING_IPMI_DLL or BUILDING_IPMIUTILS_DLL depending on which shared library is being built and then define IPMI_DLL_PUBLIC and IPMIUTILS_DLL_PUBLIC based on that (and change IPMI_DLL_PUBLIC to IPMIUTILS_DLL_PUBLIC in the utils sources).

     
    • Corey Minyard

      Corey Minyard - 2020-12-09

      On Wed, Dec 09, 2020 at 08:01:11PM -0000, Brecht Sanders wrote:

      This doesn't fix it:
      patch -ulbf include/OpenIPMI/internal/ilist.h << EOF @@ -224,5 +224,3 @@ /* You must define these. */ -IPMI_DLL_PUBLIC void *ilist_mem_alloc(size_t size); -IPMI_DLL_PUBLIC void ilist_mem_free(void *data); EOF

      Note that make -Cutils works fine. The errors start when running make -Clib and there's a lot of them (see attachment).

      When a project generates multiple DLLs you should separate defines per library for the dllexport/dllimport stuff, as it is possible some functions are exported in one library while other functions are imported from another - as I believe this is the case here.
      The result is header files will tell functions to be exported from the second library, while in fact they should be imported from the first library, which the second library links with.

      Also I noticed #ifdef BUILDING_DLL in include/OpenIPMI/dllvisibility.h but I don't see BUILDING_DLL actually being defined (e.g. by configure).
      A more appropiate way to do this would be to define either BUILDING_IPMI_DLL or BUILDING_IPMIUTILS_DLL depending on which shared library is being built and then define IPMI_DLL_PUBLIC and IPMIUTILS_DLL_PUBLIC based on that (and change IPMI_DLL_PUBLIC to IPMIUTILS_DLL_PUBLIC in the utils sources).

      Yeah, I had kind of figured this out, too. I'll see what I can do.

      -corey

      Attachments:


      ** [bugs:#92] OpenIPMI 2.0.30 no longer builds with MSYS/MinGW**

      Status: open
      Group: v1.0_(example)
      Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
      Last Updated: Wed Dec 09, 2020 08:17 AM UTC
      Owner: nobody

      Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

      It looks like there are dllexport/dllimport issues.
      This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
      I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

      ~~~
      libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'
      ~~~


      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openipmi/bugs/92/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       

      Related

      Bugs: #92

    • Corey Minyard

      Corey Minyard - 2020-12-09

      On Wed, Dec 09, 2020 at 08:01:11PM -0000, Brecht Sanders wrote:

      Also I noticed #ifdef BUILDING_DLL in include/OpenIPMI/dllvisibility.h but I don't see BUILDING_DLL actually being defined (e.g. by configure).
      A more appropiate way to do this would be to define either BUILDING_IPMI_DLL or BUILDING_IPMIUTILS_DLL depending on which shared library is being built and then define IPMI_DLL_PUBLIC and IPMIUTILS_DLL_PUBLIC based on that (and change IPMI_DLL_PUBLIC to IPMIUTILS_DLL_PUBLIC in the utils sources).

      Ok, can you try the attached patch. I think I got everything.

      -corey

       
      • Brecht Sanders

        Brecht Sanders - 2020-12-10

        Not quite there yet...
        Now you gave cases where either IPMI_UTILS_DLL_PUBLIC or IPMI_UTILS_DLL_PUBLIC are not defined, leading to compilation errors.

        Also, you seem to make a distinction based on __GNUC__ which I don't think is needed as both MinGW-GCC and MSVC understand __declspec(dllexport)/__declspec(dllimport).

        See here for a clean example on how I usually do this: https://github.com/brechtsanders/ci-test/blob/master/include/mylibrary.h

         
        • Corey Minyard

          Corey Minyard - 2020-12-10

          On Thu, Dec 10, 2020 at 07:57:40AM -0000, Brecht Sanders wrote:

          Not quite there yet...
          Now you gave cases where either IPMI_UTILS_DLL_PUBLIC or IPMI_UTILS_DLL_PUBLIC are not defined, leading to compilation errors.

          Doh, that was a dumb mistake.

          Also, you seem to make a distinction based on __GNUC__ which I don't think is needed as both MinGW-GCC and MSVC understand __declspec(dllexport)/__declspec(dllimport).

          I am worried about support for older compilers in cygwin, so I'd like to
          leave that in.

          I have downloaded mingw and set things up. I'm having trouble
          compiling, though, I get:

          /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wsign-compare -I../include -DIPMI_CHECK_LOCKS -DBUILDING_IPMI_UTILS_DLL -g -O2 -MT hash.lo -MD -MP -MF .deps/hash.Tpo -c -o hash.lo hash.c
          libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -Wall -Wsign-compare -I../include -DIPMI_CHECK_LOCKS -DBUILDING_IPMI_UTILS_DLL -g -O2 -MT hash.lo -MD -MP -MF .deps/hash.Tpo -c hash.c -DDLL_EXPORT -DPIC -o .libs/hash.o
          In file included from ../include/OpenIPMI/ipmi_types.h:60,
          from ../include/OpenIPMI/internal/ipmi_utils.h:27,
          from hash.c:51:
          ../include/OpenIPMI/ipmi_addr.h:60:10: fatal error: netinet/in.h: No such file or directory
          60 | #include <netinet in.h="">
          | ^~~~~~~~~~~~~~</netinet>

          I can't find netinet or socket.h or in.h anywhere in the install. I
          can't find a package that would seem to supply those.

          Anyway, I have included my hopefully working patch.

          -corey

          See here for a clean example on how I usually do this: https://github.com/brechtsanders/ci-test/blob/master/include/mylibrary.h


          ** [bugs:#92] OpenIPMI 2.0.30 no longer builds with MSYS/MinGW**

          Status: open
          Group: v1.0_(example)
          Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
          Last Updated: Wed Dec 09, 2020 08:01 PM UTC
          Owner: nobody

          Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

          It looks like there are dllexport/dllimport issues.
          This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
          I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

          ~~~
          libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'
          ~~~


          Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openipmi/bugs/92/

          To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

           

          Related

          Bugs: #92

          • Brecht Sanders

            Brecht Sanders - 2020-12-10

            It did require some tweaking from my part to get it to build on native Windows with MinGW-w64.
            Here are some of those tricks I used:

            # create dummy syslog.h
            cat > syslog.h << EOF
            #define LOG_ERR 3
            static void syslog (int priority, const char *format, ...) {}
            EOF
            # fix missing includes
            mkdir netinet sys arpa
            echo "#include <winsock2.h>" > netinet/in.h
            touch netdb.h
            touch sys/socket.h
            touch arpa/inet.h
            touch sys/poll.h
            echo "#include <malloc.h>" > alloca.h
            
            ./configure --with-openssl --with-ucdsnmp --without-tcl --without-perl --without-python --without-swig LDFLAGS="-lws2_32 -liphlpapi -lgdi32" &&
            

            If the code was on GitHub I could do a pull request of some of the code changes that are needed. I'm not sure how to do that on SourceForge though.

             
            • Corey Minyard

              Corey Minyard - 2020-12-10

              On Thu, Dec 10, 2020 at 05:30:57PM -0000, Brecht Sanders wrote:

              It did require some tweaking from my part to get it to build on native Windows with MinGW-w64.
              Here are some of those tricks I used:

              I've fixed all those so hacks are no longer necessary, for the most
              part. Though I'm not sure where the alloca.h thing is, openipmi doesn't
              use that. I've also fixed some more DLL issues that I found.

              These are all pushed up to github (I keep a mirror there at
              cminyard/openipmi) and I'd be delighted to get pull requests :).

              The changes are not pushed to sourceforge yet, because it's giving me
              issues with non-fast-forward pushes. I may have to nuke the repository
              and start over, or just use the github one.

              It's still not compiling for me, though, it can't find inet_ntop,
              inet_pton, fcntl, O_NONBLOCK, F_SETFL, or anything about signals.

              There are warnings about %lld conversions being invalid in printf,
              which is strange.

              I'm wondering if I have the right version of MinGW.

              -corey

              ```

              create dummy syslog.h

              cat > syslog.h << EOF

              define LOG_ERR 3

              static void syslog (int priority, const char *format, ...) {}
              EOF

              fix missing includes

              mkdir netinet sys arpa
              echo "#include <winsock2.h>" > netinet/in.h
              touch netdb.h
              touch sys/socket.h
              touch arpa/inet.h
              touch sys/poll.h
              echo "#include <malloc.h>" > alloca.h</malloc.h></winsock2.h>

              ./configure --with-openssl --with-ucdsnmp --without-tcl --without-perl --without-python --without-swig LDFLAGS="-lws2_32 -liphlpapi -lgdi32" &&
              ```

              If the code was on GitHub I could do a pull request of some of the code changes that are needed. I'm not sure how to do that on SourceForge though.


              ** [bugs:#92] OpenIPMI 2.0.30 no longer builds with MSYS/MinGW**

              Status: open
              Group: v1.0_(example)
              Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
              Last Updated: Thu Dec 10, 2020 07:57 AM UTC
              Owner: nobody

              Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

              It looks like there are dllexport/dllimport issues.
              This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
              I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

              ~~~
              libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'
              ~~~


              Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openipmi/bugs/92/

              To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

               

              Related

              Bugs: #92

              • Brecht Sanders

                Brecht Sanders - 2020-12-12

                Just created pull request https://github.com/cminyard/openipmi/pull/3 with what I believe needs to be fixed.
                Well almost.
                Still 3 undefined references: ipmi_malloc_shutdown/ipmi_malloc_init/ipmi_malloc_log

                 
                • Corey Minyard

                  Corey Minyard - 2020-12-12

                  On Sat, Dec 12, 2020 at 08:59:19AM -0000, Brecht Sanders wrote:

                  Just created pull request https://github.com/cminyard/openipmi/pull/3 with what I believe needs to be fixed.
                  Well almost.
                  Still 3 undefined references: ipmi_malloc_shutdown/ipmi_malloc_init/ipmi_malloc_log

                  I'm attaching a diff that maybe fixes the ipmi_malloc_log() thing? If
                  not, I'll do a 2.1 release and get rid of the reverse reference.

                  -corey


                  ** [bugs:#92] OpenIPMI 2.0.30 no longer builds with MSYS/MinGW**

                  Status: open
                  Group: v1.0_(example)
                  Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                  Last Updated: Thu Dec 10, 2020 05:35 PM UTC
                  Owner: nobody

                  Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

                  It looks like there are dllexport/dllimport issues.
                  This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
                  I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

                  ~~~
                  libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'
                  ~~~


                  Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openipmi/bugs/92/

                  To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

                   

                  Related

                  Bugs: #92

                  • Brecht Sanders

                    Brecht Sanders - 2020-12-12

                    That fix didn't do the trick.
                    I still get:

                    d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ipmi.o: in function `ipmi_shutdown':
                    \\SERVER\users\brecht\sources\CPP\_forks_\OpenIPMI\lib/ipmi.c:612: undefined reference to `ipmi_malloc_shutdown'
                    d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ipmi.o: in function `ipmi_init':
                    \\SERVER\users\brecht\sources\CPP\_forks_\OpenIPMI\lib/ipmi.c:474: undefined reference to `ipmi_malloc_init'
                    d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ipmi.o:ipmi.c:(.rdata$.refptr.ipmi_malloc_log[.refptr.ipmi_malloc_log]+0x0): undefined reference to `ipmi_malloc_log'
                    

                    Also I still see #define O_NONBLOCK 1 in lib/ipmi_lan.c and lib/oem_atca_conn.c. That's not the right way to fix setting sockets to non-blocking on Windows. See my pull request on how to fix that.

                     
                    • Corey Minyard

                      Corey Minyard - 2020-12-12

                      On Sat, Dec 12, 2020 at 05:23:55PM -0000, Brecht Sanders wrote:

                      That fix didn't do the trick.
                      I still get:
                      `` d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ipmi.o: in functionipmi_shutdown':
                      \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:612: undefined reference to ipmi_malloc_shutdown' d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ipmi.o: in functionipmi_init':
                      \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:474: undefined reference to ipmi_malloc_init' d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ipmi.o:ipmi.c:(.rdata$.refptr.ipmi_malloc_log[.refptr.ipmi_malloc_log]+0x0): undefined reference toipmi_malloc_log'

                      Dant, I didn't push to github. I just did that. I can mess with it
                      this weekend.

                      `` Also I still see#define O_NONBLOCK 1inlib/ipmi_lan.candlib/oem_atca_conn.c`. That's not the right way to fix setting sockets to non-blocking on Windows. See my pull request on how to fix that.

                      Oops, that got left in from some hacking I was doing. I've pulled it
                      out.

                      -corey


                      ** [bugs:#92] OpenIPMI 2.0.30 no longer builds with MSYS/MinGW**

                      Status: open
                      Group: v1.0_(example)
                      Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                      Last Updated: Sat Dec 12, 2020 08:59 AM UTC
                      Owner: nobody

                      Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

                      It looks like there are dllexport/dllimport issues.
                      This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
                      I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

                      ~~~
                      libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'
                      ~~~


                      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openipmi/bugs/92/

                      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

                       

                      Related

                      Bugs: #92

                      • Brecht Sanders

                        Brecht Sanders - 2020-12-13

                        I see a lot of the stuff from my pull request is still missing when I
                        make a new fork of the github repository.

                        Is it possible not everything got merged?

                        On 12/12/2020 21:28, Corey Minyard wrote:

                        On Sat, Dec 12, 2020 at 05:23:55PM -0000, Brecht Sanders wrote:

                        That fix didn't do the trick.
                        I still get:
                        |``
                        d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ipmi.o: in function|ipmi_shutdown':
                        \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:612:
                        undefined reference to |ipmi_malloc_shutdown'
                        d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ipmi.o: in function|ipmi_init':
                        \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:474:
                        undefined reference to |ipmi_malloc_init'
                        d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ipmi.o:ipmi.c:(.rdata$.refptr.ipmi_malloc_log[.refptr.ipmi_malloc_log]+0x0):
                        undefined reference to|ipmi_malloc_log'
                        

                        Dant, I didn't push to github. I just did that. I can mess with it
                        this weekend.

                        |`` Also I still see|#define O_NONBLOCK
                        1|in|lib/ipmi_lan.c|and|lib/oem_atca_conn.c`. That's not the right
                        way to fix setting sockets to non-blocking on Windows. See my pull
                        request on how to fix that.
                        

                        Oops, that got left in from some hacking I was doing. I've pulled it
                        out.

                        -corey

                        ------------------------------------------------------------------------
                        
                        *[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                        2.0.30 no longer builds with MSYS/MinGW*
                        
                        *Status:* open
                        *Group:* v1.0_(example)
                        *Created:* Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                        *Last Updated:* Sat Dec 12, 2020 08:59 AM UTC
                        *Owner:* nobody
                        
                        Newly released version 2.0.30 no longer builds under MSYS/MinGW,
                        see the output below.
                        
                        It looks like there are dllexport/dllimport issues.
                        This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but
                        this file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                        shared between 2 different DLLs - |libOpenIPMIutils| and
                        |libOpenIPMI| - of which the latter depends on the former.
                        I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                        different defines (one for |libOpenIPMIutils| and one for
                        |libOpenIPMI| ), which are only set to |__attribute__
                        ((dllexport))| when the relevant shared library is being built.
                        
                        ~~~
                        libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                        .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o
                        .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o
                        .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o
                        .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                        --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function |add_after':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined
                        reference to|__imp_ilist_mem_alloc'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function |add_before':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined
                        reference to|__imp_ilist_mem_alloc'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function |alloc_ilist':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                        reference to|__imp_ilist_mem_alloc'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined
                        reference to |__imp_ilist_mem_free'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function|alloc_ilist_iter':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined
                        reference to |__imp_ilist_mem_alloc'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function|free_ilist':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined
                        reference to |__imp_ilist_mem_free'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function|free_ilist_iter':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined
                        reference to |__imp_ilist_mem_free'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function|ilist_delete':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined
                        reference to |__imp_ilist_mem_free'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function|ilist_remove_first':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined
                        reference to |__imp_ilist_mem_free'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function|ilist_remove_last':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined
                        reference to |__imp_ilist_mem_free'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                        more undefined references to|__imp_ilist_mem_free' follow
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function |ilist_add_twoitem':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined
                        reference to|__imp_ilist_mem_alloc'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function |ilist_remove_twoitem':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined
                        reference to|__imp_ilist_mem_free'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function |ilist_first':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined
                        reference to|__imp_ilist_mem_free'
                        ~~~
                        
                        ------------------------------------------------------------------------
                        
                        Sent from sourceforge.net because you indicated interest in
                        https://sourceforge.net/p/openipmi/bugs/92/
                        <https://sourceforge.net/p/openipmi/bugs/92/>
                        
                        To unsubscribe from further messages, please visit
                        https://sourceforge.net/auth/subscriptions/
                        <https://sourceforge.net/auth/subscriptions/>
                        

                        [bugs:#92] https://sourceforge.net/p/openipmi/bugs/92/ OpenIPMI
                        2.0.30 no longer builds with MSYS/MinGW

                        Status: open
                        Group: v1.0_(example)
                        Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                        Last Updated: Sat Dec 12, 2020 05:25 PM UTC
                        Owner: nobody

                        Newly released version 2.0.30 no longer builds under MSYS/MinGW, see
                        the output below.

                        It looks like there are dllexport/dllimport issues.
                        This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but this
                        file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is shared
                        between 2 different DLLs - |libOpenIPMIutils| and |libOpenIPMI| - of
                        which the latter depends on the former.
                        I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                        different defines (one for |libOpenIPMIutils| and one for
                        |libOpenIPMI| ), which are only set to |attribute ((dllexport))|
                        when the relevant shared library is being built.

                        libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o
                        .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                        .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2
                        -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                        --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                        R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                        d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                        .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'


                        Sent from sourceforge.net because you indicated interest in
                        https://sourceforge.net/p/openipmi/bugs/92/
                        https://sourceforge.net/p/openipmi/bugs/92/

                        To unsubscribe from further messages, please visit
                        https://sourceforge.net/auth/subscriptions/
                        https://sourceforge.net/auth/subscriptions/

                         

                        Related

                        Bugs: #92

                        • Corey Minyard

                          Corey Minyard - 2020-12-13

                          On Sun, Dec 13, 2020 at 02:21:23PM -0000, Brecht Sanders wrote:

                          I see a lot of the stuff from my pull request is still missing when I
                          make a new fork of the github repository.

                          Is it possible not everything got merged?

                          I just looked, and it doesn't appear so. I diffed the end if your pull
                          request with where I pulled in your changes, and the only differences
                          were some trailing spaces I removed.

                          I just tried building on MinGW, and it still says inet_ntop isn't
                          defined, but the code you added to fix it is there. I can't find a
                          definition of inet_ntop in anywhere in MinGW.

                          If fails compiling unix/selector.c with a bunch of error.

                          -corey

                          On 12/12/2020 21:28, Corey Minyard wrote:

                          On Sat, Dec 12, 2020 at 05:23:55PM -0000, Brecht Sanders wrote:

                          That fix didn't do the trick.
                          I still get:
                          |``
                          d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ipmi.o: in function|ipmi_shutdown':
                          \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:612:
                          undefined reference to |ipmi_malloc_shutdown'
                          d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ipmi.o: in function|ipmi_init':
                          \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:474:
                          undefined reference to |ipmi_malloc_init'
                          d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ipmi.o:ipmi.c:(.rdata$.refptr.ipmi_malloc_log[.refptr.ipmi_malloc_log]+0x0):
                          undefined reference to|ipmi_malloc_log'
                          

                          Dant, I didn't push to github. I just did that. I can mess with it
                          this weekend.

                          |`` Also I still see|#define O_NONBLOCK
                          1|in|lib/ipmi_lan.c|and|lib/oem_atca_conn.c`. That's not the right
                          way to fix setting sockets to non-blocking on Windows. See my pull
                          request on how to fix that.
                          

                          Oops, that got left in from some hacking I was doing. I've pulled it
                          out.

                          -corey

                          ------------------------------------------------------------------------
                          
                          *[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                          2.0.30 no longer builds with MSYS/MinGW*
                          
                          *Status:* open
                          *Group:* v1.0_(example)
                          *Created:* Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                          *Last Updated:* Sat Dec 12, 2020 08:59 AM UTC
                          *Owner:* nobody
                          
                          Newly released version 2.0.30 no longer builds under MSYS/MinGW,
                          see the output below.
                          
                          It looks like there are dllexport/dllimport issues.
                          This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but
                          this file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                          shared between 2 different DLLs - |libOpenIPMIutils| and
                          |libOpenIPMI| - of which the latter depends on the former.
                          I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                          different defines (one for |libOpenIPMIutils| and one for
                          |libOpenIPMI| ), which are only set to |__attribute__
                          ((dllexport))| when the relevant shared library is being built.
                          
                          ~~~
                          libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                          .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o
                          .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o
                          .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o
                          .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                          --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function |add_after':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined
                          reference to|__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function |add_before':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined
                          reference to|__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function |alloc_ilist':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                          reference to|__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined
                          reference to |__imp_ilist_mem_free'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function|alloc_ilist_iter':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined
                          reference to |__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function|free_ilist':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined
                          reference to |__imp_ilist_mem_free'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function|free_ilist_iter':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined
                          reference to |__imp_ilist_mem_free'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function|ilist_delete':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined
                          reference to |__imp_ilist_mem_free'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function|ilist_remove_first':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined
                          reference to |__imp_ilist_mem_free'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function|ilist_remove_last':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined
                          reference to |__imp_ilist_mem_free'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                          more undefined references to|__imp_ilist_mem_free' follow
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function |ilist_add_twoitem':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined
                          reference to|__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function |ilist_remove_twoitem':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined
                          reference to|__imp_ilist_mem_free'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function |ilist_first':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined
                          reference to|__imp_ilist_mem_free'
                          ~~~
                          
                          ------------------------------------------------------------------------
                          
                          Sent from sourceforge.net because you indicated interest in
                          https://sourceforge.net/p/openipmi/bugs/92/
                          <https://sourceforge.net/p/openipmi/bugs/92/>
                          
                          To unsubscribe from further messages, please visit
                          https://sourceforge.net/auth/subscriptions/
                          <https://sourceforge.net/auth/subscriptions/>
                          

                          [bugs:#92] https://sourceforge.net/p/openipmi/bugs/92/ OpenIPMI
                          2.0.30 no longer builds with MSYS/MinGW

                          Status: open
                          Group: v1.0_(example)
                          Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                          Last Updated: Sat Dec 12, 2020 05:25 PM UTC
                          Owner: nobody

                          Newly released version 2.0.30 no longer builds under MSYS/MinGW, see
                          the output below.

                          It looks like there are dllexport/dllimport issues.
                          This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but this
                          file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is shared
                          between 2 different DLLs - |libOpenIPMIutils| and |libOpenIPMI| - of
                          which the latter depends on the former.
                          I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                          different defines (one for |libOpenIPMIutils| and one for
                          |libOpenIPMI| ), which are only set to |attribute ((dllexport))|
                          when the relevant shared library is being built.

                          libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o
                          .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                          .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2
                          -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                          --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                          .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'


                          Sent from sourceforge.net because you indicated interest in
                          https://sourceforge.net/p/openipmi/bugs/92/
                          https://sourceforge.net/p/openipmi/bugs/92/

                          To unsubscribe from further messages, please visit
                          https://sourceforge.net/auth/subscriptions/
                          https://sourceforge.net/auth/subscriptions/


                          ** [bugs:#92] OpenIPMI 2.0.30 no longer builds with MSYS/MinGW**

                          Status: open
                          Group: v1.0_(example)
                          Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                          Last Updated: Sat Dec 12, 2020 05:25 PM UTC
                          Owner: nobody

                          Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

                          It looks like there are dllexport/dllimport issues.
                          This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
                          I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

                          ~~~
                          libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                          R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                          d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'
                          ~~~


                          Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openipmi/bugs/92/

                          To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

                           

                          Related

                          Bugs: #92

                          • Brecht Sanders

                            Brecht Sanders - 2020-12-13

                            I looked and for example lib/domain.c didn't have my changes. Maybe I
                            was looking in the wrong place?

                            Should I fork it again to be sure?

                            I'm using the latest MinGW-w64.

                            If you're using the old MinGW it's possible that inet_ntop/inet_pton is
                            not there.

                            Brecht Sanders
                            Edustria | MailTester.com | WinLibs.com
                            E-mail: brecht@sanders.org brecht@sanders.org

                            On 13/12/2020 17:12, Corey Minyard wrote:

                            On Sun, Dec 13, 2020 at 02:21:23PM -0000, Brecht Sanders wrote:

                            I see a lot of the stuff from my pull request is still missing when I
                            make a new fork of the github repository.
                            
                            Is it possible not everything got merged?
                            

                            I just looked, and it doesn't appear so. I diffed the end if your pull
                            request with where I pulled in your changes, and the only differences
                            were some trailing spaces I removed.

                            I just tried building on MinGW, and it still says inet_ntop isn't
                            defined, but the code you added to fix it is there. I can't find a
                            definition of inet_ntop in anywhere in MinGW.

                            If fails compiling unix/selector.c with a bunch of error.

                            -corey

                            On 12/12/2020 21:28, Corey Minyard wrote:
                            
                                On Sat, Dec 12, 2020 at 05:23:55PM -0000, Brecht Sanders wrote:
                            
                                That  fix  didn't do the trick.
                                I  still  get:
                                |``
                                d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ipmi.o:in  function|ipmi_shutdown':
                                \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:612:
                                undefined  reference  to  |ipmi_malloc_shutdown'
                                d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ipmi.o:in  function|ipmi_init':
                                \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:474:
                                undefined  reference  to  |ipmi_malloc_init'
                                d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ipmi.o:ipmi.c:(.rdata$.refptr.ipmi_malloc_log[.refptr.ipmi_malloc_log]+0x0):
                                undefined  reference  to|ipmi_malloc_log'
                            
                                Dant, I didn't push to github. I just did that. I can mess with it
                                this weekend.
                            
                                |``  Also  I  still  see|#define  O_NONBLOCK
                                1|in|lib/ipmi_lan.c|and|lib/oem_atca_conn.c`.  That's  not  the  right
                                way  to  fix  setting  sockets  to  non-blocking  on  Windows.  See  my  pull
                                request  on  how  to  fix  that.
                            
                                Oops, that got left in from some hacking I was doing. I've
                                pulled it
                                out.
                            
                                -corey
                            
                                ------------------------------------------------------------------------
                            
                                *[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                                2.0.30  no  longer  builds  with  MSYS/MinGW*
                            
                                *Status:*  open
                                *Group:*  v1.0_(example)
                                *Created:*  Wed  Dec  09,  2020  08:17  AM  UTC  by  Brecht  Sanders
                                *Last  Updated:*  Sat  Dec  12,  2020  08:59  AM  UTC
                                *Owner:*  nobody
                            
                                Newly  released  version  2.0.30  no  longer  builds  under  MSYS/MinGW,
                                see  the  output  below.
                            
                                It  looks  like  there  are  dllexport/dllimport  issues.
                                This  stuff  is  defined  in  |include/OpenIPMI/dllvisibility.h|,  but
                                this  file,  and  the  symbol  |IPMI_DLL_PUBLIC|  which  it  defines,  is
                                shared  between  2  different  DLLs  -  |libOpenIPMIutils|  and
                                |libOpenIPMI|  -  of  which  the  latter  depends  on  the  former.
                                I  believe  the  solution  would  be  to  split  |IPMI_DLL_PUBLIC|  into  2
                                different  defines  (one  for  |libOpenIPMIutils|  and  one  for
                                |libOpenIPMI|  ),  which  are  only  set  to  |__attribute__
                                ((dllexport))|  when  the  relevant  shared  library  is  being  built.
                            
                                ~~~
                                libtool:  link:  x86_64-w64-mingw32-gcc  -shared  .libs/md5.o
                                .libs/md2.o  .libs/ipmi_auth.o  .libs/ipmi_malloc.o  .libs/ilist.o
                                .libs/locks.o  .libs/hash.o  .libs/locked_list.o  .libs/os_handler.o
                                .libs/string.o  -lws2_32  -liphlpapi  -lgdi32  -g  -O2  -o
                                .libs/libOpenIPMIutils-0.dll  -Wl,--enable-auto-image-base  -Xlinker
                                --out-implib  -Xlinker  .libs/libOpenIPMIutils.dll.a
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function  |add_after':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:  undefined
                                reference  to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function  |add_before':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:  undefined
                                reference  to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function  |alloc_ilist':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66:  undefined
                                reference  to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72:  undefined
                                reference  to  |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function|alloc_ilist_iter':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89:  undefined
                                reference  to  |__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function|free_ilist':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:  undefined
                                reference  to  |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function|free_ilist_iter':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:  undefined
                                reference  to  |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function|ilist_delete':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:  undefined
                                reference  to  |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function|ilist_remove_first':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:  undefined
                                reference  to  |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function|ilist_remove_last':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:  undefined
                                reference  to  |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                more  undefined  references  to|__imp_ilist_mem_free' follow
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function  |ilist_add_twoitem':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:  undefined
                                reference  to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function  |ilist_remove_twoitem':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:  undefined
                                reference  to|__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:  in  function  |ilist_first':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:  undefined
                                reference  to|__imp_ilist_mem_free'
                                ~~~
                            
                                ------------------------------------------------------------------------
                            
                                Sent  from  sourceforge.net  because  you  indicated  interest  in
                                https://sourceforge.net/p/openipmi/bugs/92/
                                <https://sourceforge.net/p/openipmi/bugs/92/>
                            
                                To  unsubscribe  from  further  messages,  please  visit
                                https://sourceforge.net/auth/subscriptions/
                                <https://sourceforge.net/auth/subscriptions/>
                            
                                ------------------------------------------------------------------------
                            
                                /[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/>
                                https://sourceforge.net/p/openipmi/bugs/92/
                                <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                                2.0.30 no longer builds with MSYS/MinGW/
                            
                                /Status:/ open
                                /Group:/ v1.0_(example)
                                /Created:/ Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                                /Last Updated:/ Sat Dec 12, 2020 05:25 PM UTC
                                /Owner:/ nobody
                            
                                Newly released version 2.0.30 no longer builds under
                                MSYS/MinGW, see
                                the output below.
                            
                                It looks like there are dllexport/dllimport issues.
                                This stuff is defined in |include/OpenIPMI/dllvisibility.h|,
                                but this
                                file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                                shared
                                between 2 different DLLs - |libOpenIPMIutils| and
                                |libOpenIPMI| - of
                                which the latter depends on the former.
                                I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                                different defines (one for |libOpenIPMIutils| and one for
                                |libOpenIPMI| ), which are only set to |*attribute*
                                ((dllexport))|
                                when the relevant shared library is being built.
                            
                                libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                                .libs/md2..o .libs/ipmi_auth.o .libs/ipmi_malloc.o
                                ..libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                                ..libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32
                                -g -O2
                                -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base
                                -Xlinker
                                --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            
                                ..libs/ilist.o: in function |add_after':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:
                                undefined reference to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            
                                ..libs/ilist.o: in function |add_before':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:
                                undefined reference to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            
                                ..libs/ilist.o: in function |alloc_ilist':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                                reference to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined
                                reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ilist.o: in function|alloc_ilist_iter':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined
                                reference to |__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ilist.o: in function|free_ilist':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:
                                undefined reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ilist.o: in function|free_ilist_iter':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:
                                undefined reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ilist.o: in function|ilist_delete':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:
                                undefined reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ilist.o: in function|ilist_remove_first':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:
                                undefined reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ilist.o: in function|ilist_remove_last':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:
                                undefined reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                ..libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                more undefined references to|__imp_ilist_mem_free' follow
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            
                                ..libs/ilist.o: in function |ilist_add_twoitem':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:
                                undefined reference to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            
                                ..libs/ilist.o: in function |ilist_remove_twoitem':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:
                                undefined reference to|__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            
                                ..libs/ilist.o: in function |ilist_first':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:
                                undefined reference to|__imp_ilist_mem_free'
                            
                                ------------------------------------------------------------------------
                            
                                Sent from sourceforge.net because you indicated interest in
                                https://sourceforge..net/p/openipmi/bugs/92/
                                <https://sourceforge.net/p/openipmi/bugs/92/>
                                https://sourceforge..net/p/openipmi/bugs/92/
                                <https://sourceforge.net/p/openipmi/bugs/92/>
                            
                                To unsubscribe from further messages, please visit
                                https://sourceforge..net/auth/subscriptions/
                                <https://sourceforge.net/auth/subscriptions/>
                                https://sourceforge..net/auth/subscriptions/
                                <https://sourceforge.net/auth/subscriptions/>
                            
                            ------------------------------------------------------------------------
                            
                            *[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                            2.0.30 no longer builds with MSYS/MinGW*
                            
                            *Status:* open
                            *Group:* v1.0_(example)
                            *Created:* Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                            *Last Updated:* Sat Dec 12, 2020 05:25 PM UTC
                            *Owner:* nobody
                            
                            Newly released version 2.0.30 no longer builds under MSYS/MinGW,
                            see the output below.
                            
                            It looks like there are dllexport/dllimport issues.
                            This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but
                            this file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                            shared between 2 different DLLs - |libOpenIPMIutils| and
                            |libOpenIPMI| - of which the latter depends on the former.
                            I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                            different defines (one for |libOpenIPMIutils| and one for
                            |libOpenIPMI| ), which are only set to |__attribute__
                            ((dllexport))| when the relevant shared library is being built.
                            
                            ~~~
                            libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                            .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o
                            .libs/locks.o .libs/hash.o ..libs/locked_list.o .libs/os_handler.o
                            .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o
                            .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                            --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function |add_after':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined
                            reference to|__imp_ilist_mem_alloc'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function |add_before':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined
                            reference to|__imp_ilist_mem_alloc'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function |alloc_ilist':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                            reference to|__imp_ilist_mem_alloc'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined
                            reference to |__imp_ilist_mem_free'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function|alloc_ilist_iter':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined
                            reference to |__imp_ilist_mem_alloc'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function|free_ilist':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined
                            reference to |__imp_ilist_mem_free'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function|free_ilist_iter':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined
                            reference to |__imp_ilist_mem_free'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function|ilist_delete':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined
                            reference to |__imp_ilist_mem_free'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function|ilist_remove_first':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined
                            reference to |__imp_ilist_mem_free'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function|ilist_remove_last':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined
                            reference to |__imp_ilist_mem_free'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                            more undefined references to|__imp_ilist_mem_free' follow
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function |ilist_add_twoitem':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined
                            reference to|__imp_ilist_mem_alloc'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function |ilist_remove_twoitem':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined
                            reference to|__imp_ilist_mem_free'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function |ilist_first':
                            R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined
                            reference to|__imp_ilist_mem_free'
                            ~~~
                            
                            ------------------------------------------------------------------------
                            
                            Sent from sourceforge.net because you indicated interest in
                            https://sourceforge.net/p/openipmi/bugs/92/
                            <https://sourceforge.net/p/openipmi/bugs/92/>
                            
                            To unsubscribe from further messages, please visit
                            https://sourceforge.net/auth/subscriptions/
                            <https://sourceforge.net/auth/subscriptions/>
                            

                            [bugs:#92] https://sourceforge.net/p/openipmi/bugs/92/ OpenIPMI
                            2.0.30 no longer builds with MSYS/MinGW

                            Status: open
                            Group: v1.0_(example)
                            Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                            Last Updated: Sat Dec 12, 2020 05:25 PM UTC
                            Owner: nobody

                            Newly released version 2.0.30 no longer builds under MSYS/MinGW, see
                            the output below.

                            It looks like there are dllexport/dllimport issues.
                            This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but this
                            file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is shared
                            between 2 different DLLs - |libOpenIPMIutils| and |libOpenIPMI| - of
                            which the latter depends on the former.
                            I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                            different defines (one for |libOpenIPMIutils| and one for
                            |libOpenIPMI| ), which are only set to |attribute ((dllexport))|
                            when the relevant shared library is being built.

                            libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth..o .libs/ipmi_malloc.o
                            .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                            .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2
                            -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                            --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                            R:\winlibs64-9.2..0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                            R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                            R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                            R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                            R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                            R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                            R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                            d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                            .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'


                            Sent from sourceforge.net because you indicated interest in
                            https://sourceforge.net/p/openipmi/bugs/92/
                            https://sourceforge.net/p/openipmi/bugs/92/

                            To unsubscribe from further messages, please visit
                            https://sourceforge.net/auth/subscriptions/
                            https://sourceforge.net/auth/subscriptions/

                             

                            Related

                            Bugs: #92

                            • Corey Minyard

                              Corey Minyard - 2020-12-13

                              On Sun, Dec 13, 2020 at 04:50:30PM -0000, Brecht Sanders wrote:

                              I looked and for example lib/domain.c didn't have my changes. Maybe I
                              was looking in the wrong place?

                              Should I fork it again to be sure?

                              I'm nost sure what is going on. Looking at
                              https://github.com/cminyard/openipmi/blob/master/lib/domain.c, I see:

                              include <stdlib.h></stdlib.h>

                              include <stdint.h></stdint.h>

                              ifdef MINGW32

                              undef __USE_MINGW_ANSI_STDIO //fix wrong definition of PRId64 on MinGW

                              endif

                              include <inttypes.h></inttypes.h>

                              and lots of intptr_t.

                              I'm using the latest MinGW-w64.

                              If you're using the old MinGW it's possible that inet_ntop/inet_pton is
                              not there.

                              Where is the newest one? I used mingw-get-setup.exe on
                              https://osdn.net/projects/mingw/releases/

                              -corey

                              Brecht Sanders
                              Edustria | MailTester.com | WinLibs.com
                              E-mail: brecht@sanders.org brecht@sanders.org

                              On 13/12/2020 17:12, Corey Minyard wrote:

                              On Sun, Dec 13, 2020 at 02:21:23PM -0000, Brecht Sanders wrote:

                              I see a lot of the stuff from my pull request is still missing when I
                              make a new fork of the github repository.
                              
                              Is it possible not everything got merged?
                              

                              I just looked, and it doesn't appear so. I diffed the end if your pull
                              request with where I pulled in your changes, and the only differences
                              were some trailing spaces I removed.

                              I just tried building on MinGW, and it still says inet_ntop isn't
                              defined, but the code you added to fix it is there. I can't find a
                              definition of inet_ntop in anywhere in MinGW.

                              If fails compiling unix/selector.c with a bunch of error.

                              -corey

                              On 12/12/2020 21:28, Corey Minyard wrote:
                              
                                  On Sat, Dec 12, 2020 at 05:23:55PM -0000, Brecht Sanders wrote:
                              
                                  That  fix  didn't do the trick.
                                  I  still  get:
                                  |``
                                  d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ipmi.o:in  function|ipmi_shutdown':
                                  \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:612:
                                  undefined  reference  to  |ipmi_malloc_shutdown'
                                  d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ipmi.o:in  function|ipmi_init':
                                  \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:474:
                                  undefined  reference  to  |ipmi_malloc_init'
                                  d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ipmi.o:ipmi.c:(.rdata$.refptr.ipmi_malloc_log[.refptr.ipmi_malloc_log]+0x0):
                                  undefined  reference  to|ipmi_malloc_log'
                              
                                  Dant, I didn't push to github. I just did that. I can mess with it
                                  this weekend.
                              
                                  |``  Also  I  still  see|#define  O_NONBLOCK
                                  1|in|lib/ipmi_lan.c|and|lib/oem_atca_conn.c`.  That's  not  the  right
                                  way  to  fix  setting  sockets  to  non-blocking  on  Windows.  See  my  pull
                                  request  on  how  to  fix  that.
                              
                                  Oops, that got left in from some hacking I was doing. I've
                                  pulled it
                                  out.
                              
                                  -corey
                              
                                  ------------------------------------------------------------------------
                              
                                  *[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                                  2.0.30  no  longer  builds  with  MSYS/MinGW*
                              
                                  *Status:*  open
                                  *Group:*  v1.0_(example)
                                  *Created:*  Wed  Dec  09,  2020  08:17  AM  UTC  by  Brecht  Sanders
                                  *Last  Updated:*  Sat  Dec  12,  2020  08:59  AM  UTC
                                  *Owner:*  nobody
                              
                                  Newly  released  version  2.0.30  no  longer  builds  under  MSYS/MinGW,
                                  see  the  output  below.
                              
                                  It  looks  like  there  are  dllexport/dllimport  issues.
                                  This  stuff  is  defined  in  |include/OpenIPMI/dllvisibility.h|,  but
                                  this  file,  and  the  symbol  |IPMI_DLL_PUBLIC|  which  it  defines,  is
                                  shared  between  2  different  DLLs  -  |libOpenIPMIutils|  and
                                  |libOpenIPMI|  -  of  which  the  latter  depends  on  the  former.
                                  I  believe  the  solution  would  be  to  split  |IPMI_DLL_PUBLIC|  into  2
                                  different  defines  (one  for  |libOpenIPMIutils|  and  one  for
                                  |libOpenIPMI|  ),  which  are  only  set  to  |__attribute__
                                  ((dllexport))|  when  the  relevant  shared  library  is  being  built.
                              
                                  ~~~
                                  libtool:  link:  x86_64-w64-mingw32-gcc  -shared  .libs/md5.o
                                  .libs/md2.o  .libs/ipmi_auth.o  .libs/ipmi_malloc.o  .libs/ilist.o
                                  .libs/locks.o  .libs/hash.o  .libs/locked_list.o  .libs/os_handler.o
                                  .libs/string.o  -lws2_32  -liphlpapi  -lgdi32  -g  -O2  -o
                                  .libs/libOpenIPMIutils-0.dll  -Wl,--enable-auto-image-base  -Xlinker
                                  --out-implib  -Xlinker  .libs/libOpenIPMIutils.dll.a
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function  |add_after':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:  undefined
                                  reference  to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function  |add_before':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:  undefined
                                  reference  to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function  |alloc_ilist':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66:  undefined
                                  reference  to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72:  undefined
                                  reference  to  |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function|alloc_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89:  undefined
                                  reference  to  |__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function|free_ilist':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:  undefined
                                  reference  to  |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function|free_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:  undefined
                                  reference  to  |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function|ilist_delete':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:  undefined
                                  reference  to  |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function|ilist_remove_first':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:  undefined
                                  reference  to  |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function|ilist_remove_last':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:  undefined
                                  reference  to  |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                  more  undefined  references  to|__imp_ilist_mem_free' follow
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function  |ilist_add_twoitem':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:  undefined
                                  reference  to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function  |ilist_remove_twoitem':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:  undefined
                                  reference  to|__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:  in  function  |ilist_first':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:  undefined
                                  reference  to|__imp_ilist_mem_free'
                                  ~~~
                              
                                  ------------------------------------------------------------------------
                              
                                  Sent  from  sourceforge.net  because  you  indicated  interest  in
                                  https://sourceforge.net/p/openipmi/bugs/92/
                                  <https://sourceforge.net/p/openipmi/bugs/92/>
                              
                                  To  unsubscribe  from  further  messages,  please  visit
                                  https://sourceforge.net/auth/subscriptions/
                                  <https://sourceforge.net/auth/subscriptions/>
                              
                                  ------------------------------------------------------------------------
                              
                                  /[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/>
                                  https://sourceforge.net/p/openipmi/bugs/92/
                                  <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                                  2.0.30 no longer builds with MSYS/MinGW/
                              
                                  /Status:/ open
                                  /Group:/ v1.0_(example)
                                  /Created:/ Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                                  /Last Updated:/ Sat Dec 12, 2020 05:25 PM UTC
                                  /Owner:/ nobody
                              
                                  Newly released version 2.0.30 no longer builds under
                                  MSYS/MinGW, see
                                  the output below.
                              
                                  It looks like there are dllexport/dllimport issues.
                                  This stuff is defined in |include/OpenIPMI/dllvisibility.h|,
                                  but this
                                  file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                                  shared
                                  between 2 different DLLs - |libOpenIPMIutils| and
                                  |libOpenIPMI| - of
                                  which the latter depends on the former.
                                  I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                                  different defines (one for |libOpenIPMIutils| and one for
                                  |libOpenIPMI| ), which are only set to |*attribute*
                                  ((dllexport))|
                                  when the relevant shared library is being built.
                              
                                  libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                                  .libs/md2..o .libs/ipmi_auth.o .libs/ipmi_malloc.o
                                  ..libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                                  ..libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32
                                  -g -O2
                                  -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base
                                  -Xlinker
                                  --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              
                                  ..libs/ilist.o: in function |add_after':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:
                                  undefined reference to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              
                                  ..libs/ilist.o: in function |add_before':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:
                                  undefined reference to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              
                                  ..libs/ilist.o: in function |alloc_ilist':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                                  reference to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined
                                  reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ilist.o: in function|alloc_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined
                                  reference to |__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ilist.o: in function|free_ilist':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:
                                  undefined reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ilist.o: in function|free_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:
                                  undefined reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ilist.o: in function|ilist_delete':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:
                                  undefined reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ilist.o: in function|ilist_remove_first':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:
                                  undefined reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ilist.o: in function|ilist_remove_last':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:
                                  undefined reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  ..libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                  more undefined references to|__imp_ilist_mem_free' follow
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              
                                  ..libs/ilist.o: in function |ilist_add_twoitem':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:
                                  undefined reference to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              
                                  ..libs/ilist.o: in function |ilist_remove_twoitem':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:
                                  undefined reference to|__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              
                                  ..libs/ilist.o: in function |ilist_first':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:
                                  undefined reference to|__imp_ilist_mem_free'
                              
                                  ------------------------------------------------------------------------
                              
                                  Sent from sourceforge.net because you indicated interest in
                                  https://sourceforge..net/p/openipmi/bugs/92/
                                  <https://sourceforge.net/p/openipmi/bugs/92/>
                                  https://sourceforge..net/p/openipmi/bugs/92/
                                  <https://sourceforge.net/p/openipmi/bugs/92/>
                              
                                  To unsubscribe from further messages, please visit
                                  https://sourceforge..net/auth/subscriptions/
                                  <https://sourceforge.net/auth/subscriptions/>
                                  https://sourceforge..net/auth/subscriptions/
                                  <https://sourceforge.net/auth/subscriptions/>
                              
                              ------------------------------------------------------------------------
                              
                              *[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                              2.0.30 no longer builds with MSYS/MinGW*
                              
                              *Status:* open
                              *Group:* v1.0_(example)
                              *Created:* Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                              *Last Updated:* Sat Dec 12, 2020 05:25 PM UTC
                              *Owner:* nobody
                              
                              Newly released version 2.0.30 no longer builds under MSYS/MinGW,
                              see the output below.
                              
                              It looks like there are dllexport/dllimport issues.
                              This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but
                              this file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                              shared between 2 different DLLs - |libOpenIPMIutils| and
                              |libOpenIPMI| - of which the latter depends on the former.
                              I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                              different defines (one for |libOpenIPMIutils| and one for
                              |libOpenIPMI| ), which are only set to |__attribute__
                              ((dllexport))| when the relevant shared library is being built.
                              
                              ~~~
                              libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                              .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o
                              .libs/locks.o .libs/hash.o ..libs/locked_list.o .libs/os_handler.o
                              .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o
                              .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                              --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function |add_after':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined
                              reference to|__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function |add_before':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined
                              reference to|__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function |alloc_ilist':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                              reference to|__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined
                              reference to |__imp_ilist_mem_free'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function|alloc_ilist_iter':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined
                              reference to |__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function|free_ilist':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined
                              reference to |__imp_ilist_mem_free'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function|free_ilist_iter':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined
                              reference to |__imp_ilist_mem_free'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function|ilist_delete':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined
                              reference to |__imp_ilist_mem_free'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function|ilist_remove_first':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined
                              reference to |__imp_ilist_mem_free'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function|ilist_remove_last':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined
                              reference to |__imp_ilist_mem_free'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                              more undefined references to|__imp_ilist_mem_free' follow
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function |ilist_add_twoitem':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined
                              reference to|__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function |ilist_remove_twoitem':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined
                              reference to|__imp_ilist_mem_free'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function |ilist_first':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined
                              reference to|__imp_ilist_mem_free'
                              ~~~
                              
                              ------------------------------------------------------------------------
                              
                              Sent from sourceforge.net because you indicated interest in
                              https://sourceforge.net/p/openipmi/bugs/92/
                              <https://sourceforge.net/p/openipmi/bugs/92/>
                              
                              To unsubscribe from further messages, please visit
                              https://sourceforge.net/auth/subscriptions/
                              <https://sourceforge.net/auth/subscriptions/>
                              

                              [bugs:#92] https://sourceforge.net/p/openipmi/bugs/92/ OpenIPMI
                              2.0.30 no longer builds with MSYS/MinGW

                              Status: open
                              Group: v1.0_(example)
                              Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                              Last Updated: Sat Dec 12, 2020 05:25 PM UTC
                              Owner: nobody

                              Newly released version 2.0.30 no longer builds under MSYS/MinGW, see
                              the output below.

                              It looks like there are dllexport/dllimport issues.
                              This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but this
                              file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is shared
                              between 2 different DLLs - |libOpenIPMIutils| and |libOpenIPMI| - of
                              which the latter depends on the former.
                              I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                              different defines (one for |libOpenIPMIutils| and one for
                              |libOpenIPMI| ), which are only set to |attribute ((dllexport))|
                              when the relevant shared library is being built.

                              libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth..o .libs/ipmi_malloc.o
                              .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                              .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2
                              -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                              --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                              R:\winlibs64-9.2..0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                              R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                              R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                              R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                              R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                              R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                              R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                              .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'


                              Sent from sourceforge.net because you indicated interest in
                              https://sourceforge.net/p/openipmi/bugs/92/
                              https://sourceforge.net/p/openipmi/bugs/92/

                              To unsubscribe from further messages, please visit
                              https://sourceforge.net/auth/subscriptions/
                              https://sourceforge.net/auth/subscriptions/


                              ** [bugs:#92] OpenIPMI 2.0.30 no longer builds with MSYS/MinGW**

                              Status: open
                              Group: v1.0_(example)
                              Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                              Last Updated: Sat Dec 12, 2020 05:25 PM UTC
                              Owner: nobody

                              Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

                              It looks like there are dllexport/dllimport issues.
                              This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
                              I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

                              ~~~
                              libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                              R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                              d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'
                              ~~~


                              Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openipmi/bugs/92/

                              To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

                               

                              Related

                              Bugs: #92

                              • Brecht Sanders

                                Brecht Sanders - 2020-12-13

                                I use the latest build from http://winlibs.com/ http://winlibs.com/

                                There is also a MinGW-w64 that you can install via the package manager
                                of MSYS2 from https://sourceforge.net/projects/msys2/files/Base/
                                https://sourceforge.net/projects/msys2/files/Base/

                                I will try to fork again to see if it's okay then.

                                On 13/12/2020 21:09, Corey Minyard wrote:

                                On Sun, Dec 13, 2020 at 04:50:30PM -0000, Brecht Sanders wrote:

                                I looked and for example lib/domain.c didn't have my changes. Maybe I
                                was looking in the wrong place?
                                
                                Should I fork it again to be sure?
                                

                                I'm nost sure what is going on. Looking at
                                https://github.com/cminyard/openipmi/blob/master/lib/domain..c
                                https://github.com/cminyard/openipmi/blob/master/lib/domain.c, I see:

                                include <stdlib.h></stdlib.h>

                                include <stdint.h></stdint.h>

                                ifdef MINGW32

                                undef __USE_MINGW_ANSI_STDIO //fix wrong definition of PRId64 on MinGW

                                endif

                                include <inttypes.h></inttypes.h>

                                and lots of intptr_t.

                                I'm using the latest MinGW-w64.
                                
                                If you're using the old MinGW it's possible that
                                inet_ntop/inet_pton is
                                not there.
                                

                                Where is the newest one? I used mingw-get-setup.exe on
                                https://osdn.net/projects/mingw/releases/
                                https://osdn.net/projects/mingw/releases/

                                -corey

                                /Brecht Sanders/
                                Edustria | MailTester.com | WinLibs.com
                                E-mail: brecht@sanders.org brecht@sanders.org
                                <mailto:brecht@sanders.org>
                                
                                On 13/12/2020 17:12, Corey Minyard wrote:
                                
                                    On Sun, Dec 13, 2020 at 02:21:23PM -0000, Brecht Sanders wrote:
                                
                                    I  see  a  lot  of  the  stuff  from  my  pull  request  is  still  missing  when  I
                                    make  a  new  fork  of  the  github  repository.
                                
                                    Is  it  possible  not  everything  got  merged?
                                
                                    I just looked, and it doesn't appear so. I diffed the end if
                                    your pull
                                    request with where I pulled in your changes, and the only
                                    differences
                                    were some trailing spaces I removed.
                                
                                    I just tried building on MinGW, and it still says inet_ntop isn't
                                    defined, but the code you added to fix it is there. I can't find a
                                    definition of inet_ntop in anywhere in MinGW.
                                
                                    If fails compiling unix/selector.c with a bunch of error.
                                
                                    -corey
                                
                                    On  12/12/2020  21:28,Corey  Minyard  wrote:
                                
                                         On  Sat,Dec  12,2020  at  05:23:55PM  -0000,Brecht  Sanders  wrote:
                                
                                         That   fix   didn't do the trick.
                                         I   still   get:
                                         |``
                                         d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ipmi.o:in   function|ipmi_shutdown':
                                         \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:612:
                                         undefined   reference   to   |ipmi_malloc_shutdown'
                                         d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ipmi.o:in   function|ipmi_init':
                                         \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:474:
                                         undefined   reference   to   |ipmi_malloc_init'
                                         d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ipmi.o:ipmi.c:(.rdata$.refptr.ipmi_malloc_log[.refptr.ipmi_malloc_log]+0x0):
                                         undefined   reference   to|ipmi_malloc_log'
                                
                                         Dant,I  didn't push to github. I just did that. I can mess with it
                                         this  weekend.
                                
                                         |``Also   I   still   see|#define   O_NONBLOCK
                                         1|in|lib/ipmi_lan.c|and|lib/oem_atca_conn.c`.That's not the right
                                         way   to   fix   setting   sockets   to   non-blocking   on   Windows.See   my   pull
                                         request   on   how   to   fix   that.
                                
                                         Oops,that  got  left  in  from  some  hacking  I  was  doing.I've
                                         pulled  it
                                         out.
                                
                                         -corey
                                
                                         ------------------------------------------------------------------------
                                
                                         *[bugs:#92]<https://sourceforge.net/p/openipmi/bugs/92/>  OpenIPMI
                                         2.0.30   no   longer   builds   with   MSYS/MinGW*
                                
                                         *Status:*   open
                                         *Group:*   v1.0_(example)
                                         *Created:*   Wed   Dec   09,2020   08:17   AM   UTC   by   Brecht   Sanders
                                         *Last   Updated:*   Sat   Dec   12,2020   08:59   AM   UTC
                                         *Owner:*   nobody
                                
                                         Newly   released   version   2.0.30   no   longer   builds   under   MSYS/MinGW,
                                         see   the   output   below.
                                
                                         It   looks   like   there   are   dllexport/dllimport   issues.
                                         This   stuff   is   defined   in   |include/OpenIPMI/dllvisibility.h|,but
                                         this   file,and   the   symbol   |IPMI_DLL_PUBLIC|   which   it   defines,is
                                         shared   between   2   different   DLLs   -   |libOpenIPMIutils|   and
                                         |libOpenIPMI|   -   of   which   the   latter   depends   on   the   former.
                                         I   believe   the   solution   would   be   to   split   |IPMI_DLL_PUBLIC|   into   2
                                         different   defines   (one   for   |libOpenIPMIutils|   and   one   for
                                         |libOpenIPMI|   ),which   are   only   set   to   |__attribute__
                                         ((dllexport))|   when   the   relevant   shared   library   is   being   built.
                                
                                         ~~~
                                         libtool:link:x86_64-w64-mingw32-gcc   -shared   .libs/md5.o
                                         .libs/md2.o   .libs/ipmi_auth.o   .libs/ipmi_malloc.o   .libs/ilist.o
                                         .libs/locks.o   .libs/hash.o   .libs/locked_list.o   .libs/os_handler.o
                                         .libs/string.o   -lws2_32   -liphlpapi   -lgdi32   -g   -O2   -o
                                         .libs/libOpenIPMIutils-0.dll   -Wl,--enable-auto-image-base   -Xlinker
                                         --out-implib   -Xlinker   .libs/libOpenIPMIutils.dll.a
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function   |add_after':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:undefined
                                         reference   to|__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function   |add_before':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:undefined
                                         reference   to|__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function   |alloc_ilist':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66:undefined
                                         reference   to|__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72:undefined
                                         reference   to   |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function|alloc_ilist_iter':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89:undefined
                                         reference   to   |__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function|free_ilist':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:undefined
                                         reference   to   |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function|free_ilist_iter':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:undefined
                                         reference   to   |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function|ilist_delete':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:undefined
                                         reference   to   |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function|ilist_remove_first':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:undefined
                                         reference   to   |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function|ilist_remove_last':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:undefined
                                         reference   to   |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                         more   undefined   references   to|__imp_ilist_mem_free'follow
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function   |ilist_add_twoitem':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:undefined
                                         reference   to|__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function   |ilist_remove_twoitem':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:undefined
                                         reference   to|__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                         .libs/ilist.o:in   function   |ilist_first':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:undefined
                                         reference   to|__imp_ilist_mem_free'
                                         ~~~
                                
                                         ------------------------------------------------------------------------
                                
                                         Sent   from   sourceforge.net   because   you   indicated   interest   in
                                         https://sourceforge.net/p/openipmi/bugs/92/
                                         <https://sourceforge.net/p/openipmi/bugs/92/>
                                
                                         To   unsubscribe   from   further   messages,please   visit
                                         https://sourceforge.net/auth/subscriptions/
                                         <https://sourceforge.net/auth/subscriptions/>
                                
                                         ------------------------------------------------------------------------
                                
                                         /[bugs:#92]<https://sourceforge.net/p/openipmi/bugs/92/>
                                         https://sourceforge.net/p/openipmi/bugs/92/
                                         <https://sourceforge.net/p/openipmi/bugs/92/>  OpenIPMI
                                         2.0.30  no  longer  builds  with  MSYS/MinGW/
                                
                                         /Status:/  open
                                         /Group:/  v1.0_(example)
                                         /Created:/  Wed  Dec  09,2020  08:17  AM  UTC  by  Brecht  Sanders
                                         /Last  Updated:/  Sat  Dec  12,2020  05:25  PM  UTC
                                         /Owner:/  nobody
                                
                                         Newly  released  version  2.0.30  no  longer  builds  under
                                         MSYS/MinGW,see
                                         the  output  below.
                                
                                         It  looks  like  there  are  dllexport/dllimport  issues.
                                         This  stuff  is  defined  in  |include/OpenIPMI/dllvisibility.h|,
                                         but  this
                                         file,and  the  symbol  |IPMI_DLL_PUBLIC|  which  it  defines,is
                                         shared
                                         between  2  different  DLLs  -  |libOpenIPMIutils|  and
                                         |libOpenIPMI|  -  of
                                         which  the  latter  depends  on  the  former.
                                         I  believe  the  solution  would  be  to  split  |IPMI_DLL_PUBLIC|  into  2
                                         different  defines  (one  for  |libOpenIPMIutils|  and  one  for
                                         |libOpenIPMI|  ),which  are  only  set  to  |*attribute*
                                         ((dllexport))|
                                         when  the  relevant  shared  library  is  being  built.
                                
                                         libtool:link:x86_64-w64-mingw32-gcc  -shared  .libs/md5.o
                                         .libs/md2..o  .libs/ipmi_auth.o  .libs/ipmi_malloc.o
                                         ..libs/ilist.o  .libs/locks.o  .libs/hash.o  .libs/locked_list.o
                                         ..libs/os_handler.o  .libs/string.o  -lws2_32  -liphlpapi  -lgdi32
                                         -g  -O2
                                         -o  .libs/libOpenIPMIutils-0.dll  -Wl,--enable-auto-image-base
                                         -Xlinker
                                         --out-implib  -Xlinker  .libs/libOpenIPMIutils.dll.a
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                         ..libs/ilist.o:in  function  |add_after':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:
                                         undefined  reference  to|__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                         ..libs/ilist.o:in  function  |add_before':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:
                                         undefined  reference  to|__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                         ..libs/ilist.o:in  function  |alloc_ilist':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66:undefined
                                         reference  to|__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72:undefined
                                         reference  to  |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ilist.o:in  function|alloc_ilist_iter':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89:undefined
                                         reference  to  |__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ilist.o:in  function|free_ilist':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:
                                         undefined  reference  to  |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ilist.o:in  function|free_ilist_iter':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:
                                         undefined  reference  to  |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ilist.o:in  function|ilist_delete':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:
                                         undefined  reference  to  |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ilist.o:in  function|ilist_remove_first':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:
                                         undefined  reference  to  |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ilist.o:in  function|ilist_remove_last':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:
                                         undefined  reference  to  |__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                         ..libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                         more  undefined  references  to|__imp_ilist_mem_free'follow
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                         ..libs/ilist.o:in  function  |ilist_add_twoitem':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:
                                         undefined  reference  to|__imp_ilist_mem_alloc'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                         ..libs/ilist.o:in  function  |ilist_remove_twoitem':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:
                                         undefined  reference  to|__imp_ilist_mem_free'
                                         d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                         ..libs/ilist.o:in  function  |ilist_first':
                                         R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:
                                         undefined  reference  to|__imp_ilist_mem_free'
                                
                                         ------------------------------------------------------------------------
                                
                                         Sent  from  sourceforge.net  because  you  indicated  interest  in
                                         https://sourceforge..net/p/openipmi/bugs/92/
                                         <https://sourceforge.net/p/openipmi/bugs/92/>
                                         https://sourceforge..net/p/openipmi/bugs/92/
                                         <https://sourceforge.net/p/openipmi/bugs/92/>
                                
                                         To  unsubscribe  from  further  messages,please  visit
                                         https://sourceforge..net/auth/subscriptions/
                                         <https://sourceforge.net/auth/subscriptions/>
                                         https://sourceforge..net/auth/subscriptions/
                                         <https://sourceforge.net/auth/subscriptions/>
                                
                                    ------------------------------------------------------------------------
                                
                                    *[bugs:#92]<https://sourceforge.net/p/openipmi/bugs/92/>  OpenIPMI
                                    2.0.30  no  longer  builds  with  MSYS/MinGW*
                                
                                    *Status:*  open
                                    *Group:*  v1.0_(example)
                                    *Created:*  Wed  Dec  09,2020  08:17  AM  UTC  by  Brecht  Sanders
                                    *Last  Updated:*  Sat  Dec  12,2020  05:25  PM  UTC
                                    *Owner:*  nobody
                                
                                    Newly  released  version  2.0.30  no  longer  builds  under  MSYS/MinGW,
                                    see  the  output  below.
                                
                                    It  looks  like  there  are  dllexport/dllimport  issues.
                                    This  stuff  is  defined  in  |include/OpenIPMI/dllvisibility.h|,but
                                    this  file,and  the  symbol  |IPMI_DLL_PUBLIC|  which  it  defines,is
                                    shared  between  2  different  DLLs  -  |libOpenIPMIutils|  and
                                    |libOpenIPMI|  -  of  which  the  latter  depends  on  the  former.
                                    I  believe  the  solution  would  be  to  split  |IPMI_DLL_PUBLIC|  into  2
                                    different  defines  (one  for  |libOpenIPMIutils|  and  one  for
                                    |libOpenIPMI|  ),which  are  only  set  to  |__attribute__
                                    ((dllexport))|  when  the  relevant  shared  library  is  being  built.
                                
                                    ~~~
                                    libtool:link:x86_64-w64-mingw32-gcc  -shared  .libs/md5.o
                                    ..libs/md2.o  .libs/ipmi_auth.o  .libs/ipmi_malloc.o  .libs/ilist.o
                                    ..libs/locks.o  .libs/hash.o  ..libs/locked_list.o  .libs/os_handler..o
                                    ..libs/string.o  -lws2_32  -liphlpapi  -lgdi32  -g  -O2  -o
                                    ..libs/libOpenIPMIutils-0.dll  -Wl,--enable-auto-image-base  -Xlinker
                                    --out-implib  -Xlinker  .libs/libOpenIPMIutils.dll.a
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function  |add_after':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:undefined
                                    reference  to|__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function  |add_before':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:undefined
                                    reference  to|__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function  |alloc_ilist':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66:undefined
                                    reference  to|__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72:undefined
                                    reference  to  |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function|alloc_ilist_iter':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89:undefined
                                    reference  to  |__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function|free_ilist':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:undefined
                                    reference  to  |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function|free_ilist_iter':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:undefined
                                    reference  to  |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function|ilist_delete':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:undefined
                                    reference  to  |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function|ilist_remove_first':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:undefined
                                    reference  to  |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function|ilist_remove_last':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:undefined
                                    reference  to  |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                    more  undefined  references  to|__imp_ilist_mem_free'follow
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function  |ilist_add_twoitem':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:undefined
                                    reference  to|__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function  |ilist_remove_twoitem':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:undefined
                                    reference  to|__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:in  function  |ilist_first':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:undefined
                                    reference  to|__imp_ilist_mem_free'
                                    ~~~
                                
                                    ------------------------------------------------------------------------
                                
                                    Sent  from  sourceforge.net  because  you  indicated  interest  in
                                    https://sourceforge.net/p/openipmi/bugs/92/
                                    <https://sourceforge.net/p/openipmi/bugs/92/>
                                
                                    To  unsubscribe  from  further  messages,please  visit
                                    https://sourceforge.net/auth/subscriptions/
                                    <https://sourceforge.net/auth/subscriptions/>
                                
                                    ------------------------------------------------------------------------
                                
                                    /[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/>
                                    https://sourceforge.net/p/openipmi/bugs/92/
                                    <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                                    2.0.30 no longer builds with MSYS/MinGW/
                                
                                    /Status:/ open
                                    /Group:/ v1.0_(example)
                                    /Created:/ Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                                    /Last Updated:/ Sat Dec 12, 2020 05:25 PM UTC
                                    /Owner:/ nobody
                                
                                    Newly released version 2.0.30 no longer builds under
                                    MSYS/MinGW, see
                                    the output below.
                                
                                    It looks like there are dllexport/dllimport issues.
                                    This stuff is defined in |include/OpenIPMI/dllvisibility.h|,
                                    but this
                                    file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                                    shared
                                    between 2 different DLLs - |libOpenIPMIutils| and
                                    |libOpenIPMI| - of
                                    which the latter depends on the former.
                                    I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                                    different defines (one for |libOpenIPMIutils| and one for
                                    |libOpenIPMI| ), which are only set to |*attribute*
                                    ((dllexport))|
                                    when the relevant shared library is being built.
                                
                                    libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                                    .libs/md2..o .libs/ipmi_auth..o .libs/ipmi_malloc.o
                                    ..libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                                    ..libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32
                                    -g -O2
                                    -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base
                                    -Xlinker
                                    --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                    ..libs/ilist.o: in function |add_after':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:
                                    undefined reference to|__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                    ..libs/ilist.o: in function |add_before':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:
                                    undefined reference to|__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                    ..libs/ilist.o: in function |alloc_ilist':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                                    reference to|__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                    R:\winlibs64-9.2..0\OpenIPMI-2.0.30\utils/ilist.c:72:
                                    undefined reference to |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o: in function|alloc_ilist_iter':
                                    R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:89:
                                    undefined reference to |__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o: in function|free_ilist':
                                    R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:103:
                                    undefined reference to |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o: in function|free_ilist_iter':
                                    R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:117:
                                    undefined reference to |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o: in function|ilist_delete':
                                    R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:252:
                                    undefined reference to |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o: in function|ilist_remove_first':
                                    R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:377:
                                    undefined reference to |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o: in function|ilist_remove_last':
                                    R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:395:
                                    undefined reference to |__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                    ..libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                    more undefined references to|__imp_ilist_mem_free' follow
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                    ..libs/ilist.o: in function |ilist_add_twoitem':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:
                                    undefined reference to|__imp_ilist_mem_alloc'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                    ..libs/ilist.o: in function |ilist_remove_twoitem':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:
                                    undefined reference to|__imp_ilist_mem_free'
                                    d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                
                                    ..libs/ilist.o: in function |ilist_first':
                                    R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:
                                    undefined reference to|__imp_ilist_mem_free'
                                
                                    ------------------------------------------------------------------------
                                
                                    Sent from sourceforge.net because you indicated interest in
                                    https://sourceforge..net/p/openipmi/bugs/92/
                                    <https://sourceforge.net/p/openipmi/bugs/92/>
                                    https://sourceforge..net/p/openipmi/bugs/92/
                                    <https://sourceforge.net/p/openipmi/bugs/92/>
                                
                                    To unsubscribe from further messages, please visit
                                    https://sourceforge..net/auth/subscriptions/
                                    <https://sourceforge.net/auth/subscriptions/>
                                    https://sourceforge..net/auth/subscriptions/
                                    <https://sourceforge.net/auth/subscriptions/>
                                
                                ------------------------------------------------------------------------
                                
                                *[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                                2.0.30 no longer builds with MSYS/MinGW*
                                
                                *Status:* open
                                *Group:* v1.0_(example)
                                *Created:* Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                                *Last Updated:* Sat Dec 12, 2020 05:25 PM UTC
                                *Owner:* nobody
                                
                                Newly released version 2.0.30 no longer builds under MSYS/MinGW,
                                see the output below.
                                
                                It looks like there are dllexport/dllimport issues.
                                This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but
                                this file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                                shared between 2 different DLLs - |libOpenIPMIutils| and
                                |libOpenIPMI| - of which the latter depends on the former.
                                I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                                different defines (one for |libOpenIPMIutils| and one for
                                |libOpenIPMI| ), which are only set to |__attribute__
                                ((dllexport))| when the relevant shared library is being built.
                                
                                ~~~
                                libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                                .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o
                                .libs/locks.o .libs/hash.o ..libs/locked_list.o .libs/os_handler.o
                                .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o
                                .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                                --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function |add_after':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined
                                reference to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function |add_before':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined
                                reference to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function |alloc_ilist':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                                reference to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined
                                reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function|alloc_ilist_iter':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined
                                reference to |__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function|free_ilist':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined
                                reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function|free_ilist_iter':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined
                                reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function|ilist_delete':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined
                                reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function|ilist_remove_first':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined
                                reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function|ilist_remove_last':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined
                                reference to |__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                more undefined references to|__imp_ilist_mem_free' follow
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function |ilist_add_twoitem':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined
                                reference to|__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function |ilist_remove_twoitem':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined
                                reference to|__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function |ilist_first':
                                R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined
                                reference to|__imp_ilist_mem_free'
                                ~~~
                                
                                ------------------------------------------------------------------------
                                
                                Sent from sourceforge.net because you indicated interest in
                                https://sourceforge.net/p/openipmi/bugs/92/
                                <https://sourceforge.net/p/openipmi/bugs/92/>
                                
                                To unsubscribe from further messages, please visit
                                https://sourceforge.net/auth/subscriptions/
                                <https://sourceforge.net/auth/subscriptions/>
                                

                                [bugs:#92] https://sourceforge.net/p/openipmi/bugs/92/ OpenIPMI
                                2.0.30 no longer builds with MSYS/MinGW

                                Status: open
                                Group: v1.0_(example)
                                Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                                Last Updated: Sat Dec 12, 2020 05:25 PM UTC
                                Owner: nobody

                                Newly released version 2.0.30 no longer builds under MSYS/MinGW, see
                                the output below.

                                It looks like there are dllexport/dllimport issues.
                                This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but this
                                file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is shared
                                between 2 different DLLs - |libOpenIPMIutils| and |libOpenIPMI| - of
                                which the latter depends on the former.
                                I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                                different defines (one for |libOpenIPMIutils| and one for
                                |libOpenIPMI| ), which are only set to |attribute ((dllexport))|
                                when the relevant shared library is being built.

                                libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth..o .libs/ipmi_malloc.o
                                .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                                .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2
                                -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                                --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                R:\winlibs64-9.2..0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                                R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                                R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                                R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                                R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                                R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                                R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                                d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'


                                Sent from sourceforge.net because you indicated interest in
                                https://sourceforge.net/p/openipmi/bugs/92/
                                https://sourceforge.net/p/openipmi/bugs/92/

                                To unsubscribe from further messages, please visit
                                https://sourceforge.net/auth/subscriptions/
                                https://sourceforge.net/auth/subscriptions/

                                 

                                Related

                                Bugs: #92

                                • Corey Minyard

                                  Corey Minyard - 2020-12-18

                                  On Sun, Dec 13, 2020 at 08:25:30PM -0000, Brecht Sanders wrote:

                                  I use the latest build from http://winlibs.com/ http://winlibs.com/

                                  There is also a MinGW-w64 that you can install via the package manager
                                  of MSYS2 from https://sourceforge.net/projects/msys2/files/Base/
                                  https://sourceforge.net/projects/msys2/files/Base/

                                  I have this all installed and working. I've updated OpenIPMI so it
                                  compiles properly. It was quite a job, but it's done.

                                  Except that it doesn't work. It's getting a bogus return code from
                                  getaddrinfo() in lib/ipmi_lan.c. The data going in looks correct.

                                  -corey

                                  I will try to fork again to see if it's okay then.

                                  On 13/12/2020 21:09, Corey Minyard wrote:

                                  On Sun, Dec 13, 2020 at 04:50:30PM -0000, Brecht Sanders wrote:

                                  I looked and for example lib/domain.c didn't have my changes. Maybe I
                                  was looking in the wrong place?
                                  
                                  Should I fork it again to be sure?
                                  

                                  I'm nost sure what is going on. Looking at
                                  https://github.com/cminyard/openipmi/blob/master/lib/domain..c
                                  https://github.com/cminyard/openipmi/blob/master/lib/domain.c, I see:

                                  include <stdlib.h></stdlib.h>

                                  include <stdint.h></stdint.h>

                                  ifdef MINGW32

                                  undef __USE_MINGW_ANSI_STDIO //fix wrong definition of PRId64 on MinGW

                                  endif

                                  include <inttypes.h></inttypes.h>

                                  and lots of intptr_t.

                                  I'm using the latest MinGW-w64.
                                  
                                  If you're using the old MinGW it's possible that
                                  inet_ntop/inet_pton is
                                  not there.
                                  

                                  Where is the newest one? I used mingw-get-setup.exe on
                                  https://osdn.net/projects/mingw/releases/
                                  https://osdn.net/projects/mingw/releases/

                                  -corey

                                  /Brecht Sanders/
                                  Edustria | MailTester.com | WinLibs.com
                                  E-mail: brecht@sanders.org brecht@sanders.org
                                  <mailto:brecht@sanders.org>
                                  
                                  On 13/12/2020 17:12, Corey Minyard wrote:
                                  
                                      On Sun, Dec 13, 2020 at 02:21:23PM -0000, Brecht Sanders wrote:
                                  
                                      I  see  a  lot  of  the  stuff  from  my  pull  request  is  still  missing  when  I
                                      make  a  new  fork  of  the  github  repository.
                                  
                                      Is  it  possible  not  everything  got  merged?
                                  
                                      I just looked, and it doesn't appear so. I diffed the end if
                                      your pull
                                      request with where I pulled in your changes, and the only
                                      differences
                                      were some trailing spaces I removed.
                                  
                                      I just tried building on MinGW, and it still says inet_ntop isn't
                                      defined, but the code you added to fix it is there. I can't find a
                                      definition of inet_ntop in anywhere in MinGW.
                                  
                                      If fails compiling unix/selector.c with a bunch of error.
                                  
                                      -corey
                                  
                                      On  12/12/2020  21:28,Corey  Minyard  wrote:
                                  
                                           On  Sat,Dec  12,2020  at  05:23:55PM  -0000,Brecht  Sanders  wrote:
                                  
                                           That   fix   didn't do the trick.
                                           I   still   get:
                                           |``
                                           d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ipmi.o:in   function|ipmi_shutdown':
                                           \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:612:
                                           undefined   reference   to   |ipmi_malloc_shutdown'
                                           d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ipmi.o:in   function|ipmi_init':
                                           \SERVER\users\brecht\sources\CPP_forks_\OpenIPMI\lib/ipmi.c:474:
                                           undefined   reference   to   |ipmi_malloc_init'
                                           d:/prog/winlibs64-10.2.0-8.0.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ipmi.o:ipmi.c:(.rdata$.refptr.ipmi_malloc_log[.refptr.ipmi_malloc_log]+0x0):
                                           undefined   reference   to|ipmi_malloc_log'
                                  
                                           Dant,I  didn't push to github. I just did that. I can mess with it
                                           this  weekend.
                                  
                                           |``Also   I   still   see|#define   O_NONBLOCK
                                           1|in|lib/ipmi_lan.c|and|lib/oem_atca_conn.c`.That's not the right
                                           way   to   fix   setting   sockets   to   non-blocking   on   Windows.See   my   pull
                                           request   on   how   to   fix   that.
                                  
                                           Oops,that  got  left  in  from  some  hacking  I  was  doing.I've
                                           pulled  it
                                           out.
                                  
                                           -corey
                                  
                                           ------------------------------------------------------------------------
                                  
                                           *[bugs:#92]<https://sourceforge.net/p/openipmi/bugs/92/>  OpenIPMI
                                           2.0.30   no   longer   builds   with   MSYS/MinGW*
                                  
                                           *Status:*   open
                                           *Group:*   v1.0_(example)
                                           *Created:*   Wed   Dec   09,2020   08:17   AM   UTC   by   Brecht   Sanders
                                           *Last   Updated:*   Sat   Dec   12,2020   08:59   AM   UTC
                                           *Owner:*   nobody
                                  
                                           Newly   released   version   2.0.30   no   longer   builds   under   MSYS/MinGW,
                                           see   the   output   below.
                                  
                                           It   looks   like   there   are   dllexport/dllimport   issues.
                                           This   stuff   is   defined   in   |include/OpenIPMI/dllvisibility.h|,but
                                           this   file,and   the   symbol   |IPMI_DLL_PUBLIC|   which   it   defines,is
                                           shared   between   2   different   DLLs   -   |libOpenIPMIutils|   and
                                           |libOpenIPMI|   -   of   which   the   latter   depends   on   the   former.
                                           I   believe   the   solution   would   be   to   split   |IPMI_DLL_PUBLIC|   into   2
                                           different   defines   (one   for   |libOpenIPMIutils|   and   one   for
                                           |libOpenIPMI|   ),which   are   only   set   to   |__attribute__
                                           ((dllexport))|   when   the   relevant   shared   library   is   being   built.
                                  
                                           ~~~
                                           libtool:link:x86_64-w64-mingw32-gcc   -shared   .libs/md5.o
                                           .libs/md2.o   .libs/ipmi_auth.o   .libs/ipmi_malloc.o   .libs/ilist.o
                                           .libs/locks.o   .libs/hash.o   .libs/locked_list.o   .libs/os_handler.o
                                           .libs/string.o   -lws2_32   -liphlpapi   -lgdi32   -g   -O2   -o
                                           .libs/libOpenIPMIutils-0.dll   -Wl,--enable-auto-image-base   -Xlinker
                                           --out-implib   -Xlinker   .libs/libOpenIPMIutils.dll.a
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function   |add_after':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:undefined
                                           reference   to|__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function   |add_before':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:undefined
                                           reference   to|__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function   |alloc_ilist':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66:undefined
                                           reference   to|__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72:undefined
                                           reference   to   |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function|alloc_ilist_iter':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89:undefined
                                           reference   to   |__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function|free_ilist':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:undefined
                                           reference   to   |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function|free_ilist_iter':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:undefined
                                           reference   to   |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function|ilist_delete':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:undefined
                                           reference   to   |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function|ilist_remove_first':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:undefined
                                           reference   to   |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function|ilist_remove_last':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:undefined
                                           reference   to   |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                           more   undefined   references   to|__imp_ilist_mem_free'follow
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function   |ilist_add_twoitem':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:undefined
                                           reference   to|__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function   |ilist_remove_twoitem':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:undefined
                                           reference   to|__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                           .libs/ilist.o:in   function   |ilist_first':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:undefined
                                           reference   to|__imp_ilist_mem_free'
                                           ~~~
                                  
                                           ------------------------------------------------------------------------
                                  
                                           Sent   from   sourceforge.net   because   you   indicated   interest   in
                                           https://sourceforge.net/p/openipmi/bugs/92/
                                           <https://sourceforge.net/p/openipmi/bugs/92/>
                                  
                                           To   unsubscribe   from   further   messages,please   visit
                                           https://sourceforge.net/auth/subscriptions/
                                           <https://sourceforge.net/auth/subscriptions/>
                                  
                                           ------------------------------------------------------------------------
                                  
                                           /[bugs:#92]<https://sourceforge.net/p/openipmi/bugs/92/>
                                           https://sourceforge.net/p/openipmi/bugs/92/
                                           <https://sourceforge.net/p/openipmi/bugs/92/>  OpenIPMI
                                           2.0.30  no  longer  builds  with  MSYS/MinGW/
                                  
                                           /Status:/  open
                                           /Group:/  v1.0_(example)
                                           /Created:/  Wed  Dec  09,2020  08:17  AM  UTC  by  Brecht  Sanders
                                           /Last  Updated:/  Sat  Dec  12,2020  05:25  PM  UTC
                                           /Owner:/  nobody
                                  
                                           Newly  released  version  2.0.30  no  longer  builds  under
                                           MSYS/MinGW,see
                                           the  output  below.
                                  
                                           It  looks  like  there  are  dllexport/dllimport  issues.
                                           This  stuff  is  defined  in  |include/OpenIPMI/dllvisibility.h|,
                                           but  this
                                           file,and  the  symbol  |IPMI_DLL_PUBLIC|  which  it  defines,is
                                           shared
                                           between  2  different  DLLs  -  |libOpenIPMIutils|  and
                                           |libOpenIPMI|  -  of
                                           which  the  latter  depends  on  the  former.
                                           I  believe  the  solution  would  be  to  split  |IPMI_DLL_PUBLIC|  into  2
                                           different  defines  (one  for  |libOpenIPMIutils|  and  one  for
                                           |libOpenIPMI|  ),which  are  only  set  to  |*attribute*
                                           ((dllexport))|
                                           when  the  relevant  shared  library  is  being  built.
                                  
                                           libtool:link:x86_64-w64-mingw32-gcc  -shared  .libs/md5.o
                                           .libs/md2..o  .libs/ipmi_auth.o  .libs/ipmi_malloc.o
                                           ..libs/ilist.o  .libs/locks.o  .libs/hash.o  .libs/locked_list.o
                                           ..libs/os_handler.o  .libs/string.o  -lws2_32  -liphlpapi  -lgdi32
                                           -g  -O2
                                           -o  .libs/libOpenIPMIutils-0.dll  -Wl,--enable-auto-image-base
                                           -Xlinker
                                           --out-implib  -Xlinker  .libs/libOpenIPMIutils.dll.a
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                           ..libs/ilist.o:in  function  |add_after':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:
                                           undefined  reference  to|__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                           ..libs/ilist.o:in  function  |add_before':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:
                                           undefined  reference  to|__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                           ..libs/ilist.o:in  function  |alloc_ilist':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66:undefined
                                           reference  to|__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72:undefined
                                           reference  to  |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ilist.o:in  function|alloc_ilist_iter':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89:undefined
                                           reference  to  |__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ilist.o:in  function|free_ilist':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:
                                           undefined  reference  to  |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ilist.o:in  function|free_ilist_iter':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:
                                           undefined  reference  to  |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ilist.o:in  function|ilist_delete':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:
                                           undefined  reference  to  |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ilist.o:in  function|ilist_remove_first':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:
                                           undefined  reference  to  |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ilist.o:in  function|ilist_remove_last':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:
                                           undefined  reference  to  |__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                           ..libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                           more  undefined  references  to|__imp_ilist_mem_free'follow
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                           ..libs/ilist.o:in  function  |ilist_add_twoitem':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:
                                           undefined  reference  to|__imp_ilist_mem_alloc'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                           ..libs/ilist.o:in  function  |ilist_remove_twoitem':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:
                                           undefined  reference  to|__imp_ilist_mem_free'
                                           d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                           ..libs/ilist.o:in  function  |ilist_first':
                                           R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:
                                           undefined  reference  to|__imp_ilist_mem_free'
                                  
                                           ------------------------------------------------------------------------
                                  
                                           Sent  from  sourceforge.net  because  you  indicated  interest  in
                                           https://sourceforge..net/p/openipmi/bugs/92/
                                           <https://sourceforge.net/p/openipmi/bugs/92/>
                                           https://sourceforge..net/p/openipmi/bugs/92/
                                           <https://sourceforge.net/p/openipmi/bugs/92/>
                                  
                                           To  unsubscribe  from  further  messages,please  visit
                                           https://sourceforge..net/auth/subscriptions/
                                           <https://sourceforge.net/auth/subscriptions/>
                                           https://sourceforge..net/auth/subscriptions/
                                           <https://sourceforge.net/auth/subscriptions/>
                                  
                                      ------------------------------------------------------------------------
                                  
                                      *[bugs:#92]<https://sourceforge.net/p/openipmi/bugs/92/>  OpenIPMI
                                      2.0.30  no  longer  builds  with  MSYS/MinGW*
                                  
                                      *Status:*  open
                                      *Group:*  v1.0_(example)
                                      *Created:*  Wed  Dec  09,2020  08:17  AM  UTC  by  Brecht  Sanders
                                      *Last  Updated:*  Sat  Dec  12,2020  05:25  PM  UTC
                                      *Owner:*  nobody
                                  
                                      Newly  released  version  2.0.30  no  longer  builds  under  MSYS/MinGW,
                                      see  the  output  below.
                                  
                                      It  looks  like  there  are  dllexport/dllimport  issues.
                                      This  stuff  is  defined  in  |include/OpenIPMI/dllvisibility.h|,but
                                      this  file,and  the  symbol  |IPMI_DLL_PUBLIC|  which  it  defines,is
                                      shared  between  2  different  DLLs  -  |libOpenIPMIutils|  and
                                      |libOpenIPMI|  -  of  which  the  latter  depends  on  the  former.
                                      I  believe  the  solution  would  be  to  split  |IPMI_DLL_PUBLIC|  into  2
                                      different  defines  (one  for  |libOpenIPMIutils|  and  one  for
                                      |libOpenIPMI|  ),which  are  only  set  to  |__attribute__
                                      ((dllexport))|  when  the  relevant  shared  library  is  being  built.
                                  
                                      ~~~
                                      libtool:link:x86_64-w64-mingw32-gcc  -shared  .libs/md5.o
                                      ..libs/md2.o  .libs/ipmi_auth.o  .libs/ipmi_malloc.o  .libs/ilist.o
                                      ..libs/locks.o  .libs/hash.o  ..libs/locked_list.o  .libs/os_handler..o
                                      ..libs/string.o  -lws2_32  -liphlpapi  -lgdi32  -g  -O2  -o
                                      ..libs/libOpenIPMIutils-0.dll  -Wl,--enable-auto-image-base  -Xlinker
                                      --out-implib  -Xlinker  .libs/libOpenIPMIutils.dll.a
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function  |add_after':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:undefined
                                      reference  to|__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function  |add_before':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:undefined
                                      reference  to|__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function  |alloc_ilist':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66:undefined
                                      reference  to|__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72:undefined
                                      reference  to  |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function|alloc_ilist_iter':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89:undefined
                                      reference  to  |__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function|free_ilist':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103:undefined
                                      reference  to  |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function|free_ilist_iter':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117:undefined
                                      reference  to  |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function|ilist_delete':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252:undefined
                                      reference  to  |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function|ilist_remove_first':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377:undefined
                                      reference  to  |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function|ilist_remove_last':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395:undefined
                                      reference  to  |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                      more  undefined  references  to|__imp_ilist_mem_free'follow
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function  |ilist_add_twoitem':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:undefined
                                      reference  to|__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function  |ilist_remove_twoitem':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:undefined
                                      reference  to|__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:in  function  |ilist_first':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:undefined
                                      reference  to|__imp_ilist_mem_free'
                                      ~~~
                                  
                                      ------------------------------------------------------------------------
                                  
                                      Sent  from  sourceforge.net  because  you  indicated  interest  in
                                      https://sourceforge.net/p/openipmi/bugs/92/
                                      <https://sourceforge.net/p/openipmi/bugs/92/>
                                  
                                      To  unsubscribe  from  further  messages,please  visit
                                      https://sourceforge.net/auth/subscriptions/
                                      <https://sourceforge.net/auth/subscriptions/>
                                  
                                      ------------------------------------------------------------------------
                                  
                                      /[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/>
                                      https://sourceforge.net/p/openipmi/bugs/92/
                                      <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                                      2.0.30 no longer builds with MSYS/MinGW/
                                  
                                      /Status:/ open
                                      /Group:/ v1.0_(example)
                                      /Created:/ Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                                      /Last Updated:/ Sat Dec 12, 2020 05:25 PM UTC
                                      /Owner:/ nobody
                                  
                                      Newly released version 2.0.30 no longer builds under
                                      MSYS/MinGW, see
                                      the output below.
                                  
                                      It looks like there are dllexport/dllimport issues.
                                      This stuff is defined in |include/OpenIPMI/dllvisibility.h|,
                                      but this
                                      file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                                      shared
                                      between 2 different DLLs - |libOpenIPMIutils| and
                                      |libOpenIPMI| - of
                                      which the latter depends on the former.
                                      I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                                      different defines (one for |libOpenIPMIutils| and one for
                                      |libOpenIPMI| ), which are only set to |*attribute*
                                      ((dllexport))|
                                      when the relevant shared library is being built.
                                  
                                      libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                                      .libs/md2..o .libs/ipmi_auth..o .libs/ipmi_malloc.o
                                      ..libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                                      ..libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32
                                      -g -O2
                                      -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base
                                      -Xlinker
                                      --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                      ..libs/ilist.o: in function |add_after':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129:
                                      undefined reference to|__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                      ..libs/ilist.o: in function |add_before':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152:
                                      undefined reference to|__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                      ..libs/ilist.o: in function |alloc_ilist':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                                      reference to|__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                      R:\winlibs64-9.2..0\OpenIPMI-2.0.30\utils/ilist.c:72:
                                      undefined reference to |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o: in function|alloc_ilist_iter':
                                      R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:89:
                                      undefined reference to |__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o: in function|free_ilist':
                                      R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:103:
                                      undefined reference to |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o: in function|free_ilist_iter':
                                      R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:117:
                                      undefined reference to |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o: in function|ilist_delete':
                                      R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:252:
                                      undefined reference to |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o: in function|ilist_remove_first':
                                      R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:377:
                                      undefined reference to |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o: in function|ilist_remove_last':
                                      R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:395:
                                      undefined reference to |__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                      ..libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                      more undefined references to|__imp_ilist_mem_free' follow
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                      ..libs/ilist.o: in function |ilist_add_twoitem':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451:
                                      undefined reference to|__imp_ilist_mem_alloc'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                      ..libs/ilist.o: in function |ilist_remove_twoitem':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472:
                                      undefined reference to|__imp_ilist_mem_free'
                                      d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  
                                      ..libs/ilist.o: in function |ilist_first':
                                      R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200:
                                      undefined reference to|__imp_ilist_mem_free'
                                  
                                      ------------------------------------------------------------------------
                                  
                                      Sent from sourceforge.net because you indicated interest in
                                      https://sourceforge..net/p/openipmi/bugs/92/
                                      <https://sourceforge.net/p/openipmi/bugs/92/>
                                      https://sourceforge..net/p/openipmi/bugs/92/
                                      <https://sourceforge.net/p/openipmi/bugs/92/>
                                  
                                      To unsubscribe from further messages, please visit
                                      https://sourceforge..net/auth/subscriptions/
                                      <https://sourceforge.net/auth/subscriptions/>
                                      https://sourceforge..net/auth/subscriptions/
                                      <https://sourceforge.net/auth/subscriptions/>
                                  
                                  ------------------------------------------------------------------------
                                  
                                  *[bugs:#92] <https://sourceforge.net/p/openipmi/bugs/92/> OpenIPMI
                                  2.0.30 no longer builds with MSYS/MinGW*
                                  
                                  *Status:* open
                                  *Group:* v1.0_(example)
                                  *Created:* Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                                  *Last Updated:* Sat Dec 12, 2020 05:25 PM UTC
                                  *Owner:* nobody
                                  
                                  Newly released version 2.0.30 no longer builds under MSYS/MinGW,
                                  see the output below.
                                  
                                  It looks like there are dllexport/dllimport issues.
                                  This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but
                                  this file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is
                                  shared between 2 different DLLs - |libOpenIPMIutils| and
                                  |libOpenIPMI| - of which the latter depends on the former.
                                  I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                                  different defines (one for |libOpenIPMIutils| and one for
                                  |libOpenIPMI| ), which are only set to |__attribute__
                                  ((dllexport))| when the relevant shared library is being built.
                                  
                                  ~~~
                                  libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o
                                  .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o
                                  .libs/locks.o .libs/hash.o ..libs/locked_list.o .libs/os_handler.o
                                  .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o
                                  .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                                  --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function |add_after':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined
                                  reference to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function |add_before':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined
                                  reference to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function |alloc_ilist':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined
                                  reference to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined
                                  reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function|alloc_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined
                                  reference to |__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function|free_ilist':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined
                                  reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function|free_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined
                                  reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function|ilist_delete':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined
                                  reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function|ilist_remove_first':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined
                                  reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function|ilist_remove_last':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined
                                  reference to |__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416:
                                  more undefined references to|__imp_ilist_mem_free' follow
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function |ilist_add_twoitem':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined
                                  reference to|__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function |ilist_remove_twoitem':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined
                                  reference to|__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../.../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function |ilist_first':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined
                                  reference to|__imp_ilist_mem_free'
                                  ~~~
                                  
                                  ------------------------------------------------------------------------
                                  
                                  Sent from sourceforge.net because you indicated interest in
                                  https://sourceforge.net/p/openipmi/bugs/92/
                                  <https://sourceforge.net/p/openipmi/bugs/92/>
                                  
                                  To unsubscribe from further messages, please visit
                                  https://sourceforge.net/auth/subscriptions/
                                  <https://sourceforge.net/auth/subscriptions/>
                                  

                                  [bugs:#92] https://sourceforge.net/p/openipmi/bugs/92/ OpenIPMI
                                  2.0.30 no longer builds with MSYS/MinGW

                                  Status: open
                                  Group: v1.0_(example)
                                  Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                                  Last Updated: Sat Dec 12, 2020 05:25 PM UTC
                                  Owner: nobody

                                  Newly released version 2.0.30 no longer builds under MSYS/MinGW, see
                                  the output below.

                                  It looks like there are dllexport/dllimport issues.
                                  This stuff is defined in |include/OpenIPMI/dllvisibility.h|, but this
                                  file, and the symbol |IPMI_DLL_PUBLIC| which it defines, is shared
                                  between 2 different DLLs - |libOpenIPMIutils| and |libOpenIPMI| - of
                                  which the latter depends on the former.
                                  I believe the solution would be to split |IPMI_DLL_PUBLIC| into 2
                                  different defines (one for |libOpenIPMIutils| and one for
                                  |libOpenIPMI| ), which are only set to |attribute ((dllexport))|
                                  when the relevant shared library is being built.

                                  libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth..o .libs/ipmi_malloc.o
                                  .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o
                                  .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2
                                  -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker
                                  --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  R:\winlibs64-9.2..0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                                  R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                                  R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                                  R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                                  R:\winlibs64-9.2.0\OpenIPMI-2..0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
                                  .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'


                                  Sent from sourceforge.net because you indicated interest in
                                  https://sourceforge.net/p/openipmi/bugs/92/
                                  https://sourceforge.net/p/openipmi/bugs/92/

                                  To unsubscribe from further messages, please visit
                                  https://sourceforge.net/auth/subscriptions/
                                  https://sourceforge.net/auth/subscriptions/


                                  ** [bugs:#92] OpenIPMI 2.0.30 no longer builds with MSYS/MinGW**

                                  Status: open
                                  Group: v1.0_(example)
                                  Created: Wed Dec 09, 2020 08:17 AM UTC by Brecht Sanders
                                  Last Updated: Sat Dec 12, 2020 05:25 PM UTC
                                  Owner: nobody

                                  Newly released version 2.0.30 no longer builds under MSYS/MinGW, see the output below.

                                  It looks like there are dllexport/dllimport issues.
                                  This stuff is defined in include/OpenIPMI/dllvisibility.h, but this file, and the symbol IPMI_DLL_PUBLIC which it defines, is shared between 2 different DLLs - libOpenIPMIutils and libOpenIPMI - of which the latter depends on the former.
                                  I believe the solution would be to split IPMI_DLL_PUBLIC into 2 different defines (one for libOpenIPMIutils and one for libOpenIPMI ), which are only set to __attribute__ ((dllexport)) when the relevant shared library is being built.

                                  ~~~
                                  libtool: link: x86_64-w64-mingw32-gcc -shared .libs/md5.o .libs/md2.o .libs/ipmi_auth.o .libs/ipmi_malloc.o .libs/ilist.o .libs/locks.o .libs/hash.o .libs/locked_list.o .libs/os_handler.o .libs/string.o -lws2_32 -liphlpapi -lgdi32 -g -O2 -o .libs/libOpenIPMIutils-0.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libOpenIPMIutils.dll.a
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_after': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:129: undefined reference to__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function add_before': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:152: undefined reference to__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function alloc_ilist': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:66: undefined reference to__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:72: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionalloc_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:89: undefined reference to __imp_ilist_mem_alloc' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:103: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionfree_ilist_iter':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:117: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_delete':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:252: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_first':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:377: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in functionilist_remove_last':
                                  R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:395: undefined reference to __imp_ilist_mem_free' d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o:R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:416: more undefined references to__imp_ilist_mem_free' follow
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_add_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:451: undefined reference to__imp_ilist_mem_alloc'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_remove_twoitem': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:472: undefined reference to__imp_ilist_mem_free'
                                  d:/prog/winlibs64-9.2.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/ilist.o: in function ilist_first': R:\winlibs64-9.2.0\OpenIPMI-2.0.30\utils/ilist.c:200: undefined reference to__imp_ilist_mem_free'
                                  ~~~


                                  Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openipmi/bugs/92/

                                  To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

                                   

                                  Related

                                  Bugs: #92

                                  • Brecht Sanders

                                    Brecht Sanders - 2020-12-18

                                    Great work.

                                    Just a tip but getaddrinfo sometimes requires this to work properly:

                                    #define _WIN32_WINNT 0x0501
                                    #include <ws2tcpip.h>
                                    

                                    Were there any build warnings?

                                     
                                    • Corey Minyard

                                      Corey Minyard - 2020-12-18

                                      On Fri, Dec 18, 2020 at 07:59:09PM -0000, Brecht Sanders wrote:

                                      Great work.

                                      Just a tip but getaddrinfo sometimes requires this to work properly:
                                      ~~~

                                      define _WIN32_WINNT 0x0501

                                      include <ws2tcpip.h></ws2tcpip.h>

                                      ~~~

                                      Were there any build warnings?

                                      Actually, it appears to be a bug in the MinGW I am using. It doesn't
                                      call the winsock startup function. I add that call and it gets past
                                      that, but then I found that the version I am using is not defining
                                      _WIN32, it's working more like cygwin. And it appears to be buggy in a
                                      few places besides not calling the winsock startup function.

                                      Anyway, all the nasty work of rearranging everything to make it compile
                                      is done.

                                       
                                      • Brecht Sanders

                                        Brecht Sanders - 2020-12-19

                                        Yes, WSAStartup() must be called manually at the beginning of each program when using winsock in MinGW.
                                        Looking forward to your next release :-)

                                         
                  • Brecht Sanders

                    Brecht Sanders - 2020-12-12

                    Also, to build make -Cglib some missing exports need to be fixed:

                    patch -ulbf glib/glib_os_hnd.c << EOF
                    @@ -858,3 +858,3 @@
                    
                    -os_handler_t *
                    +IPMI_DLL_PUBLIC os_handler_t *
                     ipmi_glib_get_os_handler(int priority)
                    @@ -923,3 +923,3 @@
                    
                    -void
                    +IPMI_DLL_PUBLIC void
                     ipmi_glib_set_log_handler(void (*hndlr)(const char *domain,
                    EOF
                    
                     
          • Brecht Sanders

            Brecht Sanders - 2020-12-10

            Forgot to mention: declspec(dllexport) and declspec(dllimport) work fine on Cygwin too.

             
  • Corey Minyard

    Corey Minyard - 2021-03-30
    • status: open --> closed
     
  • Corey Minyard

    Corey Minyard - 2021-03-30

    I believe this is fixed now with version 2.0.31. If not, please re-open.

     

Log in to post a comment.

MongoDB Logo MongoDB