use ld instead gcc, check clang compatibility