I maintain FreeCAD for Fedora and there appears to have been a change in the API for how Python handles thread management in 3.8, specifically PyInterpreterState which is giving the the following error when trying to build FreeCAD:

In file included from /builddir/build/BUILD/FreeCAD-0.18.3/src/Base/swigpyrun.cpp:41:
/builddir/build/BUILD/FreeCAD-0.18.3/src/Base/swigpyrun.inl: In function 'void Swig_python::cleanupSWIG_T(const char*)':
/builddir/build/BUILD/FreeCAD-0.18.3/src/Base/swigpyrun.inl:75:31: error: invalid use of incomplete type 'PyInterpreterState' {aka 'struct _is'}
   75 |     PyObject *modules = interp->modules;
      |                               ^~
In file included from /usr/include/python3.8/genobject.h:11,
                 from /usr/include/python3.8/Python.h:121,
                 from /builddir/build/BUILD/FreeCAD-0.18.3/src/Base/PyExport.h:42,
                 from /builddir/build/BUILD/FreeCAD-0.18.3/src/Base/swigpyrun.cpp:25:
/usr/include/python3.8/pystate.h:20:8: note: forward declaration of 'PyInterpreterState' {aka 'struct _is'}
   20 | struct _is;
      |        ^~~

Any tips? 

I can provide a full build log or setup a COPR but it's somewhat difficult since I'm building a whole new stack of some dependencies:

Coin3->Coin4 (in review)
- Which SoQt, SIMVoleon, OpenSceneGraph and Pivy need to be ported to.
Pyside->PySide2 (which implies Qt4->Qt5) 

Thanks,
Richard