Jan. 8th, 2017

netch80: (finch)
Пересобрал тут одну программку, а в ней main() видно не как main, а как main@@Base, и аналогично все прочие символы из основного кода.
Откуда это - в принципе понятно. Непонятно, чего хотят этим добиться.
netch80: (finch)
Это надо занести в хрестоматию как чистейший пример фатального неумения писать документацию.

     __asm__(".symver original_foo,foo@");
     __asm__(".symver old_foo,foo@VERS_1.1");
     __asm__(".symver old_foo1,foo@VERS_1.2");
     __asm__(".symver new_foo,foo@@VERS_2.0");
[...]


When you have multiple definitions of a given symbol, there needs to be some way to specify a default version to which external references to this symbol will be bound. You can do this with the `foo@@VERS_2.0' type of `.symver' directive. You can only declare one version of a symbol as the default in this manner; otherwise you would effectively have multiple definitions of the same symbol.

(источник)

Из такого объяснения в принципе непонятно, что играет роль признака "default version" - номер версии, порядок объявления, или два '@' вместо одного (правильно - последнее, но его тяжелее всего заметить). Автору данного пассажа из документации правильный ответ известен, но он просто не в состоянии догадаться, что тот, кто его не знает, не поймёт такого объяснения.

Сомневаюсь, что стоит посылать жалобу (пусть даже с патчем) - если рассматривать будут те же, они просто не поверят.

Profile

netch80: (Default)
netch80

April 2017

S M T W T F S
      1
234 5678
9101112131415
1617 181920 2122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 27th, 2017 10:30 am
Powered by Dreamwidth Studios