This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[COMMITTED PATCH] Add stub sys/procfs.h file
- From: Roland McGrath <roland at hack dot frob dot com>
- To: "GNU C. Library" <libc-alpha at sourceware dot org>
- Date: Thu, 8 Jan 2015 13:30:08 -0800 (PST)
- Subject: [COMMITTED PATCH] Add stub sys/procfs.h file
- Authentication-results: sourceware.org; auth=none
Since nptl_db (and nptl, indirectly) requires sys/procfs.h,
it should not be considered a Linux-only header.
The stub file is not enough for nptl_db to compile, since it leaves the
crucial regset types incomplete. But it's enough for nptl/descr.h's use of
nptl_db/thread_db.h to compile OK. In a configuration that supports NPTL
but where libthread_db is never going to be useful, a sysdeps/.../Makefile
can filter out the nptl_db subdir from the list and then NPTL will build.
This change should have no effect on existing configurations.
Thanks,
Roland
* sysdeps/nptl/sys/procfs.h: New file.
* nptl_db/Makefile (headers): Add it.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Don't add it.
--- a/nptl_db/Makefile
+++ b/nptl_db/Makefile
@@ -26,7 +26,7 @@ nptl_db-version = 1.0
extra-libs = libthread_db
extra-libs-others := $(extra-libs)
-headers = thread_db.h
+headers = thread_db.h sys/procfs.h
libthread_db-routines = td_init td_log td_ta_new td_ta_delete \
td_ta_get_nthreads td_ta_get_ph \
--- /dev/null
+++ b/sysdeps/nptl/sys/procfs.h
@@ -0,0 +1,39 @@
+/* Types used by thread_db callback interface. Stub version.
+ Copyright (C) 2014 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+#include <sys/types.h>
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register set types used in thread_db interface. */
+typedef struct prregset prgregset_t;
+typedef struct prfpregset prfpregset_t;
+
+/* Type used for lightweight-process (i.e. thread) IDs. */
+typedef __pid_t lwpid_t;
+
+
+#endif /* sys/procfs.h */
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -34,7 +34,7 @@ CFLAGS-tst-writev.c += "-DARTIFICIAL_LIMIT=0x80000000-__getpagesize()"
# configurations will not install the file.
sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
sys/klog.h sys/kdaemon.h \
- sys/user.h sys/procfs.h sys/prctl.h \
+ sys/user.h sys/prctl.h \
sys/kd.h sys/soundcard.h sys/vt.h \
sys/quota.h sys/fsuid.h \
scsi/sg.h scsi/scsi.h scsi/scsi_ioctl.h sys/pci.h \