I've been working on "modularizing" the ieee80211 code, and I've discovered that the code using a link_set to collect various one-time initialization routines. There is a RUN_ONCE() invocation that uses __link_set_for_each() to iterate over these init routines.

This all works just fine when including net80211 in a monolithic kernel, but for some reason, when building as a module, the link_set sections don't seem to get created (they're not listed by objdump -h).

__link_set_for_each tries to loop through the items in {start,stop}_link_set_"set-name" - these items are "contributed" by other source files. But the symbols that should identify the start and stop of the link set are undefined.

Any suggestions on an appropriate alternate to link sets to collect the "contributions"?


If anyone wants to look at the actual code, it is in src/sys/net80211/ieee80211_netbsd.[ch]


Thanks!



-------------------------------------------------------------------------
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:       |
| Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com    |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------

Reply via email to