Syniurge / Calypso

LDC fork to experiment direct interfacing with C++
http://wiki.dlang.org/LDC
Other
135 stars 10 forks source link

Ogre3d regression #38

Closed wilsonk closed 8 years ago

wilsonk commented 8 years ago

Hello Elie,

I am now getting this error with the Ogre demo:

/usr/include/boost/type_traits/type_with_alignment.hpp(128): Error: undefined identifier 'cpp' in module 'cpp.boost.detail.has_one_T' /usr/include/boost/type_traits/type_with_alignment.hpp(128): Error: undefined identifier 'cpp' in module 'cpp.boost.detail.has_one_T' /usr/include/boost/type_traits/type_with_alignment.hpp(130): Error: template instance __cpp_member_funcptr!(extern (C++) int(), .cpp.boost.detail.alignment_dummy.alignment_dummy) is used as a type /usr/include/boost/type_traits/type_with_alignment.hpp(128): Error: template instance cpp.boost.detail.has_one_T.has_one_T!(__cpp_member_funcptr!(extern (C++) int(), alignment_dummy)) error instantiating

I also get these errors just before semantics:

demo.d(56): Error: function demo.DemoApplication.setupResources does not override any function, did you mean to override 'cpp.BaseApplication.BaseApplication.setupResources'? demo.d(69): Error: function demo.DemoApplication.createScene does not override any function, did you mean to override 'cpp.BaseApplication.BaseApplication.createScene'? demo.d(303): Error: function demo.DemoApplication.frameRenderingQueued does not override any function, did you mean to override 'cpp.BaseApplication.BaseApplication.frameRenderingQueued'? demo.d(347): Error: function demo.DemoApplication.notifyRenderSingleObject does not override any function, did you mean to override 'cpp.Ogre.RenderObjectListener.RenderObjectListener.notifyRenderSingleObject'?

Thanks, Kelly

Syniurge commented 8 years ago

Hi Kelly,

I'm currently working on fixes for the Ogre3D demo, although I'm getting different errors. Some of them shall be pushed later tonight.

Syniurge commented 8 years ago

Okay I've fixed all the compilation issues but it doesn't link on my Ubuntu 15.10 system where everything is built against libstdc++ 5.2 because Clang doesn't know yet (and it's been like this for a while..) about GCC's [abi:cxx11] tags:

https://llvm.org/bugs/show_bug.cgi?id=23529

Ogre, OIS and their dependencies need to be compiled with GCC/libstdc++ 4.9 or with -D_GLIBCXX_USE_CXX11_ABI=0.

I'm dropping the issue until this gets solved in Clang.

Syniurge commented 8 years ago

The latest commits (d99cbb33b02f71efb681eb8df63574a2f97e5edf, 4c52da2e70820b0ca54cc8082983e9709c08f8c0) usher in compatibility with the GCC 5.1+ ABI and bring back the Ogre3D demo on recent Linux distributions (it was never really gone but Ogre3D and its dependencies had to be recompiled with GCC 4.9).