holocronweaver / ogre-procedural-old

Automatically exported from code.google.com/p/ogre-procedural
0 stars 0 forks source link

Use hardened build flags #94

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
I suggest using hardened build flags to ensure code quality.

I attached a patch with my suggested fixes. Ogre 1.8rc1 is not compatible with 
those changes due to code problems in Ogre that I'm currently trying to fix 
with upstream.

Original issue reported on code.google.com by svenst...@gmail.com on 20 Nov 2011 at 7:54

Attachments:

GoogleCodeExporter commented 8 years ago
Thanks for the patch.
I have 2 questions about that:
- "#if (PROCEDURAL_PLATFORM == PROCEDURAL_PLATFORM_WIN32)" is not equivalent to 
"#if defined(PROCEDURAL_PLATFORM_WIN32)" and the second doesn't work. Is there 
a problem on your build with that definition?
- "typedef enum e_InsideType    { IT_INSIDE, IT_OUTSIDE, IT_BORDERLINEOUTSIDE 
}InsideType;" : what's the use of declaring 2 times? I find varying info on the 
net about how to define an enum : "enum Color { red, white, blue };" on some 
sites, "enum { red, white, blue } Color;" in other places, but I can't find 
double definition anywhere. Any reason to this?

Original comment by michael.broutin@gmail.com on 22 Nov 2011 at 9:24

GoogleCodeExporter commented 8 years ago
That #if always returned true on my non-Win32 platform and I figured you will 
set PROCEDURAL_PLATFORM_WIN32 only when it is meant to be defined.

I think the way the enum is declared now is the proper way to declare an enum 
and typedef it at the same time. At least if you are pedantic it is. :)

Original comment by svenst...@gmail.com on 24 Nov 2011 at 9:45

GoogleCodeExporter commented 8 years ago
Patch applied.
I just kept the "#if (PROCEDURAL_PLATFORM == PROCEDURAL_PLATFORM_WIN32)" : 
PROCEDURAL_PLATFORM_WIN32 is always defined as a constant (I had to fix that)

Original comment by michael.broutin@gmail.com on 28 Nov 2011 at 7:36

GoogleCodeExporter commented 8 years ago
Someone on the forums reported that the new flags made things not compile for 
him.. that's probably related to the code problems in Ogre, but as long as 
there's no way to compile with flags enabled out of the box, I guess I'll have 
to make them optional..

Original comment by michael.broutin@gmail.com on 13 Dec 2011 at 9:23

GoogleCodeExporter commented 8 years ago
I replied on the forums. This is a problem with Ogre, not ogre-procedural.

Original comment by svenst...@gmail.com on 13 Dec 2011 at 9:28

GoogleCodeExporter commented 8 years ago
Is the problem just with Ogre 1.8rc1, or also with previous versions of Ogre? 
(1-7 branch, for example). Sorry, but I really didn't have time to check that 
by myself..

Original comment by michael.broutin@gmail.com on 13 Dec 2011 at 9:49

GoogleCodeExporter commented 8 years ago
Only with 1.8rc1 and current 1-8 branch.

Original comment by svenst...@gmail.com on 13 Dec 2011 at 9:50

GoogleCodeExporter commented 8 years ago
Hi, I tried to build CB+mingw version against precompiled Ogre for Mingw 1-7-2 
(latest binary version from the website), and it also fails to build (without 
the flags, everything is ok). From the compiler errors, the errors come from 
boost..

Original comment by michael.broutin@gmail.com on 17 Dec 2011 at 11:32

GoogleCodeExporter commented 8 years ago
I suppose that is because of old mingw? Perhaps we should take out -std=c++0x 
then for the sake of old compilers.

Original comment by svenst...@gmail.com on 18 Dec 2011 at 5:55

GoogleCodeExporter commented 8 years ago
My mingw version was 4.5.2

I made 3 new tests :
- remove "-std=c++0x" => doesn't compile
- install mingw 4.6.1 (latest mingw got from mingw-get-inst.exe) => doesn't 
compile
- put back "-std=c++0x" => still doesn't compile

Of course, compile errors aren't the same each time... (but each time they come 
from boost)

Original comment by michael.broutin@gmail.com on 18 Dec 2011 at 12:05

GoogleCodeExporter commented 8 years ago
Can you post the errors?

Original comment by svenst...@gmail.com on 18 Dec 2011 at 12:17

GoogleCodeExporter commented 8 years ago
With std=c++0x :

Using makefile: Makefile
[  3%] Building CXX object 
library/CMakeFiles/OgreProcedural.dir/src/ProceduralBoxGenerator.cpp.obj
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/detail/thread_heap_all
oc.hpp:15:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/tss.hpp:10,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeadersBoost.h:29,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeaders.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStdHeaders.h:110,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:315,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/thread_heap_allo
c.hpp:59:40: error: inline function 'void* 
boost::detail::allocate_raw_heap_memory(unsigned int)' declared as  dllimport: 
attribute ignored [-Werror=attributes]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/thread_heap_allo
c.hpp:69:39: error: inline function 'void 
boost::detail::free_raw_heap_memory(void*)' declared as  dllimport: attribute 
ignored [-Werror=attributes]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/shared_mutex.hpp:14:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/detail/thread_group.hpp:9,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/thread.hpp:24,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/condition_variable.hpp:13,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/condition_variable.hpp:14,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/condition.hpp:9,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeadersBoost.h:31,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeaders.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStdHeaders.h:110,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:315,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
: In constructor 'boost::shared_mutex::shared_mutex()':
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::shared_waiting' 
[-Werror=missing-field-initializers]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::exclusive' 
[-Werror=missing-field-initializers]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::upgrade' [-Werror=missing-field-initializers]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::exclusive_waiting' 
[-Werror=missing-field-initializers]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::exclusive_waiting_blocked' 
[-Werror=missing-field-initializers]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/shared_mutex.hpp:14:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/detail/thread_group.hpp:9,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/thread.hpp:24,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/condition_variable.hpp:13,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/condition_variable.hpp:14,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/condition.hpp:9,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeadersBoost.h:31,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeaders.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStdHeaders.h:110,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:315,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
: In member function 'T boost::shared_mutex::interlocked_compare_exchange(T*, 
T, T) [with T = boost::shared_mutex::state_data]':
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:110:103:   instantiated from here
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:50:99: error: dereferencing type-punned pointer will break strict-aliasing 
rules [-Werror=strict-aliasing]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:50:99: error: dereferencing type-punned pointer will break strict-aliasing 
rules [-Werror=strict-aliasing]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:51:52: error: dereferencing type-punned pointer will break strict-aliasing 
rules [-Werror=strict-aliasing]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:51:52: error: dereferencing type-punned pointer will break strict-aliasing 
rules [-Werror=strict-aliasing]
cc1plus.exe: all warnings being treated as errors
mingw32-make.exe[2]: *** 
[library/CMakeFiles/OgreProcedural.dir/src/ProceduralBoxGenerator.cpp.obj] 
Error 1
mingw32-make.exe[1]: *** [library/CMakeFiles/OgreProcedural.dir/all] Error 2
mingw32-make.exe: *** [all] Error 2
Process terminated with status 2 (0 minutes, 7 seconds)
11 errors, 0 warnings

without :

Using makefile: Makefile
[  3%] 
Building CXX object 
library/CMakeFiles/OgreProcedural.dir/src/ProceduralBoxGenerator.cpp.obj
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/date_time/microsec_time_clock
.hpp:23:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/thread_time.hpp:9,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/basic_timed_mutex.hpp:15,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/basic_recursive_mutex.hpp:13,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/recursive_mutex.hpp:14,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/recursive_mutex.hpp:14,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeadersBoost.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeaders.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStdHeaders.h:110,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:315,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/date_time/filetime_functions.
hpp:99:32: error: use of C++0x long long integer constant [-Werror=long-long]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/date_time/posix_time/posix_ti
me_system.hpp:14:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/date_time/posix_time/ptime.hpp:12,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/date_time/posix_time/posix_time_types.hpp:12,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/thread_time.hpp:10,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/basic_timed_mutex.hpp:15,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/basic_recursive_mutex.hpp:13,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/recursive_mutex.hpp:14,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/recursive_mutex.hpp:14,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeadersBoost.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeaders.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStdHeaders.h:110,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:315,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/date_time/time_system_split.h
pp:41:1: error: use of C++0x long long integer constant [-Werror=long-long]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStringInterface.h:34:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreResource.h:34,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreResourceManager.h:33,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreArchiveManager.h:33,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:38,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreCommon.h:766:12: error: use 
of C++0x long long integer constant [-Werror=long-long]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:30:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePlatform.h:257:2: error: ISO 
C++ 1998 does not support 'long long' [-Werror=long-long]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePlatform.h:258:2: error: ISO 
C++ 1998 does not support 'long long' [-Werror=long-long]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/config.hpp:57:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/detail/config.hpp:10,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/tss.hpp:8,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeadersBoost.h:29,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeaders.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStdHeaders.h:110,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:315,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/config/suffix.hpp:497:18: 
error: ISO C++ 1998 does not support 'long long' [-Werror=long-long]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/config/suffix.hpp:498:18: 
error: ISO C++ 1998 does not support 'long long' [-Werror=long-long]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/detail/thread_heap_all
oc.hpp:15:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/tss.hpp:10,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeadersBoost.h:29,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeaders.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStdHeaders.h:110,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:315,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/thread_heap_allo
c.hpp:59:40: error: inline function 'void* 
boost::detail::allocate_raw_heap_memory(unsigned int)' declared as  dllimport: 
attribute ignored [-Werror=attributes]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/thread_heap_allo
c.hpp:69:39: error: inline function 'void 
boost::detail::free_raw_heap_memory(void*)' declared as  dllimport: attribute 
ignored [-Werror=attributes]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/shared_mutex.hpp:14:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/detail/thread_group.hpp:9,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/thread.hpp:24,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/condition_variable.hpp:13,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/condition_variable.hpp:14,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/condition.hpp:9,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeadersBoost.h:31,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeaders.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStdHeaders.h:110,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:315,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
: In constructor 'boost::shared_mutex::shared_mutex()':
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::shared_waiting' 
[-Werror=missing-field-initializers]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::exclusive' 
[-Werror=missing-field-initializers]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::upgrade' [-Werror=missing-field-initializers]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::exclusive_waiting' 
[-Werror=missing-field-initializers]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:84:33: error: missing initializer for member 
'boost::shared_mutex::state_data::exclusive_waiting_blocked' 
[-Werror=missing-field-initializers]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStringInterface.h:34:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreResource.h:34,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreResourceManager.h:33,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreArchiveManager.h:33,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:38,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreCommon.h: At global scope:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreCommon.h:745:3: error: ISO 
C++ 1998 does not support 'long long' [-Werror=long-long]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreCommon.h:770:16: error: ISO 
C++ 1998 does not support 'long long' [-Werror=long-long]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreCommon.h:777:3: error: ISO 
C++ 1998 does not support 'long long' [-Werror=long-long]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreResourceManager.h:33:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreArchiveManager.h:33,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:38,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreResource.h:39:5: error: ISO 
C++ 1998 does not support 'long long' [-Werror=long-long]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreResourceBackgroundQueue.h:36:
0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:92,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreWorkQueue.h:78:3: error: ISO 
C++ 1998 does not support 'long long' [-Werror=long-long]
In file included from 
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/shared_mutex.hpp:14:0,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/detail/thread_group.hpp:9,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/thread.hpp:24,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/condition_variable.hpp:13,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/condition_variable.hpp:14,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/condition.hpp:9,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeadersBoost.h:31,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Threading/OgreThreadHeaders.h:30,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgreStdHeaders.h:110,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/OgrePrerequisites.h:315,
                 from E:\Prog\Libs\OgreSDK_mingw_v1-7-2\include\OGRE/Ogre.h:31,
                 from E:\Prog\Projets\ogre-procedural\library\include/ProceduralStableHeaders.h:28,
                 from E:\Prog\Projets\ogre-procedural\library\src\ProceduralBoxGenerator.cpp:28:
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
: In member function 'T boost::shared_mutex::interlocked_compare_exchange(T*, 
T, T) [with T = boost::shared_mutex::state_data]':
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:110:103:   instantiated from here
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:50:99: error: dereferencing type-punned pointer will break strict-aliasing 
rules [-Werror=strict-aliasing]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:50:99: error: dereferencing type-punned pointer will break strict-aliasing 
rules [-Werror=strict-aliasing]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:51:52: error: dereferencing type-punned pointer will break strict-aliasing 
rules [-Werror=strict-aliasing]
E:\Prog\Libs\OgreSDK_mingw_v1-7-2\boost_1_44/boost/thread/win32/shared_mutex.hpp
:51:52: error: dereferencing type-punned pointer will break strict-aliasing 
rules [-Werror=strict-aliasing]
cc1plus.exe: all warnings being treated as errors
mingw32-make.exe[2]: *** 
[library/CMakeFiles/OgreProcedural.dir/src/ProceduralBoxGenerator.cpp.obj] 
Error 1
mingw32-make.exe[1]: *** [library/CMakeFiles/OgreProcedural.dir/all] Error 2
mingw32-make.exe: *** [all] Error 2
Process terminated with status 2 (0 minutes, 7 seconds)
23 errors, 0 warnings

Original comment by michael.broutin@gmail.com on 18 Dec 2011 at 1:20

GoogleCodeExporter commented 8 years ago
Alright, those problems are likely fixed in newer Boost versions as I do not 
get them. However, Boost should not use our compile flags anyway because we 
can't fix them and we do not care about them in Boost. Why not include Boost 
using -isystem? The CMake equivalent is include_directories([AFTER|BEFORE] 
[SYSTEM] dir1 dir2 ...). This disables the usage of our flags for those defined 
as SYSTEM.

Obviously our flags should *only* apply to our project.

Original comment by svenst...@gmail.com on 18 Dec 2011 at 1:43

GoogleCodeExporter commented 8 years ago
Ok, tested the 'include_directories(SYSTEM ${BOOST_INCLUDE})' and that seems to 
work :)

Original comment by michael.broutin@gmail.com on 19 Dec 2011 at 11:49