aboutsummaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2010-10-06 23:01:30 +0000
committerDJ Delorie <dj@redhat.com>2010-10-06 23:01:30 +0000
commit9711ae4d9fb353051cbce8d4f72ce25bdf988f74 (patch)
tree84dde83f5042262f2c4471750a0142eb633e9d0f /libiberty
parentb98aa77cb421596fe1a8cc61737bffd021f282ea (diff)
downloadfsf-binutils-gdb-9711ae4d9fb353051cbce8d4f72ce25bdf988f74.zip
fsf-binutils-gdb-9711ae4d9fb353051cbce8d4f72ce25bdf988f74.tar.gz
fsf-binutils-gdb-9711ae4d9fb353051cbce8d4f72ce25bdf988f74.tar.bz2
merge from gcc
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/ChangeLog11
-rw-r--r--libiberty/Makefile.in13
-rw-r--r--libiberty/config.in16
-rwxr-xr-xlibiberty/configure31
-rw-r--r--libiberty/configure.ac14
-rw-r--r--libiberty/functions.texi10
-rw-r--r--libiberty/setproctitle.c47
7 files changed, 129 insertions, 13 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 77f7fe3..9316975 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,14 @@
+2010-10-06 Andi Kleen <ak@linux.intel.com>
+
+ * Makefile.in (CFILES): Add setproctitle.
+ (CONFIGURED_OFILES): Add setproctitle.
+ (setproctitle): Add rule.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+ * configure.ac: Add checks for prctl PR_SET_NAME and setproctitle.
+ * setproctitle.c: Add file.
+ * functions.texi: Regenerate.
+
2010-09-22 Tristan Gingold <gingold@adacore.com>
* cplus-dem.c (ada_demangle): Add comments.
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index c5e9929..1893254 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -144,7 +144,8 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \
pex-unix.c pex-win32.c \
physmem.c putenv.c \
random.c regex.c rename.c rindex.c \
- safe-ctype.c setenv.c sha1.c sigsetmask.c snprintf.c sort.c \
+ safe-ctype.c setenv.c setproctitle.c sha1.c sigsetmask.c \
+ snprintf.c sort.c \
spaces.c splay-tree.c stpcpy.c stpncpy.c strcasecmp.c \
strchr.c strdup.c strerror.c strncasecmp.c strncmp.c \
strrchr.c strsignal.c strstr.c strtod.c strtol.c strtoul.c \
@@ -201,7 +202,9 @@ CONFIGURED_OFILES = ./asprintf.$(objext) ./atexit.$(objext) \
./pex-unix.$(objext) ./pex-win32.$(objext) \
./putenv.$(objext) \
./random.$(objext) ./rename.$(objext) ./rindex.$(objext) \
- ./setenv.$(objext) ./sigsetmask.$(objext) ./snprintf.$(objext) \
+ ./setenv.$(objext) \
+ ./setproctitle.$(objext) \
+ ./sigsetmask.$(objext) ./snprintf.$(objext) \
./stpcpy.$(objext) ./stpncpy.$(objext) ./strcasecmp.$(objext) \
./strchr.$(objext) ./strdup.$(objext) ./strncasecmp.$(objext) \
./strncmp.$(objext) ./strndup.$(objext) ./strrchr.$(objext) \
@@ -944,6 +947,12 @@ $(CONFIGURED_OFILES): stamp-picdir
else true; fi
$(COMPILE.c) $(srcdir)/setenv.c $(OUTPUT_OPTION)
+./setproctitle.$(objext): $(srcdir)/setproctitle.c config.h $(INCDIR)/ansidecl.h
+ if [ x"$(PICFLAG)" != x ]; then \
+ $(COMPILE.c) $(PICFLAG) $(srcdir)/setproctitle.c -o pic/$@; \
+ else true; fi
+ $(COMPILE.c) $(srcdir)/setproctitle.c $(OUTPUT_OPTION)
+
./sha1.$(objext): $(srcdir)/sha1.c config.h $(INCDIR)/ansidecl.h $(INCDIR)/sha1.h
if [ x"$(PICFLAG)" != x ]; then \
$(COMPILE.c) $(PICFLAG) $(srcdir)/sha1.c -o pic/$@; \
diff --git a/libiberty/config.in b/libiberty/config.in
index 1931648..02d93da 100644
--- a/libiberty/config.in
+++ b/libiberty/config.in
@@ -44,8 +44,8 @@
don't. */
#undef HAVE_DECL_ASPRINTF
-/* Define to 1 if you have the declaration of `basename', and to 0 if you
- don't. */
+/* Define to 1 if you have the declaration of `basename(char *)', and to 0 if
+ you don't. */
#undef HAVE_DECL_BASENAME
/* Define to 1 if you have the declaration of `calloc', and to 0 if you don't.
@@ -154,9 +154,6 @@
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
-/* Define to 1 if you have the `mempcpy' function. */
-#undef HAVE_MEMPCPY
-
/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET
@@ -169,6 +166,9 @@
/* Define to 1 if you have the `on_exit' function. */
#undef HAVE_ON_EXIT
+/* Define if you have prctl PR_SET_NAME */
+#undef HAVE_PRCTL_SET_NAME
+
/* Define to 1 if you have the `psignal' function. */
#undef HAVE_PSIGNAL
@@ -199,6 +199,9 @@
/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV
+/* Define to 1 if you have the `setproctitle' function. */
+#undef HAVE_SETPROCTITLE
+
/* Define to 1 if you have the `sigsetmask' function. */
#undef HAVE_SIGSETMASK
@@ -358,9 +361,6 @@
/* Define to 1 if you have the `vprintf' function. */
#undef HAVE_VPRINTF
-/* Define to 1 if you have the `vsnprintf' function. */
-#undef HAVE_VSNPRINTF
-
/* Define to 1 if you have the `vsprintf' function. */
#undef HAVE_VSPRINTF
diff --git a/libiberty/configure b/libiberty/configure
index 9a3b2d3..7ff7792 100755
--- a/libiberty/configure
+++ b/libiberty/configure
@@ -5276,6 +5276,7 @@ funcs="$funcs vprintf"
funcs="$funcs vsnprintf"
funcs="$funcs vsprintf"
funcs="$funcs waitpid"
+funcs="$funcs setproctitle"
# Also in the old function.def file: alloca, vfork, getopt.
@@ -5298,7 +5299,8 @@ if test "x" = "y"; then
on_exit \
psignal pstat_getdynamic pstat_getstatic putenv \
random realpath rename rindex \
- sbrk setenv sigsetmask snprintf stpcpy stpncpy strcasecmp strchr strdup \
+ sbrk setenv setproctitle sigsetmask snprintf stpcpy stpncpy strcasecmp strchr \
+ strdup \
strerror strncasecmp strndup strrchr strsignal strstr strtod strtol \
strtoul strverscmp sysconf sysctl sysmp \
table times tmpnam \
@@ -5704,6 +5706,33 @@ fi
+# 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
+
+
case "${host}" in
*-*-cygwin* | *-*-mingw*)
$as_echo "#define HAVE_SYS_ERRLIST 1" >>confdefs.h
diff --git a/libiberty/configure.ac b/libiberty/configure.ac
index 4de83f9..8b7be18 100644
--- a/libiberty/configure.ac
+++ b/libiberty/configure.ac
@@ -351,6 +351,7 @@ funcs="$funcs vprintf"
funcs="$funcs vsnprintf"
funcs="$funcs vsprintf"
funcs="$funcs waitpid"
+funcs="$funcs setproctitle"
# Also in the old function.def file: alloca, vfork, getopt.
@@ -373,7 +374,8 @@ if test "x" = "y"; then
on_exit \
psignal pstat_getdynamic pstat_getstatic putenv \
random realpath rename rindex \
- sbrk setenv sigsetmask snprintf stpcpy stpncpy strcasecmp strchr strdup \
+ sbrk setenv setproctitle sigsetmask snprintf stpcpy stpncpy strcasecmp strchr \
+ strdup \
strerror strncasecmp strndup strrchr strsignal strstr strtod strtol \
strtoul strverscmp sysconf sysctl sysmp \
table times tmpnam \
@@ -533,6 +535,16 @@ fi
AC_SUBST(CHECK)
AC_SUBST(target_header_dir)
+# 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]))
+
case "${host}" in
*-*-cygwin* | *-*-mingw*)
AC_DEFINE(HAVE_SYS_ERRLIST)
diff --git a/libiberty/functions.texi b/libiberty/functions.texi
index d9fef8c..e074ba7 100644
--- a/libiberty/functions.texi
+++ b/libiberty/functions.texi
@@ -667,7 +667,7 @@ relative prefix can be found, return @code{NULL}.
@end deftypefn
-@c make-temp-file.c:168
+@c make-temp-file.c:173
@deftypefn Replacement char* make_temp_file (const char *@var{suffix})
Return a temporary file name (as a string) or @code{NULL} if unable to
@@ -1146,6 +1146,14 @@ environment. This implementation is not safe for multithreaded code.
@end deftypefn
+@c setproctitle.c:30
+@deftypefn Supplemental void setproctitle(const char *@var{fmt} ...)
+
+Set the title of a process to @var{fmt}. va args not supported for now,
+but defined for compatibility with BSD.
+
+@end deftypefn
+
@c strsignal.c:348
@deftypefn Extension int signo_max (void)
diff --git a/libiberty/setproctitle.c b/libiberty/setproctitle.c
new file mode 100644
index 0000000..b176b41
--- /dev/null
+++ b/libiberty/setproctitle.c
@@ -0,0 +1,47 @@
+/* Set the title of a process.
+ Copyright (C) 2010 Free Software Foundation, Inc.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB. If not,
+write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#ifdef HAVE_PRCTL_SET_NAME
+#include <sys/prctl.h>
+#endif
+#include "ansidecl.h"
+
+/*
+
+@deftypefn Supplemental void setproctitle(const char *@var{fmt} ...)
+
+Set the title of a process to @var{fmt}. va args not supported for now,
+but defined for compatibility with BSD.
+
+@end deftypefn
+
+*/
+
+void
+setproctitle (const char *name ATTRIBUTE_UNUSED, ...)
+{
+#ifdef HAVE_PRCTL_SET_NAME
+ /* On Linux this sets the top visible "comm", but not necessarily
+ the name visible in ps. */
+ prctl (PR_SET_NAME, name);
+#endif
+}