aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog15
-rw-r--r--ld/testsuite/ld-ctf/array.d2
-rw-r--r--ld/testsuite/ld-ctf/conflicting-enums.d2
-rw-r--r--ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d4
-rw-r--r--ld/testsuite/ld-ctf/cross-tu-noncyclic.d6
-rw-r--r--ld/testsuite/ld-ctf/ctf.exp2
-rw-r--r--ld/testsuite/ld-ctf/data-func-conflicted.d2
-rw-r--r--ld/testsuite/ld-ctf/enums.d8
-rw-r--r--ld/testsuite/ld-ctf/nonrepresentable-1.c7
-rw-r--r--ld/testsuite/ld-ctf/nonrepresentable-2.c11
-rw-r--r--ld/testsuite/ld-ctf/nonrepresentable.d26
-rw-r--r--ld/testsuite/ld-ctf/slice.d11
-rw-r--r--ld/testsuite/lib/ld-lib.exp4
-rw-r--r--libctf/ChangeLog6
-rw-r--r--libctf/testsuite/lib/ctf-lib.exp4
-rw-r--r--libctf/testsuite/libctf-regression/nonstatic-var-section-ld-r.lk1
16 files changed, 89 insertions, 22 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 0c7c759..1ddf61d 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,18 @@
+2021-05-06 Nick Alcock <nick.alcock@oracle.com>
+
+ * testsuite/ld-ctf/ctf.exp: Use -gctf, not -gt.
+ * testsuite/lib/ld-lib.exp: Likewise.
+ * testsuite/ld-ctf/nonrepresentable-1.c: New test for nonrepresentable types.
+ * testsuite/ld-ctf/nonrepresentable-2.c: Likewise.
+ * testsuite/ld-ctf/nonrepresentable.d: Likewise.
+ * testsuite/ld-ctf/array.d: Larger type section.
+ * testsuite/ld-ctf/data-func-conflicted.d: Likewise.
+ * testsuite/ld-ctf/enums.d: Likewise.
+ * testsuite/ld-ctf/conflicting-enums.d: Don't compare types.
+ * testsuite/ld-ctf/cross-tu-cyclic-conflicting.d: Changed type order.
+ * testsuite/ld-ctf/cross-tu-noncyclic.d: Likewise.
+ * testsuite/ld-ctf/slice.d: Adjust for improved slice emission.
+
2021-05-05 H.J. Lu <hongjiu.lu@intel.com>
PR ld/27825
diff --git a/ld/testsuite/ld-ctf/array.d b/ld/testsuite/ld-ctf/array.d
index ab262d9..142f9e9 100644
--- a/ld/testsuite/ld-ctf/array.d
+++ b/ld/testsuite/ld-ctf/array.d
@@ -14,7 +14,7 @@ Contents of CTF section .ctf:
Version: 4 \(CTF_VERSION_3\)
#...
Data object section: .* \(0x[1-9a-f][0-9a-f]* bytes\)
- Type section: .* \(0x5c bytes\)
+ Type section: .* \(0x6c bytes\)
String section: .*
Labels:
diff --git a/ld/testsuite/ld-ctf/conflicting-enums.d b/ld/testsuite/ld-ctf/conflicting-enums.d
index f90aaef..5eeae7a 100644
--- a/ld/testsuite/ld-ctf/conflicting-enums.d
+++ b/ld/testsuite/ld-ctf/conflicting-enums.d
@@ -14,7 +14,7 @@ Contents of CTF section .ctf:
Version: 4 \(CTF_VERSION_3\)
#...
Types:
-
+#...
Strings:
#...
CTF archive member: .*enum.*\.c:
diff --git a/ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d b/ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d
index eaf8e79..6d5e869 100644
--- a/ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d
+++ b/ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d
@@ -14,12 +14,12 @@ Contents of CTF section \.ctf:
#...
Types:
#...
- 0x[0-9a-f]*: \(kind 1\) long int \(format 0x1\) \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
-#...
0x[0-9a-f]*: \(kind 6\) struct B .*
#...
0x[0-9a-f]*: \(kind 1\) int \(format 0x1\) \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
#...
+ 0x[0-9a-f]*: \(kind 1\) long int \(format 0x1\) \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
+#...
0x[0-9a-f]*: \(kind 9\) struct A
#...
0x[0-9a-f]*: \(kind 6\) struct C .*
diff --git a/ld/testsuite/ld-ctf/cross-tu-noncyclic.d b/ld/testsuite/ld-ctf/cross-tu-noncyclic.d
index e8fc7a4..3ebc52d 100644
--- a/ld/testsuite/ld-ctf/cross-tu-noncyclic.d
+++ b/ld/testsuite/ld-ctf/cross-tu-noncyclic.d
@@ -29,13 +29,13 @@ Contents of CTF section .ctf:
Types:
#...
+ 0x[0-9a-f]*: \(kind 6\) struct B .*
+ *\[0x0\] foo: ID 0x[0-9a-f]*: \(kind 1\) int .*
+#...
0x[0-9a-f]*: \(kind 6\) struct A .*
*\[0x0\] a: ID 0x[0-9a-f]*: \(kind 1\) long int .*
*\[0x[0-9a-f]*\] foo: ID 0x[0-9a-f]*: \(kind 3\) struct B \* .*
#...
- 0x[0-9a-f]*: \(kind 6\) struct B .*
- *\[0x0\] foo: ID 0x[0-9a-f]*: \(kind 1\) int .*
-#...
0x[0-9a-f]*: \(kind 3\) struct B \* \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\) -> 0x[0-9a-f]*: \(kind 6\) struct B .*
#...
0x[0-9a-f]*: \(kind 3\) struct A \* \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\) -> 0x[0-9a-f]*: \(kind 6\) struct A .*
diff --git a/ld/testsuite/ld-ctf/ctf.exp b/ld/testsuite/ld-ctf/ctf.exp
index c5f6d5c..0e74d6c 100644
--- a/ld/testsuite/ld-ctf/ctf.exp
+++ b/ld/testsuite/ld-ctf/ctf.exp
@@ -42,7 +42,7 @@ foreach ctf_test $ctf_test_list {
}
}
verbose [file rootname $ctf_test]
- run_dump_test [file rootname $ctf_test] { { cc "-gt -fPIC" } }
+ run_dump_test [file rootname $ctf_test] { { cc "-gctf -fPIC" } }
}
if {[info exists old_lc_all]} {
diff --git a/ld/testsuite/ld-ctf/data-func-conflicted.d b/ld/testsuite/ld-ctf/data-func-conflicted.d
index 87dd4b6..f4f4fdd 100644
--- a/ld/testsuite/ld-ctf/data-func-conflicted.d
+++ b/ld/testsuite/ld-ctf/data-func-conflicted.d
@@ -16,7 +16,7 @@ Contents of CTF section \.ctf:
Data object section: .* \(0x[1-9a-f][0-9a-f]* bytes\)
Function info section: .* \(0x[1-9a-f][0-9a-f]* bytes\)
Object index section: .* \(0xc bytes\)
- Type section: .* \(0xf4 bytes\)
+ Type section: .* \(0x118 bytes\)
String section: .*
#...
Data objects:
diff --git a/ld/testsuite/ld-ctf/enums.d b/ld/testsuite/ld-ctf/enums.d
index f1cf70d..d36c7e1 100644
--- a/ld/testsuite/ld-ctf/enums.d
+++ b/ld/testsuite/ld-ctf/enums.d
@@ -14,7 +14,7 @@ Contents of CTF section .ctf:
#...
Compilation unit name: .*enums.c
#...
- Type section: .*\(0x114 bytes\)
+ Type section: .*\(0x134 bytes\)
#...
Types:
0x1: \(kind 8\) enum nine_els \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
@@ -27,7 +27,8 @@ Contents of CTF section .ctf:
NINE_SEVEN: 260
NINE_EIGHT: 261
NINE_NINE: 262
- 0x2: \(kind 8\) enum ten_els \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
+ 0x2: \(kind 1\) .*int \(format 0x[01]\) \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]\)
+ 0x3: \(kind 8\) enum ten_els \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
TEN_ONE: 10
TEN_TWO: 11
TEN_THREE: -256
@@ -38,7 +39,8 @@ Contents of CTF section .ctf:
TEN_EIGHT: -251
TEN_NINE: -250
TEN_TEN: -249
- 0x3: \(kind 8\) enum eleven_els \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
+ 0x4: \(kind 1\) .*int \(format 0x[01]\) \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
+ 0x5: \(kind 8\) enum eleven_els \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
ELEVEN_ONE: 10
ELEVEN_TWO: 11
ELEVEN_THREE: -256
diff --git a/ld/testsuite/ld-ctf/nonrepresentable-1.c b/ld/testsuite/ld-ctf/nonrepresentable-1.c
new file mode 100644
index 0000000..3135347
--- /dev/null
+++ b/ld/testsuite/ld-ctf/nonrepresentable-1.c
@@ -0,0 +1,7 @@
+#include <complex.h>
+
+int foo (complex int a)
+{
+ return 3;
+}
+
diff --git a/ld/testsuite/ld-ctf/nonrepresentable-2.c b/ld/testsuite/ld-ctf/nonrepresentable-2.c
new file mode 100644
index 0000000..c008c11
--- /dev/null
+++ b/ld/testsuite/ld-ctf/nonrepresentable-2.c
@@ -0,0 +1,11 @@
+#include <complex.h>
+
+extern int foo (complex int);
+
+int main (void)
+{
+ complex int a = 33.4;
+ foo (a);
+
+ return 1;
+}
diff --git a/ld/testsuite/ld-ctf/nonrepresentable.d b/ld/testsuite/ld-ctf/nonrepresentable.d
new file mode 100644
index 0000000..8461b54
--- /dev/null
+++ b/ld/testsuite/ld-ctf/nonrepresentable.d
@@ -0,0 +1,26 @@
+#as:
+#source: nonrepresentable-1.c
+#source: nonrepresentable-2.c
+#objdump: --ctf=.ctf
+#ld: -shared
+#name: Nonrepresentable types
+
+.*: +file format .*
+
+Contents of CTF section .ctf:
+
+ Header:
+ Magic number: 0xdff2
+ Version: 4 \(CTF_VERSION_3\)
+#...
+ Function objects:
+#...
+ foo -> 0x[0-9]*: \(kind 5\) int \(\*\) \(\(nonrepresentable type.*\)\) \(aligned at 0x8\)
+#...
+ Types:
+#...
+ 0x[0-9a-f]*: \(kind 0\) \(nonrepresentable type.*\)
+#...
+
+ Strings:
+#...
diff --git a/ld/testsuite/ld-ctf/slice.d b/ld/testsuite/ld-ctf/slice.d
index efe32a8..8973dcf 100644
--- a/ld/testsuite/ld-ctf/slice.d
+++ b/ld/testsuite/ld-ctf/slice.d
@@ -15,7 +15,7 @@ Contents of CTF section .ctf:
Compilation unit name: .*slice.c
#...
Data object section: .* \(0x[1-9a-f][0-9a-f]* bytes\)
- Type section: .* \(0xd0 bytes\)
+ Type section: .* \(0xe0 bytes\)
String section: .*
#...
Data objects:
@@ -25,8 +25,9 @@ Contents of CTF section .ctf:
#...
0x[0-9a-f]*: \(kind 6\) struct slices \(size 0x[0-9a-f]*\) \(aligned at 0x[0-9a-f]*\)
*\[0x0\] one: ID 0x[0-9a-f]*: \(kind 1\) int:1 \[slice 0x0:0x1\] \(format 0x1\) \(size 0x1\) \(aligned at 0x1\)
- *\[0x1\] two: ID 0x[0-9a-f]*: \(kind 1\) int:2 \[slice 0x1:0x2\] \(format 0x1\) \(size 0x1\) \(aligned at 0x1\)
- *\[0x3\] six: ID 0x[0-9a-f]*: \(kind 1\) int:6 \[slice 0x3:0x6\] \(format 0x1\) \(size 0x1\) \(aligned at 0x1\)
- *\[0x9\] ten: ID 0x[0-9a-f]*: \(kind 1\) int:10 \[slice 0x9:0xa\] \(format 0x1\) \(size 0x2\) \(aligned at 0x2\)
- *\[0x13\] bar: ID 0x[0-9a-f]*: \(kind 8\) enum foo:1 \[slice 0x13:0x1\] \(format 0x1\) \(size 0x1\) \(aligned at 0x1\)
+ *\[0x1\] two: ID 0x[0-9a-f]*: \(kind 1\) int:2 \[slice 0x0:0x2\] \(format 0x1\) \(size 0x1\) \(aligned at 0x1\)
+ *\[0x3\] six: ID 0x[0-9a-f]*: \(kind 1\) int:6 \[slice 0x0:0x6\] \(format 0x1\) \(size 0x1\) \(aligned at 0x1\)
+ *\[0x9\] ten: ID 0x[0-9a-f]*: \(kind 1\) int:10 \[slice 0x0:0xa\] \(format 0x1\) \(size 0x2\) \(aligned at 0x2\)
+ *\[0x13\] bar: ID 0x[0-9a-f]*: \(kind 8\) enum foo:1 \[slice 0x0:0x1\] \(format 0x1\) \(size 0x1\) \(aligned at 0x1\)
+
#...
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index a56c945..b108088 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -1625,7 +1625,7 @@ proc compile_one_cc { src output additional_flags } {
return [run_host_cmd_yesno "$CC" "$flags $CFLAGS $additional_flags $src -o $output"]
}
-# Returns true if the target compiler supports -gt
+# Returns true if the target compiler supports -gctf
proc check_ctf_available { } {
global ctf_available_saved
@@ -1639,7 +1639,7 @@ proc check_ctf_available { } {
set f [open $src "w"]
puts $f "int main() { return 0; }"
close $f
- set ctf_available_saved [compile_one_cc $src $output "-gt -c"]
+ set ctf_available_saved [compile_one_cc $src $output "-gctf -c"]
remote_file host delete $src
remote_file host delete $output
file delete $src
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index 51ecc85..979c6c5 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,5 +1,11 @@
2021-05-06 Nick Alcock <nick.alcock@oracle.com>
+ * testsuite/lib/ctf-lib.exp: Use -gctf, not -gt.
+ * testsuite/libctf-regression/nonstatic-var-section-ld-r.lk:
+ Hidden symbols now get into the symtypetab anyway.
+
+2021-05-06 Nick Alcock <nick.alcock@oracle.com>
+
* ctf-open.c (init_types): Unknown types may have names.
* ctf-types.c (ctf_type_resolve): CTF_K_UNKNOWN is as
non-representable as type ID 0.
diff --git a/libctf/testsuite/lib/ctf-lib.exp b/libctf/testsuite/lib/ctf-lib.exp
index 2f1742c..0fb0958 100644
--- a/libctf/testsuite/lib/ctf-lib.exp
+++ b/libctf/testsuite/lib/ctf-lib.exp
@@ -197,10 +197,10 @@ proc run_lookup_test { name } {
set lookup_flags ""
if { $run_ld } {
set lookup_output "tmpdir/out.so"
- set lookup_flags "-gt -fPIC $shared $opts(link_flags)"
+ set lookup_flags "-gctf -fPIC $shared $opts(link_flags)"
} else {
set lookup_output "tmpdir/out.o"
- set lookup_flags "-gt -fPIC -c"
+ set lookup_flags "-gctf -fPIC -c"
}
if [board_info [target_info name] exists cflags] {
append lookup_flags " [board_info [target_info name] cflags]"
diff --git a/libctf/testsuite/libctf-regression/nonstatic-var-section-ld-r.lk b/libctf/testsuite/libctf-regression/nonstatic-var-section-ld-r.lk
index 68c777f..7e31a37 100644
--- a/libctf/testsuite/libctf-regression/nonstatic-var-section-ld-r.lk
+++ b/libctf/testsuite/libctf-regression/nonstatic-var-section-ld-r.lk
@@ -4,4 +4,3 @@
# link_flags: -Wl,--ctf-variables -r
foo is of type [0-9a-f]*
bar is of type [0-9a-f]*
-foo missing from the data object section