patches/uClibc/0.9.32/130-nptl-pthread-Correct-path-for-machine-specific-pt-initfini.c.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Oct 16 20:57:44 2012 +0200 (2012-10-16)
changeset 3079 37831a33e07e
permissions -rw-r--r--
kernel/linux: fix using custom location

Currently, extract and patch are skipped as thus:
- using a custom directory of pre-installed headers
- a correctly named directory already exists

Otherwise, extract and patch are done.

The current second condition is wrong, because it allows the following
sequence to happen:
- a non-custom kernel is used
- a previous build only partially extracted the non-custom sources
- that p[revious build broke during extraction (eg. incomplete tarball...)
- a subsequent build will find a properly named directory, and will
thus skip extract and patch, which is wrong

Fix that by following the conditions in this table:

Type | Extract | Patch
----------------------+---------+-------
Pre-installed headers | N | N
custom directory | N | N
custom tarball | Y | N
mainstream tarball | Y | Y

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: David Holsgrove <david.holsgrove@xilinx.com>
     1 commit ebe6c38d7e60e8a43d8b926c17a561a5a3e06a22
     2 Author: Khem Raj <raj.khem@gmail.com>
     3 Date:   Mon Jun 13 17:13:52 2011 -0700
     4 
     5     nptl/pthread: Correct path for machine specific pt-initfini.c
     6     
     7     Signed-off-by: Khem Raj <raj.khem@gmail.com>
     8     Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
     9 
    10 diff --git a/libpthread/nptl/sysdeps/pthread/Makefile.in b/libpthread/nptl/sysdeps/pthread/Makefile.in
    11 index 398eaea..ca84642 100644
    12 --- a/libpthread/nptl/sysdeps/pthread/Makefile.in
    13 +++ b/libpthread/nptl/sysdeps/pthread/Makefile.in
    14 @@ -75,8 +75,8 @@ CFLAGS-pt-initfini.c = -S -g0 $(PICFLAG) -fno-inline-functions	\
    15  			$(patsubst -f%,-fno-%,$(call check_gcc,-fexceptions,))
    16  
    17  #ASFLAGS += $(PICFLAG) -I$(top_srcdir)include -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
    18 -ifneq ($(wildcard $(libpthread_DIR)/sysdeps/linux/$(TARGET_ARCH)/pt-initfini.c),)
    19 -PTHREAD_INITFINI := $(libpthread_DIR)/sysdeps/linux/$(TARGET_ARCH)/pt-initfini.c
    20 +ifneq ($(wildcard $(libpthread_pthread_DIR)/../unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c),)
    21 +PTHREAD_INITFINI := $(libpthread_pthread_DIR)/../unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c
    22  else
    23  PTHREAD_INITFINI := $(libpthread_pthread_DIR)/pt-initfini.c
    24  endif