@@ -959,9 +959,6 @@
/* Define if your assembler and linker support .hidden. */
#undef HAVE_GAS_HIDDEN
-/* Define if your system supports gnu indirect functions. */
-#undef HAVE_GNU_INDIRECT_FUNCTION
-
/* Define if your assembler supports .lcomm with an alignment field. */
#ifndef USED_FOR_TARGET
#undef HAVE_GAS_LCOMM_WITH_ALIGNMENT
@@ -1062,6 +1059,12 @@
#endif
+/* Define if your system supports gnu indirect functions. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_GNU_INDIRECT_FUNCTION
+#endif
+
+
/* Define if using GNU ld. */
#ifndef USED_FOR_TARGET
#undef HAVE_GNU_LD
@@ -1296,6 +1299,12 @@
#endif
+/* Define if you have prctl PR_SET_NAME */
+#ifndef USED_FOR_TARGET
+#undef HAVE_PRCTL_SET_NAME
+#endif
+
+
/* Define to 1 if you have the `putchar_unlocked' function. */
#ifndef USED_FOR_TARGET
#undef HAVE_PUTCHAR_UNLOCKED
@@ -8484,6 +8484,33 @@ done
LIBS="$save_LIBS"
CPPFLAGS="$save_CPPFLAGS"
+# check for prctl PR_SET_NAME
+if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/prctl.h>
+int main()
+{
+ return (prctl(PR_SET_NAME, "foo") == 0) ? 0 : 1;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+$as_echo "#define HAVE_PRCTL_SET_NAME 1" >>confdefs.h
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
if test x$ac_cv_func_mbstowcs = xyes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbstowcs works" >&5
$as_echo_n "checking whether mbstowcs works... " >&6; }
@@ -17127,7 +17154,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 17130 "configure"
+#line 17157 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -17233,7 +17260,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 17236 "configure"
+#line 17263 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -991,6 +991,16 @@ int main()
LIBS="$save_LIBS"
CPPFLAGS="$save_CPPFLAGS"
+# check for prctl PR_SET_NAME
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <sys/prctl.h>
+int main()
+{
+ return (prctl(PR_SET_NAME, "foo") == 0) ? 0 : 1;
+}
+]])], AC_DEFINE(HAVE_PRCTL_SET_NAME, 1,
+ [Define if you have prctl PR_SET_NAME]))
+
if test x$ac_cv_func_mbstowcs = xyes; then
AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works,
[ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
@@ -52,6 +52,10 @@ along with GCC; see the file COPYING3. If not see
#include <sys/mman.h>
#endif
+#ifdef HAVE_PRCTL_SET_NAME
+#include <sys/prctl.h>
+#endif
+
/* Handle opening elf files on hosts, such as Windows, that may use
text file handling that will break binary access. */
@@ -2031,6 +2035,29 @@ lto_eh_personality (void)
return lto_eh_personality_decl;
}
+/* Set process name to NAME */
+
+static void
+set_process_name (const char *name ATTRIBUTE_UNUSED)
+{
+#ifdef HAVE_PRCTL_SET_NAME
+ prctl (PR_SET_NAME, name);
+#endif
+}
+
+/* Set the process name based on the LTO mode. */
+
+static void
+lto_process_name (void)
+{
+ if (flag_lto)
+ set_process_name ("lto1-lto");
+ if (flag_wpa)
+ set_process_name ("lto1-wpa");
+ if (flag_ltrans)
+ set_process_name ("lto1-ltrans");
+}
+
/* Main entry point for the GIMPLE front end. This front end has
three main personalities:
@@ -2055,6 +2082,8 @@ lto_eh_personality (void)
void
lto_main (int debug_p ATTRIBUTE_UNUSED)
{
+ lto_process_name ();
+
lto_init_reader ();
/* Read all the symbols and call graph from all the files in the
From: Andi Kleen <ak@linux.intel.com> On larger parallel WHOPR builds I find it useful to see in top which phase a given lto1 is in. Set the process name to lto1-wpa, lto1-ltrans, lto1-lto depending on the current mode. This is currently only implemented for Linux and only using the "comm" process name, which is reported in top. Passes bootstrap and testsuite on x86_64-linux. Ok to commit? gcc/ 2010-10-04 Andi Kleen <ak@linux.intel.com> * configure.ac: Add check for prctl PR_SET_NAME. * configure: Regenerate. * config.in: Regenerate. gcc/lto/ 2010-10-04 Andi Kleen <ak@linux.intel.com> * lto.c: Include <sys/prctl.h>. (set_process_name, lto_process_name): Add. (lto_main): Call lto_process_name. --- gcc/config.in | 15 ++++++++++++--- gcc/configure | 31 +++++++++++++++++++++++++++++-- gcc/configure.ac | 10 ++++++++++ gcc/lto/lto.c | 29 +++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+), 5 deletions(-)