diff --git a/ld/ChangeLog b/ld/ChangeLog
index 717124857697b36506aba4fc937e1cac024edfc4..ecb9cd9195db5bb312aab46a921cd787d340d9c9 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2016-05-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+
+	* ld/testsuite/ld-srec/srec.exp: Mark test as XFAIL for AVR.
+
 2016-05-06  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* testsuite/ld-i386/i386.exp: Run load7.
diff --git a/ld/testsuite/ld-srec/srec.exp b/ld/testsuite/ld-srec/srec.exp
index 9832af83587ff0fb9465dbce14d38137f78307cd..c15d05426d8274c264bb118a097a720c551cc1b6 100644
--- a/ld/testsuite/ld-srec/srec.exp
+++ b/ld/testsuite/ld-srec/srec.exp
@@ -241,36 +241,19 @@ proc run_srec_test { test objs } {
 	set flags "$flags -Ttext 0x1000"
     }
 
-    if [istarget sh64*-*-elf] {
-        # This is what gcc passes to ld by default.
-        set flags "$flags -mshelf32"
-        # SH64 targets cannot convert format in the linker 
-        # using the -oformat command line switch.
-	setup_xfail "sh64*-*-*"
-    }
-
-    if {[istarget aarch64*-*-*]   || \
+    # ARM targets cannot convert format in the linker
+    # using the --oformat command line switch
+    if {[istarget aarch64*-*-*] || \
         [istarget arm*-*-*]} {
-        # ARM targets cannot convert format in the linker
-        # using the --oformat command line switch
 	setup_xfail "aarch64-*-*"
 	setup_xfail "aarch64_be-*-*"
 	setup_xfail "arm*-*-*"
     }
 
-    # V850 targets need libgcc.a
-    if [istarget v850*-*-elf] {
-	set objs "$objs -L ../gcc -lgcc"
-    }
-
-    # Xtensa ELF targets relax by default; S-Record linker does not
-    if [istarget xtensa*-*-*] {
-	set flags "$flags -no-relax"
-    }
-
-    # MSP430 targets always relax.
-    if [istarget msp430*-*-*] {
-	setup_xfail "msp430*-*-*"
+    # The AVR target does not correctly process
+    # relocs when output format is not ELF.
+    if [istarget avr-*-*] {
+	setup_xfail "avr-*-*"
     }
 
     # Epiphany needs some help too
@@ -294,6 +277,29 @@ proc run_srec_test { test objs } {
 	setup_xfail "m9s12x*-*-*"
     }
 
+    # MSP430 targets always relax.
+    if [istarget msp430*-*-*] {
+	setup_xfail "msp430*-*-*"
+    }
+
+    # SH64 targets cannot convert format in the linker 
+    # using the -oformat command line switch.
+    if [istarget sh64*-*-elf] {
+        # This is what gcc passes to ld by default.
+        set flags "$flags -mshelf32"
+	setup_xfail "sh64*-*-*"
+    }
+
+    # V850 targets need libgcc.a
+    if [istarget v850*-*-elf] {
+	set objs "$objs -L ../gcc -lgcc"
+    }
+
+    # Xtensa ELF targets relax by default; S-Record linker does not
+    if [istarget xtensa*-*-*] {
+	set flags "$flags -no-relax"
+    }
+
     if { ![ld_simple_link $ld tmpdir/sr1 "$flags $objs"] \
 	 || ![ld_simple_link $ld tmpdir/sr2.sr "$flags --oformat srec $objs"] } {
 	fail $test