There are a number of different situations when symbols are requested to be ordered in the --symbol-ordering-file that cannot be ordered for some reason. To assist with identifying these symbols, and either tidying up the order file, or the inputs, a number of warnings have been added. As some users may find these warnings unhelpful, due to how they use the symbol ordering file, a switch has also been added to disable these warnings.
The cases where we now warn are:
- Entries in the order file that don't correspond to any symbol in the input
- Undefined symbols
- Absolute symbols
- Symbols imported from shared objects
- Symbols that are discarded, due to e.g. --gc-sections or /DISCARD/ linker script sections
- Multiple of the same entry in the order file
I do not think this struct should be here.
I believe in Driver.cpp you want to report "specified multiple times" error,
but Priority and Present are things that you need only once in
buildSectionOrder and so them probably should be computed, used
and then forgotten right there.