on darwin<10, use .weak_definition over .weak_def_can_be_hidden