For most of the 2010s, the OpenBSD base system has been stuck with GCC 4.2.1. It was released in July 2007, imported into the OpenBSD source tree in October 2009, and became the default compiler on the amd64, i386, hppa, sparc64, socppc and macppc platforms in OpenBSD 4.8, released in November 2010. As specified in the commit message during import, this is the last version released under the GPLv2 license.
OpenBSD was not the only operating system sticking to GCC 4.2.1 for licensing reasons, FreeBSD did the same, and Mac OS X as well.
As a general rule, and this is not OpenBSD specific, being stuck with old compilers is problematic for several reasons.
It seems most platforms OpenBSD supports now come with modern, up-to-date toolchains.
As I’m no expert in licensing stuff, which part of the GPLv3 was the problem for these companies?
It’s generally the copyleft provisions that are objectionable. The BSD’s and GNU have opposing ideologies for open source software. The BSD stance is aimed more towards the individual freedoms of the downstream users, there are few if any restrictions on use and distribution other than an acknowledgement that BSD software has been used. The GNU stance is aimed more towards the idea of “the needs of the many” and require downstream users to publish the changes made to the source if they distribute modified versions.
This is by no means the whole of the reason, just an attempt to boil it down to a simple comparison between the two philosophies.