The feature is documented as
The format of the dynamic list is the same as the version node without scope and node name. See *note VERSION:: for more information.
And indeed qt uses a dynamic list with an 'extern "C++"' in it. With this patch we support that
The change to gc-sections-shared makes us match bfd. Just because we kept bar doesn't mean it has to be in the dynamic symbol table.
The changes to invalid-dynamic-list.test and reproduce.s are because of the new parser.
The changes to version-script.s are the only case where we change behavior with regards to bfd, but I would like to see a mix of --version-script and --dynamic-list used in the wild before complicating the code.
Remove {