Part 2 of D9955 , i.e. llvm-readobj bits.
It seems that readelf puts a "Flags: " string before the actual flag value for FLAGS1 and not FLAGS, e.g.
0x000000000000001e (FLAGS) ORIGIN BIND_NOW
0x000000006ffffffb (FLAGS_1) Flags: NOW ORIGIN
I personally think this doesn't make a lot of sense and considering llvm-readobj already broke format compatibility w/ GNU readelf (at least the version on my system, 2.17.50), not surrounding among others the type name with braces, I just ignored it, so llvm-readobj -dynamic-table will print something like:
0x000000000000001E FLAGS ORIGIN BIND_NOW
0x000000006FFFFFFB FLAGS_1 NOW ORIGIN
If there are objections, I can change the format.
P.S. Too bad all the tests for llvm-readobj rely on executable, maybe at some point this should be changed, but at least the new test doesn't.