There was a sort-of kerfluffle between the FSF and NeXT with regard to what was required for NeXT to be GPL-compliant. This is RMS' account:
"I say this based on discussions I had with our lawyer long ago. The
issue first arose when NeXT proposed to distribute a modified GCC in
two parts and let the user link them. Jobs asked me whether this was
lawful. It seemed to me at the time that it was, following reasoning
like what you are using; but since the result was very undesirable for
free software, I said I would have to ask the lawyer.
What the lawyer said surprised me; he said that judges would consider
such schemes to be "subterfuges" and would be very harsh toward
them. He said a judge would ask whether it is "really" one program,
rather than how it is labeled.
So I went back to Jobs and said we believed his plan was not allowed
by the GPL.
The direct result of this is that we now have an Objective C front
end. They had wanted to distribute the Objective C parser as a
separate proprietary package to link with the GCC back end, but since
I didn't agree this was allowed, they made it free."
(from http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-...)
I'd be curious to hear more firsthand details from any parties involved. There's a widely held perception that this was a really divisive and drawn-out fight that left a lot of bad blood on both sides, but based on RMS' account, it wasn't. RMS' account just sounds like Jobs contacted him about it, said "is it OK if we ship it this way?", RMS checked with his lawyer and responded, "no, you need to ship it this other way to comply with the GPL", to which Jobs' replied, "OK, we'll do it that way then".