diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-10-17 14:05:53 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-10-17 14:05:53 +0000 |
commit | dce2384770a6e791312cb3330233d733ed1b0949 (patch) | |
tree | 4d928c55ada65a18f58dc4c5d0a3fa2037839e69 | |
parent | f209f0ec29d54af4ed5356e7828d003982a9e7ef (diff) |
- fix toggling thread implementation.
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)),)
-rw-r--r-- | Makefile.in | 5 | ||||
-rw-r--r-- | extra/Configs/Config.in | 4 | ||||
-rw-r--r-- | libpthread/linuxthreads.old/Makefile.in | 15 | ||||
-rw-r--r-- | libpthread/linuxthreads.old_db/Makefile.in | 15 | ||||
-rw-r--r-- | libpthread/linuxthreads/Makefile.in | 15 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/Makefile.in | 15 |
6 files changed, 45 insertions, 24 deletions
diff --git a/Makefile.in b/Makefile.in index 5b666b891..a1dc54ca4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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 diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 8ea6eeb01..858e05bd6 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -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 diff --git a/libpthread/linuxthreads.old/Makefile.in b/libpthread/linuxthreads.old/Makefile.in index fe29f2cd1..cae839360 100644 --- a/libpthread/linuxthreads.old/Makefile.in +++ b/libpthread/linuxthreads.old/Makefile.in @@ -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} diff --git a/libpthread/linuxthreads.old_db/Makefile.in b/libpthread/linuxthreads.old_db/Makefile.in index e99d4ddfc..fb2054f48 100644 --- a/libpthread/linuxthreads.old_db/Makefile.in +++ b/libpthread/linuxthreads.old_db/Makefile.in @@ -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 diff --git a/libpthread/linuxthreads/Makefile.in b/libpthread/linuxthreads/Makefile.in index b7c8914f5..f44677372 100644 --- a/libpthread/linuxthreads/Makefile.in +++ b/libpthread/linuxthreads/Makefile.in @@ -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} diff --git a/libpthread/linuxthreads_db/Makefile.in b/libpthread/linuxthreads_db/Makefile.in index a611c6ee0..19d854714 100644 --- a/libpthread/linuxthreads_db/Makefile.in +++ b/libpthread/linuxthreads_db/Makefile.in @@ -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 |