patches/strace/4.5.17/190-dirent-include.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 --- strace-orig/file.c	2008/05/20 04:56:18	1.92
     2 +++ strace/file.c	2008/08/01 01:13:10	1.93
     3 @@ -28,21 +28,22 @@
     4   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     5   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     6   *
     7 - *	$Id: file.c,v 1.92 2008/05/20 04:56:18 roland Exp $
     8 + *	$Id: file.c,v 1.93 2008/08/01 01:13:10 roland Exp $
     9   */
    10  
    11  #include "defs.h"
    12  
    13  #include <dirent.h>
    14 +
    15  #ifdef LINUX
    16 -#define dirent kernel_dirent
    17 -#define dirent64 kernel_dirent64
    18 -#include <linux/types.h>
    19 -#include <linux/dirent.h>
    20 -#undef dirent
    21 -#undef dirent64
    22 +struct kernel_dirent {
    23 +	unsigned long   d_ino;
    24 +	unsigned long   d_off;
    25 +	unsigned short  d_reclen;
    26 +	char            d_name[1];
    27 +};
    28  #else
    29 -#define kernel_dirent dirent
    30 +# define kernel_dirent dirent
    31  #endif
    32  
    33  #ifdef LINUX