Minimal example attached. It doesn't link on Fedora 31 and 30:
CMakeFiles/tls.dir/tls.cpp.o:tls.cpp:(.text+0xad): multiple definition of `TLS init function for Service<std::mersenne_twister_engine<unsigned int, 32ull, 624ull, 397ull, 31ull, 2567483615u, 11ull, 4294967295u, 7ull, 2636928640u, 15ull, 4022730752u, 18ull, 1812433253u> >::engine'
CMakeFiles/tls.dir/main.cpp.o:main.cpp:(.text+0xc9): first defined here
gcc 8.3.0 on Ubuntu 18.0.4 and Apple clang 1001.0.46.4 build just OK.
Fedora 31 info:
$ uname -a
Linux ba4935cc2541 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ /usr/bin/x86_64-w64-mingw32-g++ --version
x86_64-w64-mingw32-g++ (GCC) 9.2.1 20190827 (Fedora MinGW 9.2.1-1.fc31)
Fedora 30 info:
Linux 9a94cd8d9184 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ /usr/bin/x86_64-w64-mingw32-g++ --version
x86_64-w64-mingw32-g++ (GCC) 8.3.0 20190222 (Fedora MinGW 8.3.0-2.fc30)
Regards,
Marcello