Index: uspace/app/dltest/dltest.c
===================================================================
--- uspace/app/dltest/dltest.c	(revision e2f260026920f1d43bed8d2b775564b1f64a6f6a)
+++ uspace/app/dltest/dltest.c	(revision 97696ab1816deac19e577366523288ba111157cb)
@@ -96,4 +96,5 @@
 {
 	int (*p_dl_get_private_var)(void);
+	int *(*p_dl_get_private_var_addr)(void);
 	int val;
 
@@ -106,8 +107,16 @@
 	}
 
+	p_dl_get_private_var_addr = dlsym(handle, "dl_get_private_var_addr");
+	if (p_dl_get_private_var_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = p_dl_get_private_var();
 
 	printf("Got %d, expected %d... ", val, dl_private_var_val);
 	if (val != dl_private_var_val) {
+		printf("dl_get_private_var_addr -> %p\n",
+		    p_dl_get_private_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -124,4 +133,5 @@
 {
 	int (*p_dl_get_private_uvar)(void);
+	int *(*p_dl_get_private_uvar_addr)(void);
 	int val;
 
@@ -134,8 +144,16 @@
 	}
 
+	p_dl_get_private_uvar_addr = dlsym(handle, "dl_get_private_uvar_addr");
+	if (p_dl_get_private_uvar_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = p_dl_get_private_uvar();
 
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("dl_get_private_uvar_addr -> %p\n",
+		    p_dl_get_private_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -152,4 +170,5 @@
 {
 	int (*p_dl_get_public_var)(void);
+	int *(*p_dl_get_public_var_addr)(void);
 	int val;
 
@@ -162,8 +181,16 @@
 	}
 
+	p_dl_get_public_var_addr = dlsym(handle, "dl_get_public_var_addr");
+	if (p_dl_get_public_var_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = p_dl_get_public_var();
 
 	printf("Got %d, expected %d... ", val, dl_public_var_val);
 	if (val != dl_public_var_val) {
+		printf("dl_get_public_var_addr -> %p\n",
+		    p_dl_get_public_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -180,4 +207,5 @@
 {
 	int (*p_dl_get_public_uvar)(void);
+	int *(*p_dl_get_public_uvar_addr)(void);
 	int val;
 
@@ -190,8 +218,16 @@
 	}
 
+	p_dl_get_public_uvar_addr = dlsym(handle, "dl_get_public_uvar_addr");
+	if (p_dl_get_public_uvar_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = p_dl_get_public_uvar();
 
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("dl_get_public_uvar_addr -> %p\n",
+		    p_dl_get_public_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -208,4 +244,5 @@
 {
 	int *p_dl_public_var;
+	int *(*p_dl_get_public_var_addr)(void);
 	int val;
 
@@ -218,8 +255,17 @@
 	}
 
+	p_dl_get_public_var_addr = dlsym(handle, "dl_get_public_var_addr");
+	if (p_dl_get_public_var_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = *p_dl_public_var;
 
 	printf("Got %d, expected %d... ", val, dl_public_var_val);
 	if (val != dl_public_var_val) {
+		printf("&dl_public_var = %p, "
+		    "dl_get_public_var_addr -> %p\n",
+		    p_dl_public_var, p_dl_get_public_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -236,4 +282,5 @@
 {
 	int *p_dl_public_uvar;
+	int *(*p_dl_get_public_uvar_addr)(void);
 	int val;
 
@@ -246,8 +293,17 @@
 	}
 
+	p_dl_get_public_uvar_addr = dlsym(handle, "dl_get_public_uvar_addr");
+	if (p_dl_get_public_uvar_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = *p_dl_public_uvar;
 
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("&dl_public_uvar = %p, "
+		    "dl_get_public_uvar_addr -> %p\n",
+		    p_dl_public_uvar, p_dl_get_public_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -264,4 +320,5 @@
 {
 	int (*p_dl_get_private_fib_var)(void);
+	int *(*p_dl_get_private_fib_var_addr)(void);
 	int val;
 
@@ -274,8 +331,16 @@
 	}
 
+	p_dl_get_private_fib_var_addr = dlsym(handle, "dl_get_private_fib_var_addr");
+	if (p_dl_get_private_fib_var_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = p_dl_get_private_fib_var();
 
 	printf("Got %d, expected %d... ", val, dl_private_fib_var_val);
 	if (val != dl_private_fib_var_val) {
+		printf("dl_get_private_fib_var_addr -> %p\n",
+		    p_dl_get_private_fib_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -292,4 +357,5 @@
 {
 	int (*p_dl_get_private_fib_uvar)(void);
+	int *(*p_dl_get_private_fib_uvar_addr)(void);
 	int val;
 
@@ -302,8 +368,16 @@
 	}
 
+	p_dl_get_private_fib_uvar_addr = dlsym(handle, "dl_get_private_fib_uvar_addr");
+	if (p_dl_get_private_fib_uvar_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = p_dl_get_private_fib_uvar();
 
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("dl_get_private_fib_uvar_addr -> %p\n",
+		    p_dl_get_private_fib_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -320,4 +394,5 @@
 {
 	int (*p_dl_get_public_fib_var)(void);
+	int *(*p_dl_get_public_fib_var_addr)(void);
 	int val;
 
@@ -330,8 +405,16 @@
 	}
 
+	p_dl_get_public_fib_var_addr = dlsym(handle, "dl_get_public_fib_var_addr");
+	if (p_dl_get_public_fib_var_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = p_dl_get_public_fib_var();
 
 	printf("Got %d, expected %d... ", val, dl_public_fib_var_val);
 	if (val != dl_public_fib_var_val) {
+		printf("dl_get_public_fib_var_addr -> %p\n",
+		    p_dl_get_public_fib_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -348,4 +431,5 @@
 {
 	int (*p_dl_get_public_fib_uvar)(void);
+	int *(*p_dl_get_public_fib_uvar_addr)(void);
 	int val;
 
@@ -358,8 +442,16 @@
 	}
 
+	p_dl_get_public_fib_uvar_addr = dlsym(handle, "dl_get_public_fib_uvar_addr");
+	if (p_dl_get_public_fib_uvar_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = p_dl_get_public_fib_uvar();
 
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("dl_get_public_fib_uvar_addr -> %p\n",
+		    p_dl_get_public_fib_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -376,4 +468,5 @@
 {
 	int *p_dl_public_fib_var;
+	int *(*p_dl_get_public_fib_var_addr)(void);
 	int val;
 
@@ -386,8 +479,17 @@
 	}
 
+	p_dl_get_public_fib_var_addr = dlsym(handle, "dl_get_public_fib_var_addr");
+	if (p_dl_get_public_fib_var_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = *p_dl_public_fib_var;
 
 	printf("Got %d, expected %d... ", val, dl_public_fib_var_val);
 	if (val != dl_public_fib_var_val) {
+		printf("&dl_public_fib_var = %p, "
+		    "dl_get_public_fib_var_addr -> %p\n",
+		    p_dl_public_fib_var, p_dl_get_public_fib_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -404,4 +506,5 @@
 {
 	int *p_dl_public_fib_uvar;
+	int *(*p_dl_get_public_fib_uvar_addr)(void);
 	int val;
 
@@ -414,8 +517,17 @@
 	}
 
+	p_dl_get_public_fib_uvar_addr = dlsym(handle, "dl_get_public_fib_uvar_addr");
+	if (p_dl_get_public_fib_uvar_addr == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
 	val = *p_dl_public_fib_uvar;
 
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("&dl_public_fib_uvar = %p, "
+		    "dl_get_public_fib_uvar_addr -> %p\n",
+		    p_dl_public_fib_uvar, p_dl_get_public_fib_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -460,4 +572,6 @@
 	printf("Got %d, expected %d... ", val, dl_private_var_val);
 	if (val != dl_private_var_val) {
+		printf("dl_get_private_var_addr -> %p\n",
+		    dl_get_private_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -481,4 +595,6 @@
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("dl_get_private_uvar_addr -> %p\n",
+		    dl_get_private_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -502,4 +618,6 @@
 	printf("Got %d, expected %d... ", val, dl_public_var_val);
 	if (val != dl_public_var_val) {
+		printf("dl_get_public_var_addr -> %p\n",
+		    dl_get_public_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -523,4 +641,6 @@
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("dl_get_public_uvar_addr -> %p\n",
+		    dl_get_public_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -542,4 +662,6 @@
 	printf("Got %d, expected %d... ", val, dl_public_var_val);
 	if (val != dl_public_var_val) {
+		printf("&dl_public_var = %p, dl_get_public_var_addr -> %p\n",
+		    &dl_public_var, dl_get_public_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -561,4 +683,6 @@
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("&dl_public_uvar = %p, dl_get_public_uvar_addr -> %p\n",
+		    &dl_public_uvar, dl_get_public_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -582,4 +706,6 @@
 	printf("Got %d, expected %d... ", val, dl_private_fib_var_val);
 	if (val != dl_private_fib_var_val) {
+		printf("dl_get_private_fib_var_addr -> %p\n",
+		    dl_get_private_fib_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -603,4 +729,6 @@
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("dl_get_private_fib_uvar_addr -> %p\n",
+		    dl_get_private_fib_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -624,4 +752,6 @@
 	printf("Got %d, expected %d... ", val, dl_public_fib_var_val);
 	if (val != dl_public_fib_var_val) {
+		printf("dl_get_public_fib_var_addr -> %p\n",
+		    dl_get_public_fib_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -645,4 +775,6 @@
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("dl_get_public_fib_uvar_addr -> %p\n",
+		    dl_get_public_fib_uvar_addr());
 		printf("FAILED\n");
 		return false;
@@ -664,4 +796,7 @@
 	printf("Got %d, expected %d... ", val, dl_public_fib_var_val);
 	if (val != dl_public_fib_var_val) {
+		printf("&dl_public_fib_var = %p, "
+		    "dl_get_public_fib_var_addr -> %p\n",
+		    &dl_public_fib_var, dl_get_public_fib_var_addr());
 		printf("FAILED\n");
 		return false;
@@ -683,4 +818,7 @@
 	printf("Got %d, expected %d... ", val, 0);
 	if (val != 0) {
+		printf("&dl_public_fib_uvar = %p, "
+		    "dl_get_public_fib_uvar_addr -> %p\n",
+		    &dl_public_fib_uvar, dl_get_public_fib_uvar_addr());
 		printf("FAILED\n");
 		return false;
