Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34k
Closed
Labels
buildThe build process and cross-buildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
The following warning is displayed during BOLT instrumentation
BOLT-WARNING: debug info will be stripped from the binary. Use -update-debug-sections to keep it. The flag is provided during "apply"
Line 2184 in 81376fe
| -update-debug-sections |
but not during "instrumentation"
Line 2170 in 81376fe
| BOLT_INSTRUMENT_FLAGS= |
Reproduced with
make clean export CC=clang export CXX=clang++ ./configure py_cv_module__openssl=n/a py_cv_module__hashlib=n/a py_cv_module__gdbm=n/a py_cv_module__tkinter=n/a \ --without-ensurepip \ --enable-optimizations --enable-bolt make -j8 Additional logs
... make profile-bolt-stamp make[1]: Entering directory '/big/workspace/cpython' # Ensure a pristine, pre-BOLT copy of the binary and no profile data from last run. for bin in python; do \ prebolt="${bin}.prebolt"; \ if [ -e "${prebolt}" ]; then \ echo "Restoring pre-BOLT binary ${prebolt}"; \ mv "${bin}.prebolt" "${bin}"; \ fi; \ cp "${bin}" "${prebolt}"; \ rm -f ${bin}.bolt.*.fdata ${bin}.fdata; \ done # Instrument each binary. for bin in python; do \ /usr/bin/llvm-bolt "${bin}" -instrument -instrumentation-file-append-pid -instrumentation-file=/big/workspace/cpython/${bin}.bolt -o ${bin}.bolt_inst ; \ mv "${bin}.bolt_inst" "${bin}"; \ done BOLT-INFO: Target architecture: x86_64 BOLT-INFO: BOLT version: 6a0964d75628b15bafd078342120888c0e6d126f BOLT-INFO: first alloc address is 0x400000 BOLT-INFO: creating new program header table at address 0xa00000, offset 0x600000 BOLT-WARNING: debug info will be stripped from the binary. Use -update-debug-sections to keep it. BOLT-INFO: enabling relocation mode BOLT-INFO: forcing -jump-tables=move for instrumentation BOLT-INFO: enabling lite mode BOLT-INFO: 0 out of 7748 functions in the binary (0.0%) have non-empty execution profile BOLT-INFO: validate-mem-refs updated 2 object references BOLT-INSTRUMENTER: Number of indirect call site descriptors: 1995 BOLT-INSTRUMENTER: Number of indirect call target descriptors: 7719 BOLT-INSTRUMENTER: Number of function descriptors: 7719 BOLT-INSTRUMENTER: Number of branch counters: 150867 BOLT-INSTRUMENTER: Number of ST leaf node counters: 47195 BOLT-INSTRUMENTER: Number of direct call counters: 0 BOLT-INSTRUMENTER: Total number of counters: 198062 BOLT-INSTRUMENTER: Total size of counters: 1584496 bytes (static alloc memory) BOLT-INSTRUMENTER: Total size of string table emitted: 166904 bytes in file BOLT-INSTRUMENTER: Total size of descriptors: 10927480 bytes in file BOLT-INSTRUMENTER: Profile will be saved to file /big/workspace/cpython/python.bolt BOLT-INFO: 66759 instructions were shortened BOLT-INFO: removed 84 empty blocks BOLT-INFO: UCE removed 838 blocks and 51008 bytes of code BOLT-INFO: padding code to 0x1600000 to accommodate hot text BOLT-INFO: output linked against instrumentation runtime library, lib entry point is 0x18e0950 BOLT-INFO: clear procedure is 0x18dc390 BOLT-INFO: patched build-id (flipped last bit) BOLT-INFO: setting _end to 0x190247c BOLT-INFO: setting _end to 0x190247c BOLT-INFO: setting __bolt_runtime_start to 0x18e0900 BOLT-INFO: setting __bolt_runtime_fini to 0x18e0950 BOLT-INFO: setting __hot_start to 0xc00000 BOLT-INFO: setting __hot_end to 0x14b3986 # Run instrumented binaries to collect data. ./python -m test --pgo --timeout= ... This was patched downstream in python-build-standaloneastral-sh/python-build-standalone#463 — I'm interesting in upstreaming that patch.
A simple patch like
diff --git a/configure.ac b/configure.ac index ee034e5a962..d0245debd5b 100644 --- a/configure.ac+++ b/configure.ac@@ -2167,7 +2167,7 @@ AC_ARG_VAR( AC_MSG_CHECKING([BOLT_INSTRUMENT_FLAGS]) if test -z "${BOLT_INSTRUMENT_FLAGS}" then - BOLT_INSTRUMENT_FLAGS=+ BOLT_INSTRUMENT_FLAGS="-update-debug-sections" fi AC_MSG_RESULT([$BOLT_INSTRUMENT_FLAGS])is sufficient — but downstream a BOLT_COMMON_FLAGS variable was added which was useful for subsequent fixes.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
Metadata
Metadata
Assignees
Labels
buildThe build process and cross-buildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error