This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Let raise work within ld.so (LinuxThreads)


I'm about to post an ARM GCC patch that adds a call to raise() to libgcc.
This means that rtld-raise.os will automatically be built and added to
ld.so.  The NPTL version works fine, but the LinuxThreads version fails to
compile.  So provide a much simpler version for this case.

[It shouldn't ever be called, so I didn't worry too much about the details. 
It's used to raise SIGFPE if ld.so divides by zero.]

Tested on ARM and committed.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* sysdeps/unix/sysv/linux/raise.c (raise) [IS_IN_rtld]: Just call
	__kill.

Index: glibc/linuxthreads/sysdeps/unix/sysv/linux/raise.c
===================================================================
--- glibc.orig/linuxthreads/sysdeps/unix/sysv/linux/raise.c	2003-01-02 19:38:38.000000000 -0500
+++ glibc/linuxthreads/sysdeps/unix/sysv/linux/raise.c	2005-10-31 14:19:58.000000000 -0500
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 2002, 2003, 2005 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
@@ -18,10 +18,13 @@
 
 #include <signal.h>
 #include <unistd.h>
-#include <bits/libc-lock.h>
 
-#ifndef SHARED
+#ifndef IS_IN_rtld
+# include <bits/libc-lock.h>
+
+# ifndef SHARED
 weak_extern (__pthread_raise)
+# endif
 #endif
 
 /* Raise the signal SIG.  */
@@ -29,8 +32,12 @@ int
 raise (sig)
      int sig;
 {
+#ifdef IS_IN_rtld
+  return __kill (__getpid (), sig);
+#else
   return __libc_maybe_call2 (pthread_raise, (sig),
 			     __kill (__getpid (), sig));
+#endif
 }
 libc_hidden_def (raise)
 weak_alias (raise, gsignal)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]