This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: binutils/1321: strip/objcopy don't handle SHF_LINK_ORDER correctly


Sorry to be this late. I am checking this testcase.


H.J.
----
2005-10-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/1321
	* binutils-all/link-order.s: New.

	* binutils-all/objcopy.exp: Check ia64 link order.

--- binutils/testsuite/binutils-all/link-order.s.link-order	2005-10-19 09:54:51.000000000 -0700
+++ binutils/testsuite/binutils-all/link-order.s	2005-10-19 10:01:54.000000000 -0700
@@ -0,0 +1,13 @@
+	.text
+	.align 16
+	.global foo#
+	.proc foo#
+foo:
+	.prologue 2, 2
+	.vframe r2
+	mov r2 = r12
+	.body
+	.restore sp
+	mov r12 = r2
+	br.ret.sptk.many b0
+	.endp foo#
--- binutils/testsuite/binutils-all/objcopy.exp.link-order	2005-08-26 15:17:42.000000000 -0700
+++ binutils/testsuite/binutils-all/objcopy.exp	2005-10-19 10:14:01.000000000 -0700
@@ -648,3 +648,42 @@ switch [copy_setup] {
 	strip_executable_with_saving_a_symbol "$STRIP" "-K main -K _main $STRIPFLAGS" "$test4"
     }
 }
+
+# ia64 specific tests
+if { ([istarget "ia64-*-elf*"]
+       || [istarget "ia64-*-linux*"]) } {
+    if {![binutils_assemble $srcdir/$subdir/link-order.s tmpdir/bintest.o]} then {
+	perror "unresolved ia64 link order."
+	unresolved "objcopy (ia64 link order)"
+    } else {
+	# Test that objcopy does not modify a file with link order bit
+	# when copying it.
+
+	set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS $tempfile ${copyfile}.o"]
+
+	if ![string match "" $got] then {
+	    fail "objcopy (ia64 link order)"
+	} else {
+	    send_log "cmp $tempfile ${copyfile}.o\n"
+	    verbose "cmp $tempfile ${copyfile}.o"
+	    if [is_remote host] {
+		set src1 tmpdir/bintest.o
+		set src2 tmpdir/copy.o
+		remote_upload host $tempfile $src1
+		remote_upload host ${copyfile}.o $src2
+	    } else {
+		set src1 ${tempfile}
+		set src2 ${copyfile}.o
+	    }
+	    set status [remote_exec build cmp "${src1} ${src2}"]
+	    set exec_output [lindex $status 1]
+	    set exec_output [prune_warnings $exec_output]
+
+	    if [string match "" $exec_output] then {
+		pass "objcopy (ia64 link order)"
+	    } else {
+		fail "objcopy (ia64 link order)"
+	    }
+	}
+    }
+}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]