Index: uspace/srv/loader/Makefile
===================================================================
--- uspace/srv/loader/Makefile	(revision fc0b2a8b439bd4294aa93f37af1e7fe305fbee77)
+++ uspace/srv/loader/Makefile	(revision 31a566bc2fcd89f3a4bb7a0ed41cb3798eacac42)
@@ -29,6 +29,19 @@
 
 USPACE_PREFIX = ../..
+ROOT_PATH = $(USPACE_PREFIX)/..
+CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config
 
-EXTRA_LDFLAGS = -Wl,-Ttext-segment=0x70000000
+include $(CONFIG_MAKEFILE)
+
+ifeq ($(UARCH),ia64)
+	# IA64 has a peculiar linker script with a fixed data segment address.
+	# Because the loader is a separate nonrelocatable binary in the same
+	# address space as the application, we provide a modified copy of
+	# the default linker script to work around that.
+	EXTRA_LDFLAGS = -T elf64_ia64_loader.x
+else
+	# On all other architectures, we can simply move the text segment.
+	EXTRA_LDFLAGS = -Wl,-Ttext-segment=0x70000000
+endif
 
 BINARY = loader
