clang with libc++ does not like using void* function pointer with sqrt.
Update waflib config to detect sqrt function using the correct
c++ function pointer syntax.
Fixes glmark2 build when using libc++ in clang.
diff -Nuar old/waflib/Tools/c_config.py new/waflib/Tools/c_config.py
--- old/waflib/Tools/c_config.py
+++ new/waflib/Tools/c_config.py
@@ -12,6 +12,13 @@
 DEFKEYS='define_key'
 INCKEYS='include_key'
 cfg_ver={'atleast-version':'>=','exact-version':'==','max-version':'<=',}
+SNIP_FUNCTION_SQRT='''
+	int main() {
+	double (*p)(double);
+	p=(%s);
+	return 0;
+}
+'''
 SNIP_FUNCTION='''
 	int main() {
 	void *p;
@@ -250,7 +257,10 @@
 		fu=kw['function_name']
 		if not'msg'in kw:
 			kw['msg']='Checking for function %s'%fu
-		kw['code']=to_header(kw)+SNIP_FUNCTION%fu
+		if (fu == 'sqrt') :
+			kw['code']=to_header(kw)+SNIP_FUNCTION_SQRT%fu
+		else:
+			kw['code']=to_header(kw)+SNIP_FUNCTION%fu
 		if not'uselib_store'in kw:
 			kw['uselib_store']=fu.upper()
 		if not'define_name'in kw:
