From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by sourceware.org (Postfix) with ESMTPS id CC4FC3857806 for ; Wed, 16 Mar 2022 13:59:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CC4FC3857806 Received: by mail-pl1-x629.google.com with SMTP id p17so1860010plo.9 for ; Wed, 16 Mar 2022 06:59:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=QN7RI4BMk3rZqWIv+zB2VANc8C5xOdou7f4WkAAYCz8=; b=39nis1DBa9+Ds2iJitNa89pNPxr6JjI/hydsYOyeHTBHT+MqlLzBn5mFFY6b4F6Qd7 VEE7KIpc19XNadOT7k3GA/UMDm/FNesCfHcEYbunvwOd8AyXYKQIpXCrqKMkeVUFYxtG kc6vPVDtSfDaGfourgbS5wlaCuQ+Df6ziWgk/O9PwTIR1bfJsW6gn/M2kEj4rE3yrArt CNvzCDVpYdiGV5RfxnLsfW5V0wNb0l77vCDh8OkJjs5ZX49mg7r+3SYSAirVGs/YFfC8 YJEH0QCJymqbsZ+wQCiuvHKdPPAWn30AEqZ9hafRBceSnZ+MPgy8zHz8pcj0scplqVe6 +SZQ== X-Gm-Message-State: AOAM533cWtj/cJl210y66SSksfc6HU2IKxHaZOZhHo3594d1fUynkBID UwmBrAJRuM+tdVHXsO69Z+SBbxhxTaU= X-Google-Smtp-Source: ABdhPJwyu+te43fAG2m7NqW33ppvrm2cWpXf3OJAnAF6vTfcubiZyhmNav3l0fm0WQj2Ln3IMbZZAA== X-Received: by 2002:a17:903:1205:b0:151:8ae9:93ea with SMTP id l5-20020a170903120500b001518ae993eamr32950648plh.37.1647439182520; Wed, 16 Mar 2022 06:59:42 -0700 (PDT) Received: from gnu-tgl-3.localdomain ([172.58.35.176]) by smtp.gmail.com with ESMTPSA id v29-20020a63b95d000000b00380260d5826sm2576363pgo.61.2022.03.16.06.59.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Mar 2022 06:59:42 -0700 (PDT) Received: from gnu-tgl-3.. (localhost [IPv6:::1]) by gnu-tgl-3.localdomain (Postfix) with ESMTP id 29614C00AD; Wed, 16 Mar 2022 06:59:41 -0700 (PDT) From: "H.J. Lu" To: binutils@sourceware.org Subject: [PATCH] gprofng: Skip jsynprog with a broken javac Date: Wed, 16 Mar 2022 06:59:41 -0700 Message-Id: <20220316135941.93773-1-hjl.tools@gmail.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3028.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Mar 2022 13:59:48 -0000 On CET enabled Linux/x86-64 machines, one can get $ javac simple.java Error: dl failure on line 894 Error: failed /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-6.fc35.x86_64/jre/lib/amd64/server/libjvm.so, because /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-6.fc35.x86_64/jre/lib/amd64/server/libjvm.so: rebuild shared object with SHSTK support enabled Set GPROFNG_BROKEN_JAVAC to "yes" only with a broken javac and skip the jsynprog test with a broken javac. PR gprofng/28965 * Makefile.am (GPROFNG_BROKEN_JAVAC): New. (check-DEJAGNU): Pass GPROFNG_BROKEN_JAVAC to runtest. * configure.ac (GPROFNG_BROKEN_JAVAC): New AC_SUBST. Set to yes with a broken javac. * Makefile.in: Regenerate. * configure: Likewise. * testsuite/gprofng.display/display.exp: Skip jsynprog with a broken javac. --- gprofng/Makefile.am | 2 ++ gprofng/Makefile.in | 2 ++ gprofng/configure | 27 +++++++++++++++++-- gprofng/configure.ac | 17 ++++++++++++ gprofng/testsuite/gprofng.display/display.exp | 8 +++++- 5 files changed, 53 insertions(+), 3 deletions(-) diff --git a/gprofng/Makefile.am b/gprofng/Makefile.am index 3bf707412ca..e06769cbf90 100644 --- a/gprofng/Makefile.am +++ b/gprofng/Makefile.am @@ -41,6 +41,7 @@ LD_NO_AS_NEEDED = @LD_NO_AS_NEEDED@ GPROFNG_CFLAGS = @GPROFNG_CFLAGS@ GPROFNG_CPPFLAGS = @GPROFNG_CPPFLAGS@ GPROFNG_LIBDIR = @GPROFNG_LIBDIR@ +GPROFNG_BROKEN_JAVAC = @GPROFNG_BROKEN_JAVAC@ AM_MAKEFLAGS = \ jdk_inc="$(jdk_inc)" \ @@ -59,6 +60,7 @@ check-DEJAGNU: site.exp development.exp runtest=$(RUNTEST); \ if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ $$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \ + GPROFNG_BROKEN_JAVAC="$(GPROFNG_BROKEN_JAVAC)" \ MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS) $(PTHREAD_CFLAGS)" \ LDFLAGS="$(LDFLAGS)" LIBS="$(PTHREAD_LIBS) $(LIBS)" \ BUILDDIR="$(abs_top_builddir)" $(RUNTESTFLAGS); \ diff --git a/gprofng/Makefile.in b/gprofng/Makefile.in index 62005dc2b46..43df524f60a 100644 --- a/gprofng/Makefile.in +++ b/gprofng/Makefile.in @@ -261,6 +261,7 @@ EXEEXT = @EXEEXT@ # Setup the testing framework, if you have one EXPECT = expect FGREP = @FGREP@ +GPROFNG_BROKEN_JAVAC = @GPROFNG_BROKEN_JAVAC@ GPROFNG_CFLAGS = @GPROFNG_CFLAGS@ GPROFNG_CPPFLAGS = @GPROFNG_CPPFLAGS@ GPROFNG_LIBADD = @GPROFNG_LIBADD@ @@ -927,6 +928,7 @@ uninstall-am: @TCL_TRY_TRUE@ runtest=$(RUNTEST); \ @TCL_TRY_TRUE@ if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ @TCL_TRY_TRUE@ $$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \ +@TCL_TRY_TRUE@ GPROFNG_BROKEN_JAVAC="$(GPROFNG_BROKEN_JAVAC)" \ @TCL_TRY_TRUE@ MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS) $(PTHREAD_CFLAGS)" \ @TCL_TRY_TRUE@ LDFLAGS="$(LDFLAGS)" LIBS="$(PTHREAD_LIBS) $(LIBS)" \ @TCL_TRY_TRUE@ BUILDDIR="$(abs_top_builddir)" $(RUNTESTFLAGS); \ diff --git a/gprofng/configure b/gprofng/configure index 1371caa45d6..4623a342dfc 100755 --- a/gprofng/configure +++ b/gprofng/configure @@ -645,6 +645,7 @@ TCL_TRY_FALSE TCL_TRY_TRUE EXPECT jdk_inc +GPROFNG_BROKEN_JAVAC JAVA JAVAC PTHREAD_CFLAGS @@ -12091,7 +12092,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12094 "configure" +#line 12095 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12197,7 +12198,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12200 "configure" +#line 12201 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -16484,6 +16485,7 @@ fi fi +GPROFNG_BROKEN_JAVAC=no if test "x$enable_gprofng_jp" = x; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find the JDK include directory. gprofng will be build without support for profiling Java applications. @@ -16495,9 +16497,30 @@ else $as_echo "#define GPROFNG_JAVA_PROFILING 1" >>confdefs.h + if test "x$JAVAC" != x; then + cat > configtest.java << EOF +class Simple{ + public static void main(String args){ + System.out.println("Hello Java"); + } +} +EOF + if { ac_try='$JAVAC conftest.java &5 2>&1' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + GPROFNG_BROKEN_JAVAC=no + else + GPROFNG_BROKEN_JAVAC=yes + fi + rm -f configtest.* + fi fi + DEBUG= # Check whether --enable-gprofng-debug was given. if test "${enable_gprofng_debug+set}" = set; then : diff --git a/gprofng/configure.ac b/gprofng/configure.ac index 23fee8705ac..a038b05b81e 100644 --- a/gprofng/configure.ac +++ b/gprofng/configure.ac @@ -127,13 +127,30 @@ fi if test "x$enable_gprofng_jp" = x; then AC_CHECK_HEADER([jni.h], [ enable_gprofng_jp=yes ], [], [] ) fi +GPROFNG_BROKEN_JAVAC=no if test "x$enable_gprofng_jp" = x; then AC_MSG_WARN([ Cannot find the JDK include directory. gprofng will be build without support for profiling Java applications. Use --with-jdk=PATH to specify directory for the installed JDK]) else AC_DEFINE(GPROFNG_JAVA_PROFILING, 1, [Enable java profiling]) + if test "x$JAVAC" != x; then + cat > configtest.java << EOF +class Simple{ + public static void main(String args[]){ + System.out.println("Hello Java"); + } +} +EOF + if AC_TRY_COMMAND($JAVAC conftest.java &AS_MESSAGE_LOG_FD 2>&1); then + GPROFNG_BROKEN_JAVAC=no + else + GPROFNG_BROKEN_JAVAC=yes + fi + rm -f configtest.* + fi fi +AC_SUBST(GPROFNG_BROKEN_JAVAC) AC_SUBST(jdk_inc) DEBUG= diff --git a/gprofng/testsuite/gprofng.display/display.exp b/gprofng/testsuite/gprofng.display/display.exp index 108144c069a..dfb383e9fc6 100644 --- a/gprofng/testsuite/gprofng.display/display.exp +++ b/gprofng/testsuite/gprofng.display/display.exp @@ -68,6 +68,8 @@ switch $pltf { } } +global GPROFNG_BROKEN_JAVAC + foreach line $table { set dir [lindex $line 0] set cflags [lindex $line 1] @@ -75,7 +77,11 @@ foreach line $table { verbose [file rootname $line] verbose running display test $line - run_display_test $dir $cflags $gprofflags + if { $GPROFNG_BROKEN_JAVAC == "yes" && $dir == "jsynprog" } { + unsupported $dir + } else { + run_display_test $dir $cflags $gprofflags + } } -- 2.35.1