Search code examples
cross-compilingtarget-platform

Meaning of "pc" in target architecture triplet


I've successfully compiled things with the target i686-linux-gnu and i686-pc-linux-gnu; they seem to be equivelent. What's the difference?


Solution

  • You can find some tips looking at GNU Coding Standards where you can read:

    The configure script should also take an argument which specifies the type of system to build the program for. This argument should look like this:

    cpu-company-system
    

    For example, an Athlon-based GNU/Linux system might be ‘i686-pc-linux-gnu’. The configure script needs to be able to decode all plausible alternatives for how to describe a machine. Thus, ‘athlon-pc-gnu/linux’ would be a valid alias

    Moreover i686 conventionally refers to a 32-bit kernel whereas x86_64 refers to a 64-bit kernel as you can see in this SO thread.

    Particularly instructive is the config.guess shell script that shows you all the possibilities taken into account when the build type is not specified by an option or argument.