Похоже, что CPP не является отдельной программой, все, что она делает, это execv cc1, записанный с помощью следующей команды strace
execve("/usr/lib/gcc/x86_64-linux-gnu/9/cc1", ["/usr/lib/gcc/x86_64-linux-gnu/9/"..., "-E", "-quiet", "-imultiarch", "x86_64-linux-gnu", "-", "-mtune=generic", "-march=x86-64", "-fasynchronous-unwind-tables", "-fstack-protector-strong", "-Wformat", "-Wformat-security", "-fstack-clash-protection", "-fcf-protection"]
# Which results into the following command line
/usr/lib/gcc/x86_64-linux-gnu/9/cc1 -E -quiet -imultiarch x86_64-linux-gnu --mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection
Это подтверждается с помощью следующей ссылки:
https://en.wikibooks.org/wiki/GNU_C_Compiler_Internals/GNU_C_Compiler_Architecture
Программа cc1 включает в себя как препроцессор, так и компилятор C. Он компилирует исходный файл C и создает файл сборки (.S).