Skip to content

Slow re-linking of python bindings on build with no changes #952

@traversaro

Description

@traversaro

I noticed that somehow the latest version of blf a build with no changes always result in re-liking the python bindings:

Finished <<< ICUB [0.43s]
[ 62%] Linking CXX shared module ../../bipedal_locomotion_framework/bindings.cpython-311-x86_64-linux-gnu.so
lto-wrapper: warning: using serial compilation of 43 LTRANS jobs
lto-wrapper: note: see the '-flto' option documentation for more information
[Processing: BipedalLocomotionFramework]
In function 'copy',
    inlined from 'for_each_codepoint' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:677:15,
    inlined from 'find_escape' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1794:21,
    inlined from 'write_escaped_string' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1886:30:
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/base.h:1213:31: warning: writing 8 bytes into a region of size 7 [-Wstringop-overflow=]
 1213 |   while (begin != end) *out++ = static_cast<T>(*begin++);
      |                               ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h: In function 'write_escaped_string':
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: destination object 'buf' of size 7
  676 |     char buf[2 * block_size - 1] = {};
      |          ^
In function 'copy',
    inlined from 'for_each_codepoint' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:677:15,
    inlined from 'find_escape' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1794:21,
    inlined from 'write_escaped_string' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1886:30:
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/base.h:1213:31: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 1213 |   while (begin != end) *out++ = static_cast<T>(*begin++);
      |                               ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h: In function 'write_escaped_string':
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 16 into destination object 'buf' of size 7
  676 |     char buf[2 * block_size - 1] = {};
      |          ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: destination object 'buf' of size 7
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 16 into destination object 'buf' of size 7
In function 'copy',
    inlined from 'for_each_codepoint' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:677:15,
    inlined from 'find_escape' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1794:21,
    inlined from 'write_escaped_string' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1886:30:
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/base.h:1213:31: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 1213 |   while (begin != end) *out++ = static_cast<T>(*begin++);
      |                               ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h: In function 'write_escaped_string':
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 17 into destination object 'buf' of size 7
  676 |     char buf[2 * block_size - 1] = {};
      |          ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset [1, 7] into destination object 'buf' of size 7
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 17 into destination object 'buf' of size 7
In function 'copy',
    inlined from 'for_each_codepoint' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:677:15,
    inlined from 'find_escape' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1794:21,
    inlined from 'write_escaped_string' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1886:30:
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/base.h:1213:31: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 1213 |   while (begin != end) *out++ = static_cast<T>(*begin++);
      |                               ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h: In function 'write_escaped_string':
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 18 into destination object 'buf' of size 7
  676 |     char buf[2 * block_size - 1] = {};
      |          ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset [2, 7] into destination object 'buf' of size 7
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 18 into destination object 'buf' of size 7
In function 'copy',
    inlined from 'for_each_codepoint' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:677:15,
    inlined from 'find_escape' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1794:21,
    inlined from 'write_escaped_string' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1886:30:
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/base.h:1213:31: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 1213 |   while (begin != end) *out++ = static_cast<T>(*begin++);
      |                               ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h: In function 'write_escaped_string':
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 19 into destination object 'buf' of size 7
  676 |     char buf[2 * block_size - 1] = {};
      |          ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset [3, 7] into destination object 'buf' of size 7
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 19 into destination object 'buf' of size 7
In function 'copy',
    inlined from 'for_each_codepoint' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:677:15,
    inlined from 'find_escape' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1794:21,
    inlined from 'write_escaped_string' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1886:30:
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/base.h:1213:31: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 1213 |   while (begin != end) *out++ = static_cast<T>(*begin++);
      |                               ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h: In function 'write_escaped_string':
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 20 into destination object 'buf' of size 7
  676 |     char buf[2 * block_size - 1] = {};
      |          ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset [4, 7] into destination object 'buf' of size 7
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 20 into destination object 'buf' of size 7
In function 'copy',
    inlined from 'for_each_codepoint' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:677:15,
    inlined from 'find_escape' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1794:21,
    inlined from 'write_escaped_string' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1886:30:
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/base.h:1213:31: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 1213 |   while (begin != end) *out++ = static_cast<T>(*begin++);
      |                               ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h: In function 'write_escaped_string':
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 21 into destination object 'buf' of size 7
  676 |     char buf[2 * block_size - 1] = {};
      |          ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset [5, 7] into destination object 'buf' of size 7
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 21 into destination object 'buf' of size 7
In function 'copy',
    inlined from 'for_each_codepoint' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:677:15,
    inlined from 'find_escape' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1794:21,
    inlined from 'write_escaped_string' at /home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:1886:30:
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/base.h:1213:31: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
 1213 |   while (begin != end) *out++ = static_cast<T>(*begin++);
      |                               ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h: In function 'write_escaped_string':
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 22 into destination object 'buf' of size 7
  676 |     char buf[2 * block_size - 1] = {};
      |          ^
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset [6, 7] into destination object 'buf' of size 7
/home/traversaro/gb-monorepo-demo/.pixi/envs/default/include/fmt/format.h:676:10: note: at offset 22 into destination object 'buf' of size 7
[100%] Built target pybind11_blf

At least on my machine (with WSL, so probably it has a sub-optimal filesystem performance) this step always takes ~50 seconds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions