summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Rules.mak34
1 files changed, 31 insertions, 3 deletions
diff --git a/Rules.mak b/Rules.mak
index f70126e07..68cc43294 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -309,12 +309,40 @@ ifeq ($(strip $(UCLIBC_HAS_THREADS_NATIVE)),y)
else
PTNAME := linuxthreads
endif
-PTDIR := $(TOPDIR)libpthread/$(PTNAME)
+PTDIR := $(TOPDIR)libpthread/$(PTNAME)/
# set up system dependencies include dirs (NOTE: order matters!)
+ifeq ($(strip $(UCLIBC_HAS_THREADS_NATIVE)),y)
+PTINC := -I$(PTDIR)compat \
+ -I$(PTDIR)sysdeps/unix/sysv/linux/$(TARGET_ARCH) \
+ -I$(PTDIR)sysdeps/$(TARGET_ARCH) \
+ -I$(PTDIR)sysdeps/unix/sysv/linux \
+ -I$(PTDIR)sysdeps/pthread \
+ -I$(PTDIR)sysdeps/pthread/bits \
+ -I$(PTDIR)sysdeps/generic \
+ -include $(PTDIR)compat/libc-symbols.h
+#
+# Test for TLS if NPTL support was selected.
+#
+GCC_HAS_TLS=$(shell \
+ echo "extern __thread int foo;" | $(CC) -o /dev/null -S -xc - 2>&1)
+ifneq ($(GCC_HAS_TLS),)
+gcc_tls_test_fail:
+ @echo "####";
+ @echo "#### Your compiler does not support TLS and you are trying to build uClibc";
+ @echo "#### with NPTL support. Upgrade your binutils and gcc to versions which";
+ @echo "#### support TLS for your architecture. Do not contact uClibc maintainers";
+ @echo "#### about this problem.";
+ @echo "####";
+ @echo "#### Exiting...";
+ @echo "####";
+ @exit 1;
+endif
+else
# psm: the next 2 are probably incorrect, the generic header will
# win over the arch specific one
-PTINC := -I$(PTDIR)/sysdeps/pthread \
- -I$(PTDIR)/sysdeps/$(TARGET_ARCH)
+PTINC := -I$(PTDIR)sysdeps/pthread \
+ -I$(PTDIR)sysdeps/$(TARGET_ARCH)
+endif
endif
ifeq ($(UCLIBC_BUILD_RELRO),y)