[PATCH 0/4] various libctf-specific fixes
Nick Alcock
nick.alcock@oracle.com
Mon Mar 21 18:24:41 GMT 2022
These are a bunch of things that have accumulated over the last few
months. One of them could in theory be considered a format change
(since it extends the meaning of the variable section), but the
variable section is rarely used, its use is off by default with
the default linker flags, and in practice no users of this feature
are negatively affected and all actually work slightly better with
this change.
The most important change is a fix to sourceware bug 28933, a buffer
overrun when libctf reads in uncompressed (i.e., probably very small)
CTF that was generated on a machine of the opposite endianness.
To prevent this happening again we generalize the byteswapper so that
it can be used to swap out of the native endianness as well as into
it, and add an environment variable that can be used when debugging
to force writeout of the CTF dict in the non-native endianness
instead, so we can finally properly test the code paths that only
kick in when byteswapping.
Nick Alcock (4):
ld, testsuite: improve CTF-availability test
include, libctf, ld: extend variable section to contain functions too
libctf, ld: diagnose corrupted CTF header cth_strlen
libctf: add LIBCTF_WRITE_FOREIGN_ENDIAN debugging option
include/ctf.h | 8 +-
.../ld-ctf/data-func-conflicted-vars.d | 69 ++++++
ld/testsuite/ld-ctf/diag-cttname-invalid.s | 2 +-
ld/testsuite/ld-ctf/diag-cttname-null.s | 2 +-
ld/testsuite/ld-ctf/diag-cuname.s | 2 +-
ld/testsuite/ld-ctf/diag-parlabel.s | 2 +-
ld/testsuite/ld-ctf/diag-parname.s | 2 +-
ld/testsuite/ld-ctf/diag-strlen-invalid.d | 5 +
...ttname-invalid.s => diag-strlen-invalid.s} | 0
ld/testsuite/lib/ld-lib.exp | 24 +-
libctf/ctf-impl.h | 2 +
libctf/ctf-link.c | 37 ++-
libctf/ctf-open.c | 102 +++++---
libctf/ctf-serialize.c | 219 +++++++++---------
14 files changed, 322 insertions(+), 154 deletions(-)
create mode 100644 ld/testsuite/ld-ctf/data-func-conflicted-vars.d
create mode 100644 ld/testsuite/ld-ctf/diag-strlen-invalid.d
copy ld/testsuite/ld-ctf/{diag-cttname-invalid.s => diag-strlen-invalid.s} (100%)
base-commit: bb368aad297fe3ad40cf397e6fc85aa471429a28
prerequisite-patch-id: 92872e00ca2b73dacdf3560166e14946e5c8c9e8
prerequisite-patch-id: a56ae1e4c6217f978cfab173162d19c5bec6b66e
prerequisite-patch-id: 98681ad6dfb609b75fb99faa6a4607b4dbaa9ff4
prerequisite-patch-id: fb4fb6c34271b9c1109234f05b948b8165a68270
prerequisite-patch-id: ea5af70db40bbb20e8588cf89fec3164dc3ba1d3
prerequisite-patch-id: 4a7283db1d6c4ac508cf624411945fe6276a42f2
prerequisite-patch-id: 9024b50dd0e396370f91b6a1e07c9b39e09a8871
prerequisite-patch-id: e114d6610e5a5e96766ffc47909040715e63ec4b
prerequisite-patch-id: 58f5630d18a1e32e8b7dd0ccc734d0046c9ebdb5
prerequisite-patch-id: 74a9849f23d902f5cb6d99ec7041dac407499534
prerequisite-patch-id: 0edd30d8a73394dd8bf17eaba84390be8c49cdc5
prerequisite-patch-id: ee024384bddb95ccbed56c4e877c477b90aecd09
prerequisite-patch-id: bb2b236d705a047c77111434e808b951c17e07a4
prerequisite-patch-id: bc798478702505d71177ad369f60ed0d2f6690a1
prerequisite-patch-id: 380d4bb4907763fff91d79f0410298436b8d57d0
prerequisite-patch-id: f36a3a087a64d3a65d95952c5c4f45adab672c07
prerequisite-patch-id: 779750a965e8163d6a989edf2c09fe06a49d5f08
prerequisite-patch-id: b6bdba26b904756e0481c55ad719687dd5022fbe
prerequisite-patch-id: 4e03d099a59d6e67632e1dbbb5c971746096d932
prerequisite-patch-id: 0c9657495a39a5560fe8eb87464de59f56ab73d7
prerequisite-patch-id: 0b6a82625015ae62f622c5e89966c8213088a260
prerequisite-patch-id: 25c94c705bef9d15eace9ac3bcb57e126c03b6f0
prerequisite-patch-id: cd4fcf984a99b38332d9917990170835d95a027f
prerequisite-patch-id: 0352b9de77fac90515c24377ad63d8204e8245bb
prerequisite-patch-id: abf93ac65c0621c1557c5376780a8b0b43d26e50
prerequisite-patch-id: f353a2ab037d28b0fcc3d4f3d9bd139317140960
prerequisite-patch-id: 0984334f5518e857340283f6b9cfe728b9baa563
prerequisite-patch-id: e943518b884c6754a669a963d7018030b1f420d9
prerequisite-patch-id: c974dd4ed0d8bff8a1e41d58f4387bb294b527a2
prerequisite-patch-id: b2cfa9d031946885120abc524cf55af589e7db73
prerequisite-patch-id: 0e34ae632b44ad51ee60b78e2477c59b88f04aa8
prerequisite-patch-id: 6cc12f5d3f57b3152c88f07b0bfed5a5c25ba452
prerequisite-patch-id: e5738774c19fc68690ac626d505b16bc83ffe64f
prerequisite-patch-id: fda4d965c64c1cf299a94417d868f3e77e35dddd
prerequisite-patch-id: 45a7b39f33d104a8cbbc205db2ea003ca5d713a1
prerequisite-patch-id: 0b47ea7b3c5cf4c555ee07ce208b99fa8505fd8e
prerequisite-patch-id: 1fa6f3a5a49712edfc038eb8e28e95cf728a27c4
prerequisite-patch-id: c911f20a9746210e8b30154caf1c1fe92a54724c
prerequisite-patch-id: 63c745dfbdcefd66cbd9991a4ca2d87134648eb0
prerequisite-patch-id: 7e1a61b3c0d3330e088552efc63ef19955915988
prerequisite-patch-id: 9c0d06f03b6ef7689d1521fd01b7ac62f457b6b1
prerequisite-patch-id: 9e9149136bcd2bc7ccb4b53bdc7ef26a66535248
prerequisite-patch-id: 0f343b78e27bc603a4b7068ad4c9ba17e009c5cd
prerequisite-patch-id: 652590e84ac8f37cad254fbc9165a2c8d2701c5c
prerequisite-patch-id: 369637be97ec85415c7be56c11e9981019f716cd
prerequisite-patch-id: 6af72bee97fa1d951dcb86be035651e1d3ef5ad9
prerequisite-patch-id: 9b20bb7c36f34a3cff34697e121ece43b65755b4
prerequisite-patch-id: 48d7be5f19a7d0816ff92368a4891a54f381192a
prerequisite-patch-id: e88357ba3286fd2cebc83f861bfb5cf75e1bffda
prerequisite-patch-id: 652f20da5066dba06e1ae770d64f45779a043920
prerequisite-patch-id: 9d34ff1ccde498d83742619536a395a336f94e89
prerequisite-patch-id: 55c02e7e1bf507d0adc6ced3c971b4f00f13348e
prerequisite-patch-id: 14e043d4be0f54d52f788ea1fdd21a23d9b253d0
prerequisite-patch-id: 1650e28c78426cbd97c274c88dfe1431913377b7
prerequisite-patch-id: c43eaf3aad2ac41d012825b8916d57232eab7232
prerequisite-patch-id: 2a4a55cd53678430c2af9b429781e4ec218504ba
prerequisite-patch-id: 8e4398615f6259a537c7f9298f4e01dfda7593a2
prerequisite-patch-id: b3723d267e4daa1740e1293df5252987834ff7e1
prerequisite-patch-id: 65cc62cf39694ffe1ac0563d0519e06cb6e78f1a
prerequisite-patch-id: 56fcceb5d42c944a3a664377b24d05fa731167a7
prerequisite-patch-id: fb5dd8c6b522b5d20d2ad229dc087d6845591780
prerequisite-patch-id: 0e5820182e5a6e9e28f3682127b918d29163ae77
prerequisite-patch-id: 003bfa2c471907a17cf76b49c9091bed4f58f8e7
prerequisite-patch-id: 835b0169ce56786d6cee5f94406cefc71aa069ae
prerequisite-patch-id: af0835d26d01b36a9f790b0ca070fb3d10e75bcc
prerequisite-patch-id: 889402116125c2bc015b1feabb0be9bfcafe14ec
prerequisite-patch-id: 48eed66dad8aca1b97c4db23bbe89407f9bfdedc
prerequisite-patch-id: b9dd63ecc574bf20ac291de4b7bc9cc46d36b423
prerequisite-patch-id: c0eb76d4b7655cd2d5428b6082f70ca83e857035
prerequisite-patch-id: 33f5411515ad446100aaa7aa656aa693212062a3
prerequisite-patch-id: 9dc39bf1d18d0b0432e4e147dc3b8be49cdbd2ec
prerequisite-patch-id: 61375e5c1c300661b4fdc342a6833aafad4a2d34
prerequisite-patch-id: d258ad649f84f0bd733863c6e404eafc78740478
prerequisite-patch-id: c2304490c25672fae029f45b51a2fa3feba5e19a
prerequisite-patch-id: 5dba7e2868b7bcf9c7d8ad58c722ea085cf1f192
prerequisite-patch-id: 5f45f7de52744a4c918a0c30ee0bf1daa3a54ba8
prerequisite-patch-id: 94d23412c629f1d1fabe7e85c889628b8a089102
prerequisite-patch-id: 5cc5aaf9d9c9abd7d0fb0d17d5b9f30739e15b16
prerequisite-patch-id: 450d3fd2ae5d061f4d5123c620f141b6f1a953d8
prerequisite-patch-id: fff88d650c15d19c858121e6609bf9ffa17acfc7
prerequisite-patch-id: 24328f427d4397fccbc609cb0d0774d27c2f8d3d
prerequisite-patch-id: 5157356b7b54bf5a8f81f1b023c4964d2dedc347
prerequisite-patch-id: e637ac80e1bac8b61e76ac6cf884caee261d8a6a
prerequisite-patch-id: 12ce086e97061c8038c4489a4aa6fb99bae23c33
prerequisite-patch-id: 997a5a0cdc0a0cc1932279d48986fc394b2bc5b3
prerequisite-patch-id: f4940a9cdc2056757d730ada67daca46e3826017
prerequisite-patch-id: 46a35bee86e0f927cfe2ad7b8bd609beb17cc845
prerequisite-patch-id: a35a1df053b9fdc1e682d92aea745e88b36ca715
prerequisite-patch-id: 3c1011003b9de4bac7b795b39ad024c2af28a0a2
prerequisite-patch-id: eb675a41c3307438c394d9dcd8cd54c2e08f4059
prerequisite-patch-id: a97a216272895695a196bdbf875f99c5754e0f6a
prerequisite-patch-id: 01916daf641d0d55bed0630565091ecb43dc4088
prerequisite-patch-id: d2eda91b9a27df188c6a7e80408af3db73756b4c
prerequisite-patch-id: dd113253f08e6774e9c05ffc867bf3f70749a0ad
prerequisite-patch-id: 90b7a55e6d24734a909af3c0247274d480bc83a1
prerequisite-patch-id: 484d7a8e6d1a6e1ab8ca31a73fac6111261565cb
prerequisite-patch-id: 56311938d6f15bde8a503cc3772c13a517d92457
prerequisite-patch-id: 734a8a92a263c227ec40314a4baa7475d9edcb78
prerequisite-patch-id: 12eaabdc6dd9b1228fe63e9cda7058d118ad5d35
prerequisite-patch-id: 6aedc79fd7d9fe6b0f62be7a4d7060a884224c73
prerequisite-patch-id: 4200cb21291d376fec7ac572b7595dee9973415e
--
2.35.1.261.g8402f930ba.dirty
More information about the Binutils
mailing list