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]

Re: Correct logic for "defined by object"


On Tue, Dec 23, 2014 at 05:55:16AM -0800, H.J. Lu wrote:
> Can't we find a testcase to show how it is used?

Target testing in progress.  I'll commit it tommorow, undoubtedly with
some xfail/notarget lines added.

diff --git a/ld/testsuite/ld-scripts/defined.exp b/ld/testsuite/ld-scripts/defined.exp
index b871004..90a4f6d 100644
--- a/ld/testsuite/ld-scripts/defined.exp
+++ b/ld/testsuite/ld-scripts/defined.exp
@@ -69,4 +69,5 @@ run_dump_test "defined4"
 if ![is_aout_format] {
     run_dump_test "defined5"
 }
+run_dump_test "defined6"
 set LDFLAGS "$saved_LDFLAGS"
diff --git a/ld/testsuite/ld-scripts/defined6.d b/ld/testsuite/ld-scripts/defined6.d
new file mode 100644
index 0000000..8837f3b
--- /dev/null
+++ b/ld/testsuite/ld-scripts/defined6.d
@@ -0,0 +1,21 @@
+#source: defined6.s
+#ld: -T defined6.t
+#nm: -B
+
+# Check that DEFINED works with various symbol types
+#...
+0+1 A common
+0+1 A common_post
+0+1 A common_pre
+0+1 A defined
+0+1 A defined_post
+0+1 A defined_pre
+0+1 A undef
+0+1 A undef_post
+0+0 A undef_pre
+0+1 A undefweak
+0+1 A undefweak_post
+0+0 A undefweak_pre
+0+1 A weak
+0+1 A weak_post
+0+1 A weak_pre
diff --git a/ld/testsuite/ld-scripts/defined6.s b/ld/testsuite/ld-scripts/defined6.s
new file mode 100644
index 0000000..00b1f7f
--- /dev/null
+++ b/ld/testsuite/ld-scripts/defined6.s
@@ -0,0 +1,9 @@
+ .globl defined
+ defined == 1
+ .globl undef
+ .comm common,1
+ .weak weak
+ weak == 2
+ .weak undefweak
+ .data
+ .dc.a undefweak
diff --git a/ld/testsuite/ld-scripts/defined6.t b/ld/testsuite/ld-scripts/defined6.t
new file mode 100644
index 0000000..f4ca38a
--- /dev/null
+++ b/ld/testsuite/ld-scripts/defined6.t
@@ -0,0 +1,21 @@
+SECTIONS
+{
+  .text : { *(.text) }
+  .data : { *(.data) }
+  .bss  : { *(.bss) *(COMMON) }
+}
+defined_pre = DEFINED (defined);
+defined = 1;
+defined_post = DEFINED (defined);
+undef_pre = DEFINED (undef);
+undef = 1;
+undef_post = DEFINED (undef);
+common_pre = DEFINED (common);
+common = 1;
+common_post = DEFINED (common);
+weak_pre = DEFINED (weak);
+weak = 1;
+weak_post = DEFINED (weak);
+undefweak_pre = DEFINED (undefweak);
+undefweak = 1;
+undefweak_post = DEFINED (undefweak);

-- 
Alan Modra
Australia Development Lab, IBM


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