lint is at least installed as part of the FreeBSD and OpenBSD (although I always opt into installing development tools/compilers).
The versions in FreeBSD and OpenBSD are slightly different and there is also splint available in ports (formally lclint I think) which I'd guess is what most Linux distros would ship with.
My shells rc file usually adds system specific aliases for the installed gcc and lint. Typically defining lint and gcc with the most switches I always use that are also common to all of my systems. Along with lint_all, lint_ansi, and lint_traditional, gcc_debug, gcc_wall, and gcc_optimize with their obvious meanings but tuned to the local lint/gcc setup.
from my ~/.zshrc on FreeBSD:
Code:
alias gcc='gcc -Wall -W -Wpointer-arith -Wbad-function-cast -std=c99 '
alias gcc_wall='gcc -Wall -Wpointer-arith -Wcast-qual -Wcast-align \
-Wconversion -Waggregate-return -Wstrict-prototypes \
-Wmissing-prototypes -Wmissing-declarations -Wredundant-decls \
-Winline -Wnested-externs -std=c99 -march=i686 -pipe'
alias gcc_optimize=' -fforce-mem -fforce-addr -finline-functions \
-fstrength-reduce -floop-optimize -O3'
alias gcc_debug='gcc -ggdb3'
alias lint='lint -cehzs'
alias lint_all='lint -aaabcehHz'
alias lint_ansi='lint -aaabcehHzs'
alias lint_traditional='lint -aaabcehHzt'
I usually look these up when I write makefiles.