You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For the Unvanquished open source game running the Daemon game engine, I'm accustomed to test the engine and the game on a large range of hardware, and this not only includes many GPU brands and models from various generations, it also includes many motherboards with CPUs from various generations. And the older and low-end the hardware is, the most I need to profile the game for performance!
By default conan built Orbit and its dependencies with -march=sandybridge, and then on some system when running OrbitService I got:
Which was annoying, because one can say the older and featureless the hardware is, the more you need to profile your game to make sure it runs fast on it! So a profiling tool not able to profile games on low-end hardware sounded like a missed shot to me.
So what I did is that I edited ${HOME}/.conan/profiles/linux_common to replace -march=sandybridge with -march=x86-64, then ran conan remove -f '*' to prune all the already built dependencies, then deleted the build_default_release folder and ran ./bootstrap-orbit.sh, then I got that build error:
src/UserSpaceInstrumentation/TrampolineTest.cpp: In function ‘int orbit_user_space_instrumentation::CheckM256iParameters(__m256i, __m256i, __m256i, __m256i, __m256i, __m256i, __m256i, __m256i)’:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1033:42: note: the ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
1033 | extern "C" __attribute__((noinline)) int CheckM256iParameters(__m256i p0, __m256i p1, __m256i p2,
| ^~~~~~~~~~~~~~~~~~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp: In member function ‘virtual void orbit_user_space_instrumentation::InstrumentFunctionTest_CheckM256iParameters_Test::TestBody()’:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1055:31: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
1055 | CheckM256iParameters(_mm256_set1_epi64x(0), _mm256_set1_epi64x(0), _mm256_set1_epi64x(0),
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1056 | _mm256_set1_epi64x(0), _mm256_set1_epi64x(0), _mm256_set1_epi64x(0),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1057 | _mm256_set1_epi64x(0), _mm256_set1_epi64x(0));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h: In function ‘int orbit_user_space_instrumentation::CheckM256iParameters(__m256i, __m256i, __m256i, __m256i, __m256i, __m256i, __m256i, __m256i)’:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:35: note: called from here
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:71: note: called from here
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1037:35: note: called from here
1037 | _mm256_extract_epi64(p2, 0) == 0 && _mm256_extract_epi64(p3, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1037:71: note: called from here
1037 | _mm256_extract_epi64(p2, 0) == 0 && _mm256_extract_epi64(p3, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1038:35: note: called from here
1038 | _mm256_extract_epi64(p4, 0) == 0 && _mm256_extract_epi64(p5, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1038:71: note: called from here
1038 | _mm256_extract_epi64(p4, 0) == 0 && _mm256_extract_epi64(p5, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1039:35: note: called from here
1039 | _mm256_extract_epi64(p6, 0) == 0 && _mm256_extract_epi64(p7, 0) == 0);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1039:71: note: called from here
1039 | _mm256_extract_epi64(p6, 0) == 0 && _mm256_extract_epi64(p7, 0) == 0);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:35: note: called from here
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:71: note: called from here
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1037:35: note: called from here
1037 | _mm256_extract_epi64(p2, 0) == 0 && _mm256_extract_epi64(p3, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1037:71: note: called from here
1037 | _mm256_extract_epi64(p2, 0) == 0 && _mm256_extract_epi64(p3, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1038:35: note: called from here
1038 | _mm256_extract_epi64(p4, 0) == 0 && _mm256_extract_epi64(p5, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1038:71: note: called from here
1038 | _mm256_extract_epi64(p4, 0) == 0 && _mm256_extract_epi64(p5, 0) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1039:35: note: called from here
1039 | _mm256_extract_epi64(p6, 0) == 0 && _mm256_extract_epi64(p7, 0) == 0);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:12:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:558:1: error: inlining failed in call to ‘always_inline’ ‘long long int _mm256_extract_epi64(__m256i, int)’: target specific option mismatch
558 | _mm256_extract_epi64 (__m256i __X, const int __N)
| ^~~~~~~~~~~~~~~~~~~~
In file included from orbit/src/UserSpaceInstrumentation/TrampolineTest.cpp:40:
src/UserSpaceInstrumentation/TrampolineTest.cpp:1039:71: note: called from here
1039 | _mm256_extract_epi64(p6, 0) == 0 && _mm256_extract_epi64(p7, 0) == 0);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~
src/OrbitBase/include/OrbitBase/Logging.h:66:50: note: in definition of macro ‘ORBIT_UNLIKELY’
66 | #define ORBIT_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
| ^~~~
src/UserSpaceInstrumentation/TrampolineTest.cpp:1036:3: note: in expansion of macro ‘ORBIT_CHECK’
1036 | ORBIT_CHECK(_mm256_extract_epi64(p0, 0) == 0 && _mm256_extract_epi64(p1, 0) == 0 &&
| ^~~~~~~~~~~
gmake[2]: *** [src/UserSpaceInstrumentation/CMakeFiles/UserSpaceInstrumentationTests.dir/build.make:286: src/UserSpaceInstrumentation/CMakeFiles/UserSpaceInstrumentationTests.dir/TrampolineTest.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:3006: src/UserSpaceInstrumentation/CMakeFiles/UserSpaceInstrumentationTests.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
Fortunately, this error only affected a test file, so I edited src/UserSpaceInstrumentation/CMakeLists.txt and removed the TrampolineTest.cpp mention, ran ./build.shet voilà, the build finished (without that test file)!
I could then run the OrbitService on the low-end machine without AVX (even the Orbit client worked, but I prefer to do it remotely when profiling the game on such low-end machine).
So I guess the need is either for TrampolineTest.cpp to skip the AVX things when AVX is not available, or to have a CMake option to skip the building of TrampolineTest.cpp.
The text was updated successfully, but these errors were encountered:
illwieckz
changed the title
Build failure of TrampolineTest.cpp on non-AVX platform (not needed to run OrbitService and Orbit)
Build failure of TrampolineTest.cpp on non-AVX platform (not needed to build and run OrbitService and Orbit)
Jun 4, 2024
For the Unvanquished open source game running the Daemon game engine, I'm accustomed to test the engine and the game on a large range of hardware, and this not only includes many GPU brands and models from various generations, it also includes many motherboards with CPUs from various generations. And the older and low-end the hardware is, the most I need to profile the game for performance!
By default conan built Orbit and its dependencies with
-march=sandybridge
, and then on some system when runningOrbitService
I got:Which was annoying, because one can say the older and featureless the hardware is, the more you need to profile your game to make sure it runs fast on it! So a profiling tool not able to profile games on low-end hardware sounded like a missed shot to me.
So what I did is that I edited
${HOME}/.conan/profiles/linux_common
to replace-march=sandybridge
with-march=x86-64
, then ranconan remove -f '*'
to prune all the already built dependencies, then deleted thebuild_default_release
folder and ran./bootstrap-orbit.sh
, then I got that build error:Fortunately, this error only affected a test file, so I edited
src/UserSpaceInstrumentation/CMakeLists.txt
and removed theTrampolineTest.cpp
mention, ran./build.sh
et voilà, the build finished (without that test file)!I could then run the
OrbitService
on the low-end machine without AVX (even theOrbit
client worked, but I prefer to do it remotely when profiling the game on such low-end machine).So I guess the need is either for
TrampolineTest.cpp
to skip the AVX things when AVX is not available, or to have a CMake option to skip the building ofTrampolineTest.cpp
.The text was updated successfully, but these errors were encountered: