Index: uspace/Makefile
===================================================================
--- uspace/Makefile	(revision 2ca5f6326f12aee981cdb0aa046f8e37cd7d9a67)
+++ uspace/Makefile	(revision 7fb3f1c0cd0601d504202af56df44cb8372b7dfe)
@@ -35,5 +35,4 @@
 DIRS = \
 	app/bdsh \
-	app/dltest2 \
 	app/edit \
 	app/getterm \
@@ -96,5 +95,6 @@
 ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
 	DIRS += \
-		app/dltest
+		app/dltest \
+		app/dltest2
 endif
 
Index: uspace/Makefile.common
===================================================================
--- uspace/Makefile.common	(revision 2ca5f6326f12aee981cdb0aa046f8e37cd7d9a67)
+++ uspace/Makefile.common	(revision 7fb3f1c0cd0601d504202af56df44cb8372b7dfe)
@@ -73,10 +73,12 @@
 endif
 
-ifneq ($(SLIBRARY),)
-	LARCHIVE = $(LIBRARY).la
-	LOUTPUT = $(SLIBRARY)
-	EXTRA_OUTPUT += $(LOUTPUT).disasm
-	EXTRA_CLEAN += $(LOUTPUT).map $(LOUTPUT).ldisasm \
-	    $(LIBC_PREFIX)/shared/arch/$(UARCH)/_lib.ld
+ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
+	ifneq ($(SLIBRARY),)
+		LARCHIVE = $(LIBRARY).la
+		LOUTPUT = $(SLIBRARY)
+		EXTRA_OUTPUT += $(LOUTPUT).disasm
+		EXTRA_CLEAN += $(LOUTPUT).map $(LOUTPUT).ldisasm \
+		    $(LIBC_PREFIX)/shared/arch/$(UARCH)/_lib.ld
+	endif
 endif
 
Index: uspace/lib/c/Makefile
===================================================================
--- uspace/lib/c/Makefile	(revision 2ca5f6326f12aee981cdb0aa046f8e37cd7d9a67)
+++ uspace/lib/c/Makefile	(revision 7fb3f1c0cd0601d504202af56df44cb8372b7dfe)
@@ -71,5 +71,4 @@
 	generic/device/hw_res.c \
 	generic/device/char_dev.c \
-	generic/dlfcn.c \
 	generic/event.c \
 	generic/errno.c \
@@ -126,10 +125,15 @@
 	generic/sort.c \
 	generic/stats.c \
-	generic/assert.c \
-	rtld/rtld.c \
-	rtld/elf_load.c \
-	rtld/dynamic.c \
-	rtld/module.c \
-	rtld/symbol.c
+	generic/assert.c
+
+ifeq ($(CONFIG_RTLD), y)
+	GENERIC_SOURCES += \
+		generic/dlfcn.c \
+		rtld/rtld.c \
+		rtld/elf_load.c \
+		rtld/dynamic.c \
+		rtld/module.c \
+		rtld/symbol.c
+endif
 
 SOURCES = \
Index: uspace/lib/c/generic/libc.c
===================================================================
--- uspace/lib/c/generic/libc.c	(revision 2ca5f6326f12aee981cdb0aa046f8e37cd7d9a67)
+++ uspace/lib/c/generic/libc.c	(revision 7fb3f1c0cd0601d504202af56df44cb8372b7dfe)
@@ -53,6 +53,8 @@
 #include "private/io.h"
 
+#ifdef CONFIG_RTLD
 /* From librtld. */
 #include <rtld.h>
+#endif
 //#include <string.h>
 
Index: uspace/srv/loader/main.c
===================================================================
--- uspace/srv/loader/main.c	(revision 2ca5f6326f12aee981cdb0aa046f8e37cd7d9a67)
+++ uspace/srv/loader/main.c	(revision 7fb3f1c0cd0601d504202af56df44cb8372b7dfe)
@@ -65,4 +65,5 @@
 
 /* From librtld */
+#ifdef CONFIG_RTLD
 #include <rtld.h>
 #include <dynamic.h>
@@ -70,7 +71,8 @@
 #include <module.h>
 
+static int ldr_load_dyn_linked(elf_info_t *p_info);
+#endif
+
 #define DPRINTF(...)
-
-static int ldr_load_dyn_linked(elf_info_t *p_info);
 
 /** Pathname of the file that will be loaded */
@@ -102,7 +104,9 @@
 static bool connected = false;
 
+#ifdef CONFIG_RTLD
 /** State structure of the dynamic linker. */
 runtime_env_t dload_re;
 static module_t prog_mod;
+#endif
 
 static void ldr_get_taskid(ipc_callid_t rid, ipc_call_t *request)
@@ -317,12 +321,17 @@
 	
 	DPRINTF("Binary is dynamically linked.\n");
+#ifdef CONFIG_RTLD
 	DPRINTF(" - pcb address: %p\n", &pcb);
 	DPRINTF( "- prog dynamic: %p\n", prog_info.dynamic);
 
 	rc = ldr_load_dyn_linked(&prog_info);
-
+#else
+	rc = ENOTSUP;
+#endif
 	async_answer_0(rid, rc);
 	return 0;
 }
+
+#ifdef CONFIG_RTLD
 
 static int ldr_load_dyn_linked(elf_info_t *p_info)
@@ -372,4 +381,5 @@
 	return 0;
 }
+#endif
 
 /** Run the previously loaded program.
