patches/uClibc/0.9.29/110-conditional-sched_affinity.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Oct 16 20:57:44 2012 +0200 (2012-10-16)
changeset 3079 37831a33e07e
parent 108 69407950a2a2
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 diff -ur uClibc-0.9.29/libc/sysdeps/linux/common/sched_getaffinity.c uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_getaffinity.c
     2 --- uClibc-0.9.29/libc/sysdeps/linux/common/sched_getaffinity.c	2007-02-12 16:52:32.000000000 -0600
     3 +++ uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_getaffinity.c	2007-05-09 18:05:09.397411811 -0500
     4 @@ -29,6 +29,7 @@
     5  #include <sys/param.h>
     6  #include <sys/types.h>
     7  
     8 +#ifdef __NR_sched_getaffinity
     9  libc_hidden_proto(memset)
    10  
    11  #define __NR___syscall_sched_getaffinity __NR_sched_getaffinity
    12 @@ -48,5 +49,15 @@
    13  	}
    14  	return res;
    15  }
    16 +#else
    17 +/*
    18 +int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset)
    19 +{
    20 +	__set_errno(ENOSYS);
    21 +	return -1;
    22 +}
    23 +*/
    24  #endif
    25  #endif
    26 +
    27 +#endif
    28 diff -ur uClibc-0.9.29/libc/sysdeps/linux/common/sched_setaffinity.c uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_setaffinity.c
    29 --- uClibc-0.9.29/libc/sysdeps/linux/common/sched_setaffinity.c	2007-02-12 16:52:32.000000000 -0600
    30 +++ uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_setaffinity.c	2007-05-09 18:05:09.397411811 -0500
    31 @@ -31,6 +31,7 @@
    32  #include <sys/types.h>
    33  #include <alloca.h>
    34  
    35 +#ifdef __NR_sched_setaffinity
    36  libc_hidden_proto(getpid)
    37  
    38  #define __NR___syscall_sched_setaffinity __NR_sched_setaffinity
    39 @@ -74,5 +75,14 @@
    40  
    41  	return INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset);
    42  }
    43 +#else
    44 +/*
    45 +int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *cpuset)
    46 +{
    47 +	__set_errno(ENOSYS);
    48 +	return -1;
    49 +}
    50 +*/
    51 +#endif
    52  #endif
    53  #endif