Bug #1450: Illumos should be buildable with GCC4
libld may accidentally return success while failing
In two places in the linker we accidentally return succes while trying to fail.
ar_extract_all we return
ar_member_path fails, both of these functions return
Boolean which in the linker is an enum of two values (TRUE and FALSE, 0 and 1), with FALSE being failure. Unfortunately
S_ERROR is a word-sized ~0, which when liberally interpreted is true, and signifies success.
GCC4 type checks this and complains that ~0 is not a member of the Boolean enum.