svn commit: [26098] branches/uClibc-nptl: ldso/include ldso/ldso/sparc libc/unist etc...

kraj at uclibc.org kraj at uclibc.org
Tue Apr 14 19:20:51 UTC 2009


Author: kraj
Date: 2009-04-14 19:20:51 +0000 (Tue, 14 Apr 2009)
New Revision: 26098

Log:
Merged revisions 26046,26062,26066,26078 via svnmerge from 
svn+ssh://kraj@svn.uclibc.org/svn/trunk/uClibc

........
  r26046 | aldot | 2009-04-09 10:48:17 -0700 (Thu, 09 Apr 2009) | 2 lines
  
  - fix typo
........
  r26062 | austinf | 2009-04-10 17:08:47 -0700 (Fri, 10 Apr 2009) | 4 lines
  
  sparc also needs CONSTANT_STRING_GOT_FIXUP for doing debug printing in ldso
  
  Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
........
  r26066 | austinf | 2009-04-11 12:30:04 -0700 (Sat, 11 Apr 2009) | 5 lines
  
  for sparc v8 MAGIC1 was defined incorrectly
  
  Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
........
  r26078 | vapier | 2009-04-12 17:06:40 -0700 (Sun, 12 Apr 2009) | 1 line
  
  make sure to block all signals when calling daemon() to prevent delivery while the parent is sharing the stack
........


Modified:
   branches/uClibc-nptl/
   branches/uClibc-nptl/Makefile.help
   branches/uClibc-nptl/ldso/include/dl-string.h
   branches/uClibc-nptl/ldso/ldso/sparc/dl-sysdep.h
   branches/uClibc-nptl/libc/unistd/daemon.c


Changeset:

Property changes on: branches/uClibc-nptl
___________________________________________________________________
Modified: svnmerge-integrated
   - /trunk/uClibc:1-26038
   + /trunk/uClibc:1-26097

Modified: branches/uClibc-nptl/Makefile.help
===================================================================
--- branches/uClibc-nptl/Makefile.help	2009-04-14 09:58:11 UTC (rev 26097)
+++ branches/uClibc-nptl/Makefile.help	2009-04-14 19:20:51 UTC (rev 26098)
@@ -8,7 +8,7 @@
 help:
 	@echo 'Cleaning:'
 	@echo '  clean			- delete temporary object files'
-	@echo '  realclean		- delete temporary object file, including dependencies'
+	@echo '  realclean		- delete temporary object files, including dependencies'
 	@echo '  distclean		- delete all non-source files (including .config)'
 	@echo
 	@echo 'Build:'

Modified: branches/uClibc-nptl/ldso/include/dl-string.h
===================================================================
--- branches/uClibc-nptl/ldso/include/dl-string.h	2009-04-14 09:58:11 UTC (rev 26097)
+++ branches/uClibc-nptl/ldso/include/dl-string.h	2009-04-14 19:20:51 UTC (rev 26098)
@@ -286,7 +286,7 @@
  * This requires that load_addr must already be defined... */
 #if defined(mc68000)  || defined(__arm__) || defined(__thumb__) || \
     defined(__mips__) || defined(__sh__)  || defined(__powerpc__) || \
-    defined(__avr32__) || defined(__xtensa__)
+    defined(__avr32__) || defined(__xtensa__) || defined(__sparc__)
 # define CONSTANT_STRING_GOT_FIXUP(X) \
 	if ((X) < (const char *) load_addr) (X) += load_addr
 # define NO_EARLY_SEND_STDERR

Modified: branches/uClibc-nptl/ldso/ldso/sparc/dl-sysdep.h
===================================================================
--- branches/uClibc-nptl/ldso/ldso/sparc/dl-sysdep.h	2009-04-14 09:58:11 UTC (rev 26097)
+++ branches/uClibc-nptl/ldso/ldso/sparc/dl-sysdep.h	2009-04-14 19:20:51 UTC (rev 26098)
@@ -29,7 +29,7 @@
 /* Here we define the magic numbers that this dynamic loader should accept
  * Note that SPARCV9 doesn't use EM_SPARCV9 since the userland is still 32-bit.
  */
-#if defined(__sparc_v9__) || defined(__sparc_v8__)
+#if defined(__sparc_v9__)
 #define MAGIC1 EM_SPARC32PLUS
 #else
 #define MAGIC1 EM_SPARC

Modified: branches/uClibc-nptl/libc/unistd/daemon.c
===================================================================
--- branches/uClibc-nptl/libc/unistd/daemon.c	2009-04-14 09:58:11 UTC (rev 26097)
+++ branches/uClibc-nptl/libc/unistd/daemon.c	2009-04-14 19:20:51 UTC (rev 26098)
@@ -44,6 +44,7 @@
 #include <features.h>
 #include <fcntl.h>
 #include <paths.h>
+#include <signal.h>
 #include <unistd.h>
 #ifdef __UCLIBC_HAS_THREADS_NATIVE__
 #include <errno.h>
@@ -66,7 +67,7 @@
 /* use clone() to get fork() like behavior here -- we just want to disassociate
  * from the controlling terminal
  */
-static inline pid_t fork_parent(void)
+static inline pid_t _fork_parent(void)
 {
 	register unsigned long ret = INTERNAL_SYSCALL(clone, wtf, 2, CLONE_VM, 0);
 	if (ret != -1 && ret != 0)
@@ -74,6 +75,17 @@
 		INTERNAL_SYSCALL(exit, wtf, 0);
 	return ret;
 }
+static inline pid_t fork_parent(void)
+{
+	/* Block all signals to keep the parent from using the stack */
+	pid_t ret;
+	sigset_t new_set, old_set;
+	sigfillset(&new_set);
+	sigprocmask(SIG_BLOCK, &new_set, &old_set);
+	ret = _fork_parent();
+	sigprocmask(SIG_SETMASK, &old_set, NULL);
+	return ret;
+}
 #else
 static inline pid_t fork_parent(void)
 {



More information about the uClibc-cvs mailing list