Просматривая исходный код clk, я обнаружил, что большинство часов используют макрос CLK_OF_DECLARE, который при раскрытии создает структуру of_device_id в разделе __clk_of_table
Существует объявление структуры __clk_of_table:
extern struct of_device_id __clk_of_table;
Этот поток предполагает, что __clk_of_table отражает специальный раздел.
Затем на него ссылаются как:
matches = &__clk_of_table;
Как компилятор знает, что он должен ссылаться на раздел, а не на необъявленная структура?