OSDN Git Service

- fix toggling thread implementation.
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 17 Oct 2008 14:05:53 +0000 (14:05 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 17 Oct 2008 14:05:53 +0000 (14:05 -0000)
  Previously the old headers were left in include/ leading to spurious compile failures.
  This is ugly as it can get (we resort to sneaking -L in for the moment) but
  good enough for now. The worst thing which can happen is that we ln these
  headers once per invocation of make, nothing more.
  If some installation of make(1) complains about the "-L" then wrap it in
  ifneq ($(findstring check-symlink,$(.FEATURES)),)

Makefile.in
extra/Configs/Config.in
libpthread/linuxthreads.old/Makefile.in
libpthread/linuxthreads.old_db/Makefile.in
libpthread/linuxthreads/Makefile.in
libpthread/linuxthreads_db/Makefile.in

index 5b666b8..a1dc54c 100644 (file)
@@ -61,6 +61,11 @@ include/bits/uClibc_config.h: extra/config/conf .config $(top_srcdir)extra/scrip
        $(Q)$(top_srcdir)extra/scripts/conf-header.sh .config > $@
        $(Q)$(MAKE) headers-y
 
+# The above doesn't work for threads, though. Just using check-symlinks for now.
+# XXX: FIXME: this is ugly
+MAKEFLAGS += -L
+include/config/linuxthreads/old.h include/config/linuxthreads/new.h:
+
 # For the moment, we have to keep re-running this target
 # because the fix includes scripts rely on pre-processers
 # in order to generate the headers correctly :(.  That
index 8ea6eeb..858e05b 100644 (file)
@@ -403,6 +403,10 @@ config LINUXTHREADS_OLD
          the latest code from glibc, so it may be the only choice for the
          newer ports (like alpha/amd64/64bit arches and hppa).
 
+config LINUXTHREADS_NEW
+       def_bool y
+       depends on !LINUXTHREADS_OLD
+
 config UCLIBC_HAS_SYSLOG
        bool "Syslog support"
        default y
index fe29f2c..cae8393 100644 (file)
@@ -71,9 +71,6 @@ libpthread-so-y += $(libpthread_OBJ:.o=.os) $(libpthread-shared-y)
 
 lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
 lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
-objclean-y += libpthread_clean
-headers-$(UCLIBC_HAS_THREADS) += linuxthreads_headers
-headers_clean-y += linuxthreads_headers_clean
 
 #ifeq ($(DOMULTI),n)
 $(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depend)
@@ -111,13 +108,17 @@ include/semaphore.h:
        $(do_ln) ../$(PTDIR)/$(@F) $(top_builddir)$@
 include/bits/pthreadtypes.h: | include/bits
        $(do_ln) ../../$(PTDIR)/sysdeps/pthread/bits/$(@F) $(top_builddir)$@
-linuxthreads_headers: include/pthread.h include/semaphore.h \
+
+linuxthreads_headers := include/pthread.h include/semaphore.h \
                        include/bits/pthreadtypes.h
+$(linuxthreads_headers): include/config/linuxthreads/old.h \
+           include/config/linuxthreads/new.h
+headers-$(UCLIBC_HAS_THREADS) += $(linuxthreads_headers)
 
+objclean-y += libpthread_clean
+headers_clean-y += linuxthreads_headers_clean
 linuxthreads_headers_clean:
-       $(RM) $(top_builddir)include/pthread.h \
-               $(top_builddir)include/semaphore.h \
-               $(top_builddir)include/bits/pthreadtypes.h
+       $(RM) $(addprefix $(top_builddir),$(linuxthreads_headers))
 
 libpthread_clean:
        $(RM) $(libpthread_OUT)/*.{o,os,oS,a}
index e99d4dd..fb2054f 100644 (file)
@@ -33,9 +33,6 @@ endif
 
 lib-a-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.a
 lib-so-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.so
-objclean-y += libthread_db_clean
-headers-$(PTHREADS_DEBUG_SUPPORT) += linuxthreads_db_headers
-headers_clean-y += linuxthreads_db_headers_clean
 
 #ifeq ($(DOMULTI),n)
 ifeq ($(DOPIC),y)
@@ -62,8 +59,16 @@ $(top_builddir)lib/libthread_db.a: $(libthread_db-a-y)
        $(Q)$(RM) $@
        $(do_ar)
 
-linuxthreads_db_headers:
-       $(Q)$(LN) -sf ../$(PTDIR)_db/thread_db.h $(top_builddir)include/
+include/thread_db.h:
+       $(do_ln) ../$(PTDIR)_db/$(@F) $(top_builddir)$@
+
+linuxthreads_db_headers := include/thread_db.h
+$(linuxthreads_db_headers): include/config/linuxthreads/old.h \
+           include/config/linuxthreads/new.h
+headers-$(PTHREADS_DEBUG_SUPPORT) += $(linuxthreads_db_headers)
+
+objclean-y += libthread_db_clean
+headers_clean-y += linuxthreads_db_headers_clean
 
 linuxthreads_db_headers_clean:
        $(RM) $(top_builddir)include/thread_db.h
index b7c8914..f446773 100644 (file)
@@ -81,9 +81,6 @@ libpthread-so-y += $(libpthread_OBJ:.o=.oS)
 
 lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
 lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
-objclean-y += libpthread_clean
-headers-$(UCLIBC_HAS_THREADS) += linuxthreads_headers
-headers_clean-y += linuxthreads_headers_clean
 
 #ifeq ($(DOMULTI),n)
 $(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depend) $(top_builddir)lib/libpthread_nonshared.a
@@ -124,13 +121,17 @@ include/semaphore.h:
        $(do_ln) ../$(PTDIR)/$(@F) $(top_builddir)$@
 include/bits/pthreadtypes.h: | include/bits
        $(do_ln) ../../$(PTDIR)/sysdeps/pthread/bits/$(@F) $(top_builddir)$@
-linuxthreads_headers: include/pthread.h include/semaphore.h \
+
+linuxthreads_headers := include/pthread.h include/semaphore.h \
                        include/bits/pthreadtypes.h
+$(linuxthreads_headers): include/config/linuxthreads/old.h \
+           include/config/linuxthreads/new.h
+headers-$(UCLIBC_HAS_THREADS) += $(linuxthreads_headers)
 
+objclean-y += libpthread_clean
+headers_clean-y += linuxthreads_headers_clean
 linuxthreads_headers_clean:
-       $(RM) $(top_builddir)include/pthread.h \
-               $(top_builddir)include/semaphore.h \
-               $(top_builddir)include/bits/pthreadtypes.h
+       $(RM) $(addprefix $(top_builddir),$(linuxthreads_headers))
 
 libpthread_clean:
        $(RM) $(libpthread_OUT)/{,*/,*/*/,*/*/*/,*/*/*/*/}*.{o,os,oS,a}
index a611c6e..19d8547 100644 (file)
@@ -33,9 +33,6 @@ endif
 
 lib-a-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.a
 lib-so-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.so
-objclean-y += libthread_db_clean
-headers-$(PTHREADS_DEBUG_SUPPORT) += linuxthreads_db_headers
-headers_clean-y += linuxthreads_db_headers_clean
 
 #ifeq ($(DOMULTI),n)
 ifeq ($(DOPIC),y)
@@ -62,8 +59,16 @@ $(top_builddir)lib/libthread_db.a: $(libthread_db-a-y)
        $(Q)$(RM) $@
        $(do_ar)
 
-linuxthreads_db_headers:
-       $(Q)$(LN) -sf ../$(PTDIR)_db/thread_db.h $(top_builddir)include/
+include/thread_db.h:
+       $(do_ln) ../$(PTDIR)_db/$(@F) $(top_builddir)$@
+
+linuxthreads_db_headers := include/thread_db.h
+$(linuxthreads_db_headers): include/config/linuxthreads/old.h \
+           include/config/linuxthreads/new.h
+headers-$(PTHREADS_DEBUG_SUPPORT) += $(linuxthreads_db_headers)
+
+objclean-y += libthread_db_clean
+headers_clean-y += linuxthreads_db_headers_clean
 
 linuxthreads_db_headers_clean:
        $(RM) $(top_builddir)include/thread_db.h