Writing a module is much like writing an application. You
have to provide the "conventional hooks" for it to work
correctly, like pam_sm_authenticate()
etc., which would correspond to the main()
function in a normal function.
Typically, the author may want to link against some standard system
libraries. As when one compiles a normal program, this can be
done for modules too: you simply append the
-l
XXX arguments
for the desired libraries when you create the shared module object.
To make sure a module is linked to the
libwhatever.so library
when it is dlopen()
ed, try:
% gcc -shared -o pam_module.so pam_module.o -lwhatever