Avoid extern "C" blocks around ICU includes Looks like it's not necessary, and, moreover, I'm getting this with recent ICU (64.2): ``` /usr/include/unicode/localpointer.h:67:1: error: template with C linkage 67 | template<typename T> | ^~~~~~~~ /var/tmp/portage/dev-libs/vmime-9999/work/vmime-9999/src/vmime/charsetConverter_icu.cpp:37:1: note: ‘extern "C"’ linkage started here 37 | extern "C" { | ^~~~~~~~~~ ```
adding alternative getThreadId() implementation On platforms which doesn't have syscall function and no syscall_getpid symbol a own created type needs to be added for using.
For Hurd we can include mach.h and use the implementation of mach_thread_self() from there.
Patch is basically taken from http://code.bsd64.org/browse/freebsd/ports/head/mail/libvmime/files/patch-src__vmime__platforms__posix__posixHandler.cpp
with additional code from Aaron M. Ucko <ucko@debian.org> for fixing build issues on Hurd. See #875729