chars are unlike ints, etc.: their "default" signedness is undefined

plain char can be unsigned as well as signed (it is implementation-dependent);
discovered by compilation warning:
    outbase.c:226:6: warning: comparison is always true due to limited range of data type [-Wtype-limits]
    if (i < length - 1 && str[i + 1] >= 0 && str[i + 1] <= 7)
                          ^
modified: elftoc/outbase.h, elftoc/outbase.c, elftoc/out.c

second commit fixes ELF version check in header; with wrong check, you will get "warning: unrecognized ELF header version: 2." on big-endian machine (ELFDATA2MSB = 2, and EV_NUM = 2 too)