gcc: improve comparisons against constants

Simplify the constants when possible, e.g. by converting the comparison
(x > 4095) into (x >= 4096), or (x == 2048) into (x - 2048 == 0).
gcc: improve cost model
Use symlinks instead of hard links

This allows the build dir to be on a different file system than the source
dir, and it also enables proper operation of e.g. git checkout/stash.
gcc: improve rv64 codegen for mixed integer widths
Avoid 'multiple definition' errors when using mathinline.h functions with GNU99 (and -O2).
Merge pull request #6 from martinmaas/mathinline_h

Avoid 'multiple definition' errors
glibc: eliminate historic __socket() wrapper

Match the generic syscall interface derived from <asm-generic/unistd.h>,
which assigns a separate syscall number to each socket operation rather
than multiplexing through socketcall(2).