it links with gcc, but not with clang.  strange