The sad thing is that &quot;easy to link and embed&quot; and &quot;permissive license&quot; really didn&#x27;t have to go together like they did in LLVM.<p>GCC <i>could</i> have provided a library that made it easy to do code generation or compiler development.  That library could still have used the GPL, so that only Free Software could use it.  Some of the work that has happened around LLVM wouldn&#x27;t have happened around such a library, but some of it would have.  (GCC has much more recently started down the &quot;plugin&quot; route, but too little too late.)<p>For instance, Swift might not have happened.  But Rust may well have; a rustc compiler under GPL would not have broken anyone&#x27;s ability to use it, any more than GCC&#x27;s GPL prevents people from building proprietary software with it.<p>But instead, the GNU project chose to make it difficult to build any extension to GCC outside of GCC&#x27;s own codebase.  So instead of having an easy-to-use library provided by GCC under GPL, which might have furthered many of the GNU project&#x27;s goals and encouraged more Free Software compiler development, they forced the development of an entirely separate compiler project to provide such a library.  And the people who came along to do so, since they had to rewrite it anyway, chose to do so under a permissive license.<p>So, at least in hindsight, the Free Software world is worse off than it would have been had GCC provided a library infrastructure.