Index: kernel/arch/ia64/_link.ld.in
===================================================================
--- kernel/arch/ia64/_link.ld.in	(revision bae6169d4f9b88ee5aeb699d590e0d32155057ac)
+++ kernel/arch/ia64/_link.ld.in	(revision 6688cc13beb3b4e5b945e62178f093ff5fdab16d)
@@ -7,8 +7,11 @@
  */
 
+#define LOAD_ADDRESS_V	0xe000000004404000
+#define LOAD_ADDRESS_P	0x0000000004404000
+
 ENTRY(kernel_image_start)
 
 SECTIONS {
-	.image 0xe000000004404000: AT (0x0000000004404000) { 
+	.image LOAD_ADDRESS_V: AT (LOAD_ADDRESS_P) {
 		ktext_start = .;
 		*(K_TEXT_START);
@@ -21,4 +24,10 @@
 		*(.opd)
 		*(.data .data.*)
+		hardcoded_load_address = .;
+		QUAD(LOAD_ADDRESS_V);
+		hardcoded_ktext_size = .;
+		QUAD(ktext_end - ktext_start);
+		hardcoded_kdata_size = .;
+		QUAD(kdata_end - kdata_start);
 		*(.got .got.*)
 		*(.sdata)
@@ -38,7 +47,3 @@
 	}
 
-	_hardcoded_ktext_size = ktext_end - ktext_start;
-	_hardcoded_kdata_size = kdata_end - kdata_start;
-	_hardcoded_load_address = 0xe000000004404000;
-
 }
Index: kernel/arch/ia64/src/ivt.S
===================================================================
--- kernel/arch/ia64/src/ivt.S	(revision bae6169d4f9b88ee5aeb699d590e0d32155057ac)
+++ kernel/arch/ia64/src/ivt.S	(revision 6688cc13beb3b4e5b945e62178f093ff5fdab16d)
@@ -391,5 +391,5 @@
 
     /* 10. call handler */
-    	movl r1 = _hardcoded_load_address
+    	movl r1 = kernel_image_start
     
     	mov b1 = loc2
Index: kernel/arch/ia64/src/start.S
===================================================================
--- kernel/arch/ia64/src/start.S	(revision bae6169d4f9b88ee5aeb699d590e0d32155057ac)
+++ kernel/arch/ia64/src/start.S	(revision 6688cc13beb3b4e5b945e62178f093ff5fdab16d)
@@ -186,20 +186,10 @@
 	movl r20 = (VRN_KERNEL << VRN_SHIFT) ;;
 	or r20 = r20, r1 ;;
-	movl r1 = _hardcoded_load_address
+	movl r1 = kernel_image_start
 	
 	/*
-	 * Initialize hardcoded_* variables. Do only BSP
+	 * Initialize bootinfo on BSP.
 	 */
-(p3)	movl r14 = _hardcoded_ktext_size
-(p3)	movl r15 = _hardcoded_kdata_size
-(p3)	movl r16 = _hardcoded_load_address ;;
-(p3)	addl r17 = @gprel(hardcoded_ktext_size), gp
-(p3)	addl r18 = @gprel(hardcoded_kdata_size), gp
-(p3)	addl r19 = @gprel(hardcoded_load_address), gp
-(p3)	addl r21 = @gprel(bootinfo), gp
-		;;
-(p3)	st8 [r17] = r14
-(p3)	st8 [r18] = r15
-(p3)	st8 [r19] = r16
+(p3)	addl r21 = @gprel(bootinfo), gp ;;
 (p3)	st8 [r21] = r20
 	
