The Free Pascal compiler supports smartlinking and the creation of libraries. However, the default behaviour is to compile each unit into one big object file, which will be linked as a whole into your program. Shared libraries can be created on any platform except MS-DOS.
It is also possible to take existing units and put them together in 1 static or shared library (using the ppumove tool, section 8.7, page 422).