--- a/Rules.mak
+++ b/Rules.mak
-@@ -481,6 +481,17 @@ ifeq ($(TARGET_ARCH),i960)
+@@ -482,6 +482,17 @@ ifeq ($(TARGET_ARCH),i960)
SYMBOL_PREFIX=_
endif
config TARGET_v850
bool "v850 (BROKEN)"
-@@ -203,6 +206,10 @@ if TARGET_sparc
+@@ -206,6 +209,10 @@ if TARGET_sparc
source "extra/Configs/Config.sparc"
endif
endif
--- a/extra/Configs/Config.in.arch
+++ b/extra/Configs/Config.in.arch
-@@ -149,7 +149,7 @@ config UCLIBC_HAS_SOFT_FLOAT
+@@ -153,7 +153,7 @@ config UCLIBC_HAS_SOFT_FLOAT
config DO_C99_MATH
bool "Enable full C99 math library support"
depends on UCLIBC_HAS_FLOATS
+ string
--- a/include/elf.h
+++ b/include/elf.h
-@@ -337,6 +337,8 @@ typedef struct
+@@ -338,6 +338,8 @@ typedef struct
#define EM_XSTORMY16 0xad45
/* FRV magic number - no EABI available??. */
#define EM_CYGNUS_FRV 0x5441
-@@ -3063,6 +3065,55 @@ typedef Elf32_Addr Elf32_Conflict;
- /* Keep this the last entry. */
- #define R_XTENSA_NUM 50
+@@ -3108,6 +3110,55 @@ typedef Elf32_Addr Elf32_Conflict;
+
+ #define DT_C6000_NUM 4
+/* Ubicom32 ELF relocation types */
+#define R_UBICOM32_NONE 0
#endif
--- a/include/features.h
+++ b/include/features.h
-@@ -445,4 +445,10 @@ uClibc was built without large file supp
+@@ -448,4 +448,10 @@ uClibc was built without large file supp
# include <libc-internal.h>
#endif
--- a/ldso/ldso/ldso.c
+++ b/ldso/ldso/ldso.c
-@@ -327,10 +327,12 @@ void _dl_get_ready_to_run(struct elf_res
+@@ -325,10 +325,12 @@ void _dl_get_ready_to_run(struct elf_res
_dl_progname = argv[0];
}
+ .set __GI_vfork,vfork
--- a/libpthread/linuxthreads.old/pthread.c
+++ b/libpthread/linuxthreads.old/pthread.c
-@@ -393,6 +393,10 @@ void __pthread_initialize_minimal(void)
+@@ -391,6 +391,10 @@ void __pthread_initialize_minimal(void)
#endif
__libc_multiple_threads_ptr = __libc_pthread_init (ptr_pthread_functions);
}
-@@ -461,8 +465,11 @@ static void pthread_initialize(void)
- * __pthread_initial_thread_bos at address 0. These bounds are refined as we
- * malloc other stack frames such that they don't overlap. -StS
+@@ -467,7 +471,8 @@ static void pthread_initialize(void)
+ * for a few more details.
*/
-- __pthread_initial_thread_tos =
-- (char *)(((long)CURRENT_STACK_FRAME + getpagesize()) & ~(getpagesize() - 1));
-+ if (__pthread_initial_thread_tos == NULL) {
-+ __pthread_initial_thread_tos =
-+ (char *)(((long)CURRENT_STACK_FRAME + getpagesize()) & ~(getpagesize() - 1));
-+ }
-+
+ __pthread_initial_thread_mid = CURRENT_STACK_FRAME;
+- __pthread_initial_thread_tos = (char *) -1;
++ if (__pthread_initial_thread_tos == NULL)
++ __pthread_initial_thread_tos = (char *) -1;
__pthread_initial_thread_bos = (char *) 1; /* set it non-zero so we know we have been here */
PDEBUG("initial thread stack bounds: bos=%p, tos=%p\n",
__pthread_initial_thread_bos, __pthread_initial_thread_tos);