Add possibly-bogus implementations for __libc_current_sigrtmin,
__libc_current_sigrtmax and __libc_allocate_rtsig.

MERGE TO STABLE


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1561 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/arch/x86-linux/vg_libpthread.c b/coregrind/arch/x86-linux/vg_libpthread.c
index 3db4db5..21646f3 100644
--- a/coregrind/arch/x86-linux/vg_libpthread.c
+++ b/coregrind/arch/x86-linux/vg_libpthread.c
@@ -2939,6 +2939,37 @@
    return VGR_(msgrcv)(msqid, msgp, msgsz, msgtyp, msgflg );
 }
 
+
+/* ---------------------------------------------------------------------
+   The glibc sources say that returning -1 in these 3 functions
+   causes real time signals not to be used.
+   ------------------------------------------------------------------ */
+
+int __libc_current_sigrtmin (void)
+{
+   static int moans = N_MOANS;
+   if (moans-- > 0) 
+      kludged("__libc_current_sigrtmin");
+   return -1;
+}
+
+int __libc_current_sigrtmax (void)
+{
+   static int moans = N_MOANS;
+   if (moans-- > 0) 
+      kludged("__libc_current_sigrtmax");
+   return -1;
+}
+
+int __libc_allocate_rtsig (int high)
+{
+   static int moans = N_MOANS;
+   if (moans-- > 0) 
+      kludged("__libc_allocate_rtsig");
+   return -1;
+}
+
+
 /* ---------------------------------------------------------------------
    B'stard.
    ------------------------------------------------------------------ */
diff --git a/coregrind/arch/x86-linux/vg_libpthread_unimp.c b/coregrind/arch/x86-linux/vg_libpthread_unimp.c
index 5fb4d15..c502112 100644
--- a/coregrind/arch/x86-linux/vg_libpthread_unimp.c
+++ b/coregrind/arch/x86-linux/vg_libpthread_unimp.c
@@ -48,9 +48,9 @@
 //void __fcntl ( void )  { unimp("__fcntl"); }
 //void __fork ( void )  { unimp("__fork"); }
 //void __h_errno_location ( void )  { unimp("__h_errno_location"); }
-void __libc_allocate_rtsig ( void )  { unimp("__libc_allocate_rtsig"); }
-void __libc_current_sigrtmax ( void )  { unimp("__libc_current_sigrtmax"); }
-void __libc_current_sigrtmin ( void )  { unimp("__libc_current_sigrtmin"); }
+//void __libc_allocate_rtsig ( void )  { unimp("__libc_allocate_rtsig"); }
+//void __libc_current_sigrtmax ( void )  { unimp("__libc_current_sigrtmax"); }
+//void __libc_current_sigrtmin ( void )  { unimp("__libc_current_sigrtmin"); }
 //void __lseek ( void )  { unimp("__lseek"); }
 //void __open ( void )  { unimp("__open"); }
 //void __open64 ( void )  { unimp("__open64"); }
diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c
index 3db4db5..21646f3 100644
--- a/coregrind/vg_libpthread.c
+++ b/coregrind/vg_libpthread.c
@@ -2939,6 +2939,37 @@
    return VGR_(msgrcv)(msqid, msgp, msgsz, msgtyp, msgflg );
 }
 
+
+/* ---------------------------------------------------------------------
+   The glibc sources say that returning -1 in these 3 functions
+   causes real time signals not to be used.
+   ------------------------------------------------------------------ */
+
+int __libc_current_sigrtmin (void)
+{
+   static int moans = N_MOANS;
+   if (moans-- > 0) 
+      kludged("__libc_current_sigrtmin");
+   return -1;
+}
+
+int __libc_current_sigrtmax (void)
+{
+   static int moans = N_MOANS;
+   if (moans-- > 0) 
+      kludged("__libc_current_sigrtmax");
+   return -1;
+}
+
+int __libc_allocate_rtsig (int high)
+{
+   static int moans = N_MOANS;
+   if (moans-- > 0) 
+      kludged("__libc_allocate_rtsig");
+   return -1;
+}
+
+
 /* ---------------------------------------------------------------------
    B'stard.
    ------------------------------------------------------------------ */
diff --git a/coregrind/vg_libpthread_unimp.c b/coregrind/vg_libpthread_unimp.c
index 5fb4d15..c502112 100644
--- a/coregrind/vg_libpthread_unimp.c
+++ b/coregrind/vg_libpthread_unimp.c
@@ -48,9 +48,9 @@
 //void __fcntl ( void )  { unimp("__fcntl"); }
 //void __fork ( void )  { unimp("__fork"); }
 //void __h_errno_location ( void )  { unimp("__h_errno_location"); }
-void __libc_allocate_rtsig ( void )  { unimp("__libc_allocate_rtsig"); }
-void __libc_current_sigrtmax ( void )  { unimp("__libc_current_sigrtmax"); }
-void __libc_current_sigrtmin ( void )  { unimp("__libc_current_sigrtmin"); }
+//void __libc_allocate_rtsig ( void )  { unimp("__libc_allocate_rtsig"); }
+//void __libc_current_sigrtmax ( void )  { unimp("__libc_current_sigrtmax"); }
+//void __libc_current_sigrtmin ( void )  { unimp("__libc_current_sigrtmin"); }
 //void __lseek ( void )  { unimp("__lseek"); }
 //void __open ( void )  { unimp("__open"); }
 //void __open64 ( void )  { unimp("__open64"); }