Skip to content

Fix test build failure on Linux#3201

Open
hannesbraun wants to merge 1 commit intogoogle-deepmind:mainfrom
hannesbraun:fix-test-building
Open

Fix test build failure on Linux#3201
hannesbraun wants to merge 1 commit intogoogle-deepmind:mainfrom
hannesbraun:fix-test-building

Conversation

@hannesbraun
Copy link
Copy Markdown
Contributor

While trying to package MuJoCo for Alpine Linux, I encountered the following build failure when building the tests:

ninja: job failed: : && /usr/bin/c++ -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -fno-plt -flto=auto -fno-fat-lto-objects -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -Wl,--gc-sections test/engine/CMakeFiles/engine_solver_test.dir/engine_solver_test.cc.o -o bin/engine_solver_test  -Wl,-rpath,/tmp/src/mujoco-e4f4044659efb556e8010637142d63b7ed4463f1/build/lib  lib/libfixture.a  -lgmock  /usr/lib/libgtest_main.so.1.17.0  lib/libmujoco.so.3.7.0  /usr/lib/libabsl_raw_hash_set.so.2508.0.0  /usr/lib/libabsl_cord.so.2508.0.0  /usr/lib/libabsl_cordz_info.so.2508.0.0  /usr/lib/libabsl_cord_internal.so.2508.0.0  /usr/lib/libabsl_cordz_functions.so.2508.0.0  /usr/lib/libabsl_cordz_handle.so.2508.0.0  /usr/lib/libabsl_crc_cord_state.so.2508.0.0  /usr/lib/libabsl_crc32c.so.2508.0.0  /usr/lib/libabsl_crc_internal.so.2508.0.0  /usr/lib/libabsl_crc_cpu_detect.so.2508.0.0  /usr/lib/libabsl_str_format_internal.so.2508.0.0  /usr/lib/libabsl_hash.so.2508.0.0  /usr/lib/libabsl_city.so.2508.0.0  /usr/lib/libabsl_hashtablez_sampler.so.2508.0.0  /usr/lib/libabsl_exponential_biased.so.2508.0.0  /usr/lib/libabsl_synchronization.so.2508.0.0  /usr/lib/libabsl_graphcycles_internal.so.2508.0.0  /usr/lib/libabsl_kernel_timeout_internal.so.2508.0.0  /usr/lib/libabsl_stacktrace.so.2508.0.0  /usr/lib/libabsl_symbolize.so.2508.0.0  /usr/lib/libabsl_malloc_internal.so.2508.0.0  /usr/lib/libabsl_debugging_internal.so.2508.0.0  /usr/lib/libabsl_demangle_internal.so.2508.0.0  /usr/lib/libabsl_demangle_rust.so.2508.0.0  /usr/lib/libabsl_decode_rust_punycode.so.2508.0.0  /usr/lib/libabsl_utf8_for_code_point.so.2508.0.0  /usr/lib/libabsl_time.so.2508.0.0  /usr/lib/libabsl_strings.so.2508.0.0  /usr/lib/libabsl_strings_internal.so.2508.0.0  /usr/lib/libabsl_string_view.so.2508.0.0  /usr/lib/libabsl_throw_delegate.so.2508.0.0  /usr/lib/libabsl_civil_time.so.2508.0.0  /usr/lib/libabsl_int128.so.2508.0.0  /usr/lib/libabsl_time_zone.so.2508.0.0  /usr/lib/libabsl_tracing_internal.so.2508.0.0  /usr/lib/libabsl_base.so.2508.0.0  /usr/lib/libabsl_raw_logging_internal.so.2508.0.0  /usr/lib/libabsl_log_severity.so.2508.0.0  /usr/lib/libabsl_spinlock_wait.so.2508.0.0  /usr/lib/libgmock.so.1.17.0  /usr/lib/libgtest.so.1.17.0 && cd /tmp/src/mujoco-e4f4044659efb556e8010637142d63b7ed4463f1/build/test/engine && /usr/bin/cmake -D TEST_TARGET=engine_solver_test -D TEST_EXECUTABLE=/tmp/src/mujoco-e4f4044659efb556e8010637142d63b7ed4463f1/build/bin/engine_solver_test -D TEST_EXECUTOR= -D TEST_WORKING_DIR=/tmp/src/mujoco-e4f4044659efb556e8010637142d63b7ed4463f1/test -D TEST_EXTRA_ARGS= -D TEST_PROPERTIES= -D TEST_PREFIX= -D TEST_SUFFIX= -D TEST_FILTER= -D NO_PRETTY_TYPES=FALSE -D NO_PRETTY_VALUES=FALSE -D TEST_LIST=engine_solver_test_TESTS -D CTEST_FILE=/tmp/src/mujoco-e4f4044659efb556e8010637142d63b7ed4463f1/build/test/engine/engine_solver_test[1]_tests.cmake -D TEST_DISCOVERY_TIMEOUT=5 -D TEST_DISCOVERY_EXTRA_ARGS= -D TEST_XML_OUTPUT_DIR= -P /usr/share/cmake/Modules/GoogleTestAddTests.cmake
/usr/include/fortify/stdio.h: In function '__to_xstring.constprop':
/usr/include/fortify/stdio.h:82:28: error: inlining failed in call to 'always_inline' 'vsnprintf': function body can be overwritten at link time
   82 | _FORTIFY_FN(vsnprintf) int vsnprintf(char * _FORTIFY_POS0 __s, size_t __n,
      |                            ^
/usr/include/c++/15.2.0/ext/string_conversions.h:115:32: note: called from here
  115 |       const int __len = __convf(__s, __n, __fmt, __args);
      |                                ^

I was able to trace the error down to the std::to_string call, so I moved the string generation into the loop, eliminating the direct call to to_string. This might be a little less performant but since it only affects the tests, I thought that this is okay.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant