Index: uspace/app/dltest/dltest.c
===================================================================
--- uspace/app/dltest/dltest.c	(revision e0e5e6f5d077fd6d15db4f777564b241c27d3812)
+++ uspace/app/dltest/dltest.c	(revision 8e3bc063a5dfbd66eac8ef26b7c6c10ca0924663)
@@ -91,4 +91,30 @@
 }
 
+/** Test calling function that calls a function that returns a constant */
+static bool test_dlfcn_dl_get_constant_via_call(void)
+{
+	int (*p_dl_get_constant)(void);
+	int val;
+
+	printf("Call dlsym/dl_get_constant_via_call...\n");
+
+	p_dl_get_constant = dlsym(handle, "dl_get_constant_via_call");
+	if (p_dl_get_constant == NULL) {
+		printf("FAILED\n");
+		return false;
+	}
+
+	val = p_dl_get_constant();
+
+	printf("Got %d, expected %d... ", val, dl_constant);
+	if (val != dl_constant) {
+		printf("FAILED\n");
+		return false;
+	}
+
+	printf("Passed\n");
+	return true;
+}
+
 /** Test calling a function that returns contents of a private initialized
  * variable.
@@ -564,4 +590,23 @@
 }
 
+/** Test directly calling function that calls a function that returns a constant */
+static bool test_lnk_dl_get_constant_via_call(void)
+{
+	int val;
+
+	printf("Call linked dl_get_constant_via_call...\n");
+
+	val = dl_get_constant_via_call();
+
+	printf("Got %d, expected %d... ", val, dl_constant);
+	if (val != dl_constant) {
+		printf("FAILED\n");
+		return false;
+	}
+
+	printf("Passed\n");
+	return true;
+}
+
 /** Test dircetly calling a function that returns contents of a private
  * initialized variable.
@@ -853,4 +898,7 @@
 		return 1;
 
+	if (!test_dlfcn_dl_get_constant_via_call())
+		return 1;
+
 	if (!test_dlfcn_dl_get_private_var())
 		return 1;
@@ -905,4 +953,7 @@
 {
 	if (!test_lnk_dl_get_constant())
+		return 1;
+
+	if (!test_lnk_dl_get_constant_via_call())
 		return 1;
 
Index: uspace/lib/dltest/dltest.c
===================================================================
--- uspace/lib/dltest/dltest.c	(revision e0e5e6f5d077fd6d15db4f777564b241c27d3812)
+++ uspace/lib/dltest/dltest.c	(revision 8e3bc063a5dfbd66eac8ef26b7c6c10ca0924663)
@@ -60,4 +60,14 @@
 {
 	return dl_constant;
+}
+
+/** Return constant value by calling another function.
+ *
+ * This can be used to test dynamically linked call (via PLT) even in case
+ * binaries are statically linked.
+ */
+int dl_get_constant_via_call(void)
+{
+	return dl_get_constant();
 }
 
Index: uspace/lib/dltest/libdltest.h
===================================================================
--- uspace/lib/dltest/libdltest.h	(revision e0e5e6f5d077fd6d15db4f777564b241c27d3812)
+++ uspace/lib/dltest/libdltest.h	(revision 8e3bc063a5dfbd66eac8ef26b7c6c10ca0924663)
@@ -47,4 +47,5 @@
 
 extern int dl_get_constant(void);
+extern int dl_get_constant_via_call(void);
 extern int dl_get_private_var(void);
 extern int *dl_get_private_var_addr(void);
