Open Mistuke opened 6 years ago
New mingw-w64 also provides this symbol, either your toolchain is outdated or ncurses need rebuild.
I'm using a GCC 7.2.0
.
I don't see the symbol in msvcrt
so where does the new mingw-w64 expect the symbol from?
dumpbin /exports c:\Windows\System32\msvcrt.dll | findstr acrt_iob_func
returns nothing.
Is it implemented internally in a newer mingw-w64 crt? Is so that's slightly annoying as it's a backwards incompatible change...
It was made to fix ucrt
linking.
Symbol is defined here:
$ nm /mingw64/x86_64-w64-mingw32/lib/libcrtdll.a | grep acrt
lib64_libcrtdll_a-acrt_iob_func.o:
0000000000000000 T __acrt_iob_func
0000000000000000 D __imp___acrt_iob_func
With all packages updated it shouldn't cause much problems but old libs libs might need rebuild.
Ah I see, that's a bit unfortunate. We're using the mingw-w64
toolchains in the Haskell compiler, but this effectively means ncurses
is now broken for all previously released toolchains as they are frozen to particular versions.
I guess I'll just have to provide a build compiled against an older mingw-w64
for users...
The
libncurses
in the repo somehow has a dependency on the vc++ 2015 runtime as it references__acrt_iob_func
which is rather weird considering the PKGBUILD doesn't change the crt from the default.And indeed building from source builds the same
6.1.20180127-1
but without this symbol.So the version in the repo seems to diverge. Was this intended? As it means to use
libncurses
the gcc specs file has to be changed (as not to link against multiple crt versions)?GCC's default configuration fails to link