bebbo / libnix

libnix (v4): a C link library for AmigaOS/m68k
15 stars 9 forks source link

error: conflicting declaration #69

Closed glebm closed 1 year ago

glebm commented 1 year ago

From a test build with the new gcc (https://github.com/diasurgical/devilutionX/pull/6056):

In file included from /opt/m68k-amigaos-gcc10/include/SDL/SDL_stdinc.h:63,
                 from /opt/m68k-amigaos-gcc10/include/SDL/SDL_main.h:26,
                 from /opt/m68k-amigaos-gcc10/include/SDL/SDL.h:30,
                 from /root/repo/build/_deps/libsmackerdec-src/include/FileStream.h:24,
                 from /root/repo/build/_deps/libsmackerdec-src/include/BitReader.h:24,
                 from /root/repo/build/_deps/libsmackerdec-src/src/BitReader.cpp:20:
/opt/m68k-amigaos-gcc10/m68k-amigaos/sys-include/strings.h:46:18: error: conflicting declaration of 'int bcmp(const void*, const void*, size_t)' with 'C' linkage
   46 | __stdargs int    bcmp(const void *, const void *, size_t) __pure;       /* LEGACY */
      |                  ^~~~
In file included from /opt/m68k-amigaos-gcc10/m68k-amigaos/libnix/include/stdio.h:3,
                 from /opt/m68k-amigaos-gcc10/lib/gcc/m68k-amigaos/13.1.1/include/c++/cstdio:42,
                 from /opt/m68k-amigaos-gcc10/lib/gcc/m68k-amigaos/13.1.1/include/c++/ext/string_conversions.h:45,
                 from /opt/m68k-amigaos-gcc10/lib/gcc/m68k-amigaos/13.1.1/include/c++/bits/basic_string.h:4108,
                 from /opt/m68k-amigaos-gcc10/lib/gcc/m68k-amigaos/13.1.1/include/c++/string:54,
                 from /root/repo/build/_deps/libsmackerdec-src/include/FileStream.h:23:
/opt/m68k-amigaos-gcc10/m68k-amigaos/libnix/include/string.h:40:15: note: previous declaration with 'C++' linkage
   40 | __stdargs int bcmp(const void *, const void *, size_t);

looks like the libc declaration conflicts with the libnix one (__pure is missing in libnix)

glebm commented 1 year ago

Confirmed fixed! The next error we see is https://github.com/bebbo/gcc/issues/201