[PATCH] D69594: Warn when an output section name is longer than 8 characters

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 30 01:17:12 PDT 2019


mstorsjo added a comment.

> Microsoft's dumpbin tool cannot handle such PE files.

This had me quite surprised, as I'm sure it was able to handle them just fine.

By testing a few different versions of such tools I had lying around, I see that this worked just fine up to MSVC 2019 16.1, but in 16.2 it changed to error out with "LINK : fatal error LNK1328: missing string table". I'm a bit unsure about whether this really is intended behaviour, or just a bug.

This change in itself seems fine though.

As a heads up for slightly related matters, I'm considering implementing more options for controlling when and how the long section names are emitted (requested at https://github.com/mstorsjo/llvm-mingw/issues/56). GNU ld has options `--enable-long-section-names` and `--disable-long-section-names` (where I think disabled was the default in some ancient past, but enable is the default these days, and Rust build tooling includes the `--enable-long-section-names` flag, which lld/MinGW doesn't recognize yet). Haven't yet entirely decided on whether we should make those options override our current default logic (include long name if debug is enabled, except for runtime mapped sections like `.eh_frame` where libunwind needs to be able to locate the section name), or just make them override the defaults for non-runtime-mapped sections (like .debug_* and the rust metadata section).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69594/new/

https://reviews.llvm.org/D69594





More information about the llvm-commits mailing list