--- elf2flt/elf2flt.ld
+++ elf2flt/elf2flt.ld
@@ -63,12 +63,16 @@
 		*(.eh_frame)
 		*(.gcc_except_table)
 
+		/* nios2 need gp */
+		_gp = ABSOLUTE(ALIGN(16) + 0x7ff0);
+		PROVIDE(gp = _gp);
+
 		/* Microblaze has .sdata and .sbss (small bss).  They must
 		   be contiguous, so please don't move any of this. JW */
 		_ssrw = . ;			
 		*(.sdata) 
 		*(.sdata.*)
-		*(.sbss)			/* Don't move this! */
+		*(.sbss .gnu.linkonce.sb*)		/* Don't move this! */
 		_essrw = . ;
 
 		_ssrw_size = _essrw - _ssrw;
@@ -176,4 +180,6 @@
 	.debug_line 0 : { *(.debug_line) }
 	.debug_pubnames 0 : { *(.debug_pubnames) }
 	.debug_aranges 0 : { *(.debug_aranges) }
+	.debug_frame    0 : { *(.debug_frame) }
+	.debug_str      0 : { *(.debug_str) }
 }
--- elf2flt/ld-elf2flt.in
+++ elf2flt/ld-elf2flt.in
@@ -132,7 +132,7 @@
 			esac
 			ARG1="$ARG1 -defsym $GOT_OFFSET=`expr ${SHARED_ID} '*' -4 - 4`"
 		fi
-		if [ "@emit_relocs@" = "yes" ]
+		if [ "no" = "yes" ]
 		then
 			SEDOP="$SEDOP -e s/^SINGLE_LINK://"
 		else
@@ -155,7 +155,7 @@
 			LDSCRIPT="$NEWLDSCRIPT"
 		fi
 
-		if [ "@emit_relocs@" = "yes" ]
+		if [ "no" = "yes" ]
 		then
 		 $LINKER $EMUL $SDIRS -T $LDSCRIPT -q -o "$OFILE.gdb" $ARG1             ||exit $?
 		 RFILE="$OFILE.gdb"