From: H.J. Lu Date: Thu, 14 May 2020 23:34:52 +0000 (-0700) Subject: Skip jit tests for targets that don't support -lgccjit X-Git-Tag: misc/first-auto-changelog~217 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d2a359fe5d72e28433c92e64dcbdaa93eb39caf4;p=thirdparty%2Fgcc.git Skip jit tests for targets that don't support -lgccjit Since libgccjit.so is linked into jit tests, skip jit tests for targets that don't support -lgccjit. gcc/ PR jit/94778 * doc/sourcebuild.texi: Document effective target lgccjit. gcc/testsuite/ PR jit/94778 * jit.dg/jit.exp: Skip jit tests for targets that don't support -lgccjit. * lib/target-supports.exp (check_effective_target_lgccjit): New. --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 27b4b04f9b0d..d855ee6d86cf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2020-05-14 H.J. Lu + + PR jit/94778 + * doc/sourcebuild.texi: Document effective target lgccjit. + 2020-05-14 Andrew Stubbs * config/gcn/gcn-valu.md (add3_zext_dup): Change to a diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index 240d6e4b08e2..0f70e4baca96 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -2494,6 +2494,9 @@ Target uses comdat groups. @item indirect_calls Target supports indirect calls, i.e. calls where the target is not constant. + +@item lgccjit +Target supports -lgccjit, i.e. libgccjit.so can be linked into jit tests. @end table @subsubsection Local to tests in @code{gcc.target/i386} diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7319b2026cda..8dfdfc6c3c0f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2020-05-14 H.J. Lu + + PR jit/94778 + * jit.dg/jit.exp: Skip jit tests for targets that don't support + -lgccjit. + * lib/target-supports.exp (check_effective_target_lgccjit): New. + 2020-05-14 Andrew Stubbs * testsuite/gcc.target/gcn/gcn.exp: New file. diff --git a/gcc/testsuite/jit.dg/jit.exp b/gcc/testsuite/jit.dg/jit.exp index 13e8ab4dbfe7..2f54681713b8 100644 --- a/gcc/testsuite/jit.dg/jit.exp +++ b/gcc/testsuite/jit.dg/jit.exp @@ -38,6 +38,11 @@ load_lib gcc.exp load_lib g++.exp load_lib dejagnu.exp +# Skip these tests for targets that don't support -lgccjit +if { ![check_effective_target_lgccjit] } { + return +} + # Look for lines of the form: # definitely lost: 11,316 bytes in 235 blocks # indirectly lost: 352 bytes in 4 blocks diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 88f4a9cd812c..3e91a81dd5a1 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -10234,3 +10234,18 @@ proc check_effective_target_indirect_calls { } { } return 1 } + +# Return 1 if we can use the -lgccjit option, 0 otherwise. + +proc check_effective_target_lgccjit { } { + if { [info procs jit_target_compile] == "" } then { + global GCC_UNDER_TEST + if ![info exists GCC_UNDER_TEST] { + set GCC_UNDER_TEST "[find_gcc]" + } + proc jit_target_compile { source dest type options } [info body gcc_target_compile] + } + return [check_no_compiler_messages lgccjit executable { + int main() { return 0; } + } "-lgccjit"] +}