[COMMITTED] Add stub sys/procfs.h file

Message ID 20150108213008.16F412C3BA1@topped-with-meat.com
State Committed
Headers

Commit Message

Roland McGrath Jan. 8, 2015, 9:30 p.m. UTC
  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.
  

Comments

Joseph Myers Jan. 8, 2015, 10:27 p.m. UTC | #1
On Thu, 8 Jan 2015, Roland McGrath wrote:

> --- /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.

It's now 2015.
  
Roland McGrath Jan. 8, 2015, 10:30 p.m. UTC | #2
> On Thu, 8 Jan 2015, Roland McGrath wrote:
> 
> > --- /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.
> 
> It's now 2015.

Yes, thanks.  I fixed it without bothering with a ChangeLog entry.
  

Patch

--- 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 \