+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
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:
Version: 4 \(CTF_VERSION_3\)
#...
Types:
-
+#...
Strings:
#...
CTF archive member: .*enum.*\.c:
#...
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
#...
#...
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 .*
#...
}
}
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]} {
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:
#...
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]*\)
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
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
--- /dev/null
+#include <complex.h>
+
+int foo (complex int a)
+{
+ return 3;
+}
+
--- /dev/null
+#include <complex.h>
+
+extern int foo (complex int);
+
+int main (void)
+{
+ complex int a = 33.4;
+ foo (a);
+
+ return 1;
+}
--- /dev/null
+#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:
+#...
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:
#...
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\)
+
#...
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
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
+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.
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]"
# 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