[llvm-dev] Updating config.guess, license change

Harald van Dijk via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 31 00:09:47 PDT 2021


We have a file llvm/cmake/config.guess we inherited from back when we 
had an Autoconf build system, which guesses the triple of the current 
system. As support for new targets get added, this file needs updating 
to detect those new targets. In order to detect a particular target, I 
proposed updating this to the current upstream version, D99625.

When we had an Autoconf build system, this file contained a special 
license exception:

# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.

In D16471, the Autoconf build system was removed, so this license 
exception no longer applied and the file became plain GPLv2. As we only 
ever call this script to read its output, rather than including the 
script in some way in the generated LLVM, this should not be a problem: 
the GPLv2 places no restrictions on how its output is used.

The current version is no longer licensed under GPLv2, it is licensed 
under GPLv3, though the license exception remains.

My understanding is that we are on an older version mostly out of 
laziness, not because the GPLv3-licensed version is something we need to 
avoid: we are on the version we happened to use with autoconf, not the 
most recent GPLv2 version. Nonetheless, on review it was suggested to 
bring this change to the list; laziness does not rule out the license 
also potentially being a problem.

So, what is the best way to go here? I think we have three options:

1- Use the upstream version under GPLv3.
2- Use the upstream version along with a dummy configure script
    generated by Autoconf that just spits out an error saying Autoconf
    cannot be used to build LLVM.
3- Independently add support for new targets to the GPLv2 version of
    config.guess.

Option 1 has my preference. As we still only call the script and read 
its output, the GPLv3 should be no more a problem than the GPLv2. 
Nonetheless, it would be good to have confirmation that this is okay.

Option 2 very much abuses the spirit of the config.guess license 
exception, so I would like to avoid that.

Option 3 is possible but requires duplicating work already done by upstream.

Thoughts? Comments?

Cheers,
Harald van Dijk


More information about the llvm-dev mailing list