diff options
-rw-r--r-- | ld/ChangeLog | 15 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/array.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/conflicting-enums.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/cross-tu-cyclic-conflicting.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/cross-tu-noncyclic.d | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/ctf.exp | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/data-func-conflicted.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/enums.d | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/nonrepresentable-1.c | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/nonrepresentable-2.c | 11 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/nonrepresentable.d | 26 | ||||
-rw-r--r-- | ld/testsuite/ld-ctf/slice.d | 11 | ||||
-rw-r--r-- | ld/testsuite/lib/ld-lib.exp | 4 | ||||
-rw-r--r-- | libctf/ChangeLog | 6 | ||||
-rw-r--r-- | libctf/testsuite/lib/ctf-lib.exp | 4 | ||||
-rw-r--r-- | libctf/testsuite/libctf-regression/nonstatic-var-section-ld-r.lk | 1 |
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 |