changeset 1619:3413e8427702

The lfs m4 build wasn't including -lrt when probing for posix_spawn, thus trying to recreate what was already there and causing a conflicting definition. Change patch to insert it into libc proper.
author Rob Landley <rob@landley.net>
date Fri, 23 Aug 2013 06:02:55 -0500
parents ff283fe54626
children 3c9b927b9da8
files sources/patches/uClibc-posix_spawn.patch
diffstat 1 files changed, 30 insertions(+), 56 deletions(-) [+]
line wrap: on
line diff
--- a/sources/patches/uClibc-posix_spawn.patch	Sat Aug 17 15:20:20 2013 -0500
+++ b/sources/patches/uClibc-posix_spawn.patch	Fri Aug 23 06:02:55 2013 -0500
@@ -1,11 +1,5 @@
 Sabotage needs posix_spawn to bootstrap musl.
 
-Upstream, uClibc added posix_spawn and did it horribly. It's a straight copy
-from glibc, checked in before 0.9.33.2 released but not _in_ 0.9.33.2. Commit
-a969b3f3c08e removed the "we have this" indicator from the headers, but
-then commit 0dcf66744f53 didn't add it back...
-
-
 diff -ruN uClibc/include/spawn.h uClibc.bak/include/spawn.h
 --- uClibc/include/spawn.h	1969-12-31 18:00:00.000000000 -0600
 +++ uClibc.bak/include/spawn.h	2013-07-11 00:04:24.024324269 -0500
@@ -276,41 +270,9 @@
 +__END_DECLS
 +
 +#endif /* spawn.h */
-diff -ruN uClibc/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h uClibc.bak/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
---- uClibc/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h	2012-05-15 02:20:09.000000000 -0500
-+++ uClibc.bak/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h	2013-07-10 21:49:10.087986094 -0500
-@@ -149,10 +149,8 @@
- /* We support spinlocks.  */
- #define _POSIX_SPIN_LOCKS	200809L
- 
--#if 0 /* no support in uClibc (yet) */
- /* The `spawn' function family is supported.  */
- #define _POSIX_SPAWN	200809L
--#endif
- 
- /* We have POSIX timers.  */
- #define _POSIX_TIMERS	200809L
-diff -ruN uClibc/librt/Makefile.in uClibc.bak/librt/Makefile.in
---- uClibc/librt/Makefile.in	2012-05-15 02:20:09.000000000 -0500
-+++ uClibc.bak/librt/Makefile.in	2013-07-10 21:48:33.191984555 -0500
-@@ -33,6 +33,14 @@
- librt_filter_SRC += clock_nanosleep.c clock_getcpuclockid.c clock_gettime.c
- librt_SSRC :=
- endif
-+
-+librt_filter_SRC += $(if $(UCLIBC_HAS_ADVANCED_REALTIME),, \
-+	spawn.c \
-+	spawn_faction_addclose.c \
-+	spawn_faction_adddup2.c \
-+	spawn_faction_addopen.c \
-+	spawn_faction_init.c)
-+
- librt_SRC := $(filter-out $(librt_filter_SRC),$(librt_SRC))
- 
- librt_OBJ := $(patsubst %.c,$(librt_OUT)/%.o,$(librt_SRC))
-diff -ruN uClibc/librt/spawn.c uClibc.bak/librt/spawn.c
---- uClibc/librt/spawn.c	1969-12-31 18:00:00.000000000 -0600
-+++ uClibc.bak/librt/spawn.c	2013-07-10 21:48:33.191984555 -0500
+diff -ruN uClibc/libc/stdlib/spawn.c uClibc.bak/libc/stdlib/spawn.c
+--- uClibc/libc/stdlib/spawn.c	1969-12-31 18:00:00.000000000 -0600
++++ uClibc.bak/libc/stdlib/spawn.c	2013-07-10 21:48:33.191984555 -0500
 @@ -0,0 +1,259 @@
 +/* Copyright (C) 2000, 2011 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -571,9 +533,9 @@
 +
 +	return __spawni(pid, file, fa, attrp, argv, envp, path);
 +}
-diff -ruN uClibc/librt/spawn_faction_addclose.c uClibc.bak/librt/spawn_faction_addclose.c
---- uClibc/librt/spawn_faction_addclose.c	1969-12-31 18:00:00.000000000 -0600
-+++ uClibc.bak/librt/spawn_faction_addclose.c	2013-07-10 21:48:33.191984555 -0500
+diff -ruN uClibc/libc/stdlib/spawn_faction_addclose.c uClibc.bak/libc/stdlib/spawn_faction_addclose.c
+--- uClibc/libc/stdlib/spawn_faction_addclose.c	1969-12-31 18:00:00.000000000 -0600
++++ uClibc.bak/libc/stdlib/spawn_faction_addclose.c	2013-07-10 21:48:33.191984555 -0500
 @@ -0,0 +1,51 @@
 +/* Copyright (C) 2000 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -626,9 +588,9 @@
 +	++file_actions->__used;
 +	return 0;
 +}
-diff -ruN uClibc/librt/spawn_faction_adddup2.c uClibc.bak/librt/spawn_faction_adddup2.c
---- uClibc/librt/spawn_faction_adddup2.c	1969-12-31 18:00:00.000000000 -0600
-+++ uClibc.bak/librt/spawn_faction_adddup2.c	2013-07-10 21:48:33.219984556 -0500
+diff -ruN uClibc/libc/stdlib/spawn_faction_adddup2.c uClibc.bak/libc/stdlib/spawn_faction_adddup2.c
+--- uClibc/libc/stdlib/spawn_faction_adddup2.c	1969-12-31 18:00:00.000000000 -0600
++++ uClibc.bak/libc/stdlib/spawn_faction_adddup2.c	2013-07-10 21:48:33.219984556 -0500
 @@ -0,0 +1,52 @@
 +/* Copyright (C) 2000 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -682,9 +644,9 @@
 +	++file_actions->__used;
 +	return 0;
 +}
-diff -ruN uClibc/librt/spawn_faction_addopen.c uClibc.bak/librt/spawn_faction_addopen.c
---- uClibc/librt/spawn_faction_addopen.c	1969-12-31 18:00:00.000000000 -0600
-+++ uClibc.bak/librt/spawn_faction_addopen.c	2013-07-10 21:48:33.219984556 -0500
+diff -ruN uClibc/libc/stdlib/spawn_faction_addopen.c uClibc.bak/libc/stdlib/spawn_faction_addopen.c
+--- uClibc/libc/stdlib/spawn_faction_addopen.c	1969-12-31 18:00:00.000000000 -0600
++++ uClibc.bak/libc/stdlib/spawn_faction_addopen.c	2013-07-10 21:48:33.219984556 -0500
 @@ -0,0 +1,55 @@
 +/* Copyright (C) 2000 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -741,9 +703,9 @@
 +	++file_actions->__used;
 +	return 0;
 +}
-diff -ruN uClibc/librt/spawn_faction_init.c uClibc.bak/librt/spawn_faction_init.c
---- uClibc/librt/spawn_faction_init.c	1969-12-31 18:00:00.000000000 -0600
-+++ uClibc.bak/librt/spawn_faction_init.c	2013-07-10 21:48:33.219984556 -0500
+diff -ruN uClibc/libc/stdlib/spawn_faction_init.c uClibc.bak/libc/stdlib/spawn_faction_init.c
+--- uClibc/libc/stdlib/spawn_faction_init.c	1969-12-31 18:00:00.000000000 -0600
++++ uClibc.bak/libc/stdlib/spawn_faction_init.c	2013-07-10 21:48:33.219984556 -0500
 @@ -0,0 +1,42 @@
 +/* Copyright (C) 2000 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -787,9 +749,9 @@
 +	file_actions->__allocated = newalloc;
 +	return 0;
 +}
-diff -ruN uClibc/librt/spawn_int.h uClibc.bak/librt/spawn_int.h
---- uClibc/librt/spawn_int.h	1969-12-31 18:00:00.000000000 -0600
-+++ uClibc.bak/librt/spawn_int.h	2013-07-10 21:48:33.219984556 -0500
+diff -ruN uClibc/libc/stdlib/spawn_int.h uClibc.bak/libc/stdlib/spawn_int.h
+--- uClibc/libc/stdlib/spawn_int.h	1969-12-31 18:00:00.000000000 -0600
++++ uClibc.bak/libc/stdlib/spawn_int.h	2013-07-10 21:48:33.219984556 -0500
 @@ -0,0 +1,26 @@
 +/* Data structure to contain the action information.  */
 +struct __spawn_action {
@@ -828,3 +790,15 @@
  
  ifneq ($(findstring install,$(MAKECMDGOALS)),)
  $(addprefix $(PREFIX)$(DEVEL_PREFIX),include $(MULTILIB_DIR)):
+--- uClibc.bak/libc/stdlib/Makefile.in	2012-05-15 02:20:09.000000000 -0500
++++ uClibc/libc/stdlib/Makefile.in	2013-08-23 05:07:07.219499583 -0500
+@@ -62,6 +62,9 @@
+ CSRC-y += __cxa_atexit.c __cxa_finalize.c __exit_handler.c exit.c on_exit.c
+ CSRC-$(COMPAT_ATEXIT) += old_atexit.c
+ 
++CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += spawn.c spawn_faction_addclose.c \
++	spawn_faction_adddup2.c spawn_faction_addopen.c spawn_faction_init.c
++
+ STDLIB_DIR := $(top_srcdir)libc/stdlib
+ STDLIB_OUT := $(top_builddir)libc/stdlib
+