Combining X+Y in the way that you have described is anything but mechanical: it is a task which typically takes a skilled programmer a great amount of time and thought. Different programmers might do it in different ways. I'm not referring here to the work done by ld, but to the process of building a new program which has libfoo as a component.
Additionally, the program ultimately delivered to the user isn't X with some minor bits of Y. It contains big chunks of Y -- one per function used, at least -- directly copied. Just being in a different memory space isn't enough to change the relationship between the creative parts of the works. The program vim encompasses a copy of libc. -Brian -- Brian Sniffen [EMAIL PROTECTED]