During the drafting process of GPLv3, one of the additional requirements added over GPLv2 was the "Installation Information" requirement (often referred to as "anti-TiVOization" for reasons that will escape those not familiar with copyleft controversies of the mid-'00s).
It's a rather complex requirement, which admits of numerous exceptions and limitations, but users of GPLv3 code need to pay attention to it, particularly if they want to include features in devices using such code that they wish to lock-down or otherwise impede changes by end users.
I've posted below a copy of a presentation that Andy Wilson & I originally made at the Free Software Foundation Europe's workshop in Amsterdam in 2008 (if I remember the year correctly), slightly revised. As far as I know, this is one of the few examples of a detailed analysis of this provision and how product companies ought to work though compliance; Bradley Kuhn has also written/presented on this as well, more recently, in the context of the automotive industry -- one of the industries that, at least in the past, has had concerns about compliance with this provision.
At some point, I hope to write a more comprehensive summary of this provision, updated with more recent data about usage and compliance data, but for now, this may be of use for those of you who haven't really studied this provision in detail.