toolchain/toolchain-external: fixup gdb pretty-printer loader for libstdcxx
authorThomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Tue, 8 Jun 2021 15:18:38 +0000 (17:18 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 25 Jul 2021 21:12:29 +0000 (23:12 +0200)
commit049135c409b081d37b9455cd7564c8581334e11b
treec4bb0359640a7b42d858f79e26f133b012bea745
parent5609c63f0b1b11f4c036c2203b01fa697968d173
toolchain/toolchain-external: fixup gdb pretty-printer loader for libstdcxx

gcc installs a libstdcxx-...so-gdb.py file that gdb will load automatically
when it loads libstdcxx.so, via the mechanism described at [1].

However, the auto-load file installed by gcc contains hardcoded paths
referring to the location where the (external) toolchain was built, which
are normally not available.

Fix up the paths in the load file so that the pretty printers can be loaded
automatically.

Note that gdb will only auto-load the file if its location is marked as
'safe'. A subsequent commit will take care of that.

Technically, there could be more than one load file, e.g. in lib and
usr/lib, so fix them all. This was for example observed in
BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64.
In a very specific case with a local custom toolchain, there were actually
two 'python' directories, which would break the sed command, so arbitrarily
limit to the first one encountered.

[1] https://sourceware.org/gdb/onlinedocs/gdb/objfile_002dgdbdotext-file.html

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
toolchain/toolchain-external/pkg-toolchain-external.mk