From: wolf Date: Sun, 18 Jan 2004 00:21:15 +0000 (+0000) Subject: - added kernel headers that valgrind requires X-Git-Tag: auto/ac/valgrind-2_1_0-1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fvalgrind.git;a=commitdiff_plain;h=9e0d5127ac1ef05150b072a6707f9185d95370fc;ds=sidebyside - added kernel headers that valgrind requires Changed files: valgrind-kernel-headers.patch -> 1.1 valgrind.spec -> 1.33 --- diff --git a/valgrind-kernel-headers.patch b/valgrind-kernel-headers.patch new file mode 100644 index 0000000..fddcff5 --- /dev/null +++ b/valgrind-kernel-headers.patch @@ -0,0 +1,215 @@ +diff -ruN valgrind-2.1.0./include/linux/compiler-gcc2.h valgrind-2.1.0/include/linux/compiler-gcc2.h +--- valgrind-2.1.0./include/linux/compiler-gcc2.h 1970-01-01 01:00:00.000000000 +0100 ++++ valgrind-2.1.0/include/linux/compiler-gcc2.h 2004-01-09 08:00:12.000000000 +0100 +@@ -0,0 +1,23 @@ ++/* Never include this file directly. Include instead. */ ++ ++/* These definitions are for GCC v2.x. */ ++ ++/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented ++ a mechanism by which the user can annotate likely branch directions and ++ expect the blocks to be reordered appropriately. Define __builtin_expect ++ to nothing for earlier compilers. */ ++#include ++ ++#if __GNUC_MINOR__ < 96 ++# define __builtin_expect(x, expected_value) (x) ++#endif ++ ++#define __attribute_used__ __attribute__((__unused__)) ++ ++/* ++ * The attribute `pure' is not implemented in GCC versions earlier ++ * than 2.96. ++ */ ++#if __GNUC_MINOR__ >= 96 ++# define __attribute_pure__ __attribute__((pure)) ++#endif +diff -ruN valgrind-2.1.0./include/linux/compiler-gcc3.h valgrind-2.1.0/include/linux/compiler-gcc3.h +--- valgrind-2.1.0./include/linux/compiler-gcc3.h 1970-01-01 01:00:00.000000000 +0100 ++++ valgrind-2.1.0/include/linux/compiler-gcc3.h 2004-01-09 07:59:03.000000000 +0100 +@@ -0,0 +1,22 @@ ++/* Never include this file directly. Include instead. */ ++ ++/* These definitions are for GCC v3.x. */ ++#include ++ ++#if __GNUC_MINOR__ >= 1 ++# define inline __inline__ __attribute__((always_inline)) ++# define __inline__ __inline__ __attribute__((always_inline)) ++# define __inline __inline__ __attribute__((always_inline)) ++#endif ++ ++#if __GNUC_MINOR__ > 0 ++# define __deprecated __attribute__((deprecated)) ++#endif ++ ++#if __GNUC_MINOR__ >= 3 ++# define __attribute_used__ __attribute__((__used__)) ++#else ++# define __attribute_used__ __attribute__((__unused__)) ++#endif ++ ++#define __attribute_pure__ __attribute__((pure)) +diff -ruN valgrind-2.1.0./include/linux/compiler-gcc.h valgrind-2.1.0/include/linux/compiler-gcc.h +--- valgrind-2.1.0./include/linux/compiler-gcc.h 1970-01-01 01:00:00.000000000 +0100 ++++ valgrind-2.1.0/include/linux/compiler-gcc.h 2004-01-09 08:00:05.000000000 +0100 +@@ -0,0 +1,17 @@ ++/* Never include this file directly. Include instead. */ ++ ++/* ++ * Common definitions for all gcc versions go here. ++ */ ++ ++ ++/* Optimization barrier */ ++/* The "volatile" is due to gcc bugs */ ++#define barrier() __asm__ __volatile__("": : :"memory") ++ ++/* This macro obfuscates arithmetic on a variable address so that gcc ++ shouldn't recognize the original var, and make assumptions about it */ ++#define RELOC_HIDE(ptr, off) \ ++ ({ unsigned long __ptr; \ ++ __asm__ ("" : "=g"(__ptr) : "0"(ptr)); \ ++ (typeof(ptr)) (__ptr + (off)); }) +diff -ruN valgrind-2.1.0./include/linux/compiler-gcc+.h valgrind-2.1.0/include/linux/compiler-gcc+.h +--- valgrind-2.1.0./include/linux/compiler-gcc+.h 1970-01-01 01:00:00.000000000 +0100 ++++ valgrind-2.1.0/include/linux/compiler-gcc+.h 2004-01-09 08:00:04.000000000 +0100 +@@ -0,0 +1,14 @@ ++/* Never include this file directly. Include instead. */ ++ ++/* ++ * These definitions are for Ueber-GCC: always newer than the latest ++ * version and hence sporting everything plus a kitchen-sink. ++ */ ++#include ++ ++#define inline __inline__ __attribute__((always_inline)) ++#define __inline__ __inline__ __attribute__((always_inline)) ++#define __inline __inline__ __attribute__((always_inline)) ++#define __deprecated __attribute__((deprecated)) ++#define __attribute_used__ __attribute__((__used__)) ++#define __attribute_pure__ __attribute__((pure)) +diff -ruN valgrind-2.1.0./include/linux/compiler.h valgrind-2.1.0/include/linux/compiler.h +--- valgrind-2.1.0./include/linux/compiler.h 1970-01-01 01:00:00.000000000 +0100 ++++ valgrind-2.1.0/include/linux/compiler.h 2004-01-09 07:59:45.000000000 +0100 +@@ -0,0 +1,91 @@ ++#ifndef __LINUX_COMPILER_H ++#define __LINUX_COMPILER_H ++ ++#ifdef __CHECKER__ ++# define __user __attribute__((noderef, address_space(1))) ++# define __kernel /* default address space */ ++#else ++# define __user ++# define __kernel ++#endif ++ ++#ifndef __ASSEMBLY__ ++#if __GNUC__ > 3 ++# include /* catch-all for GCC 4, 5, etc. */ ++#elif __GNUC__ == 3 ++# include ++#elif __GNUC__ == 2 ++# include ++#else ++# error Sorry, your compiler is too old/not recognized. ++#endif ++#endif ++ ++/* Intel compiler defines __GNUC__. So we will overwrite implementations ++ * coming from above header files here ++ */ ++#ifdef __INTEL_COMPILER ++# include ++#endif ++ ++/* ++ * Generic compiler-dependent macros required for kernel ++ * build go below this comment. Actual compiler/compiler version ++ * specific implementations come from the above header files ++ */ ++ ++#define likely(x) __builtin_expect(!!(x), 1) ++#define unlikely(x) __builtin_expect(!!(x), 0) ++ ++/* ++ * Allow us to mark functions as 'deprecated' and have gcc emit a nice ++ * warning for each use, in hopes of speeding the functions removal. ++ * Usage is: ++ * int __deprecated foo(void) ++ */ ++#ifndef __deprecated ++# define __deprecated /* unimplemented */ ++#endif ++ ++/* ++ * Allow us to avoid 'defined but not used' warnings on functions and data, ++ * as well as force them to be emitted to the assembly file. ++ * ++ * As of gcc 3.3, static functions that are not marked with attribute((used)) ++ * may be elided from the assembly file. As of gcc 3.3, static data not so ++ * marked will not be elided, but this may change in a future gcc version. ++ * ++ * In prior versions of gcc, such functions and data would be emitted, but ++ * would be warned about except with attribute((unused)). ++ */ ++#ifndef __attribute_used__ ++# define __attribute_used__ /* unimplemented */ ++#endif ++ ++/* ++ * From the GCC manual: ++ * ++ * Many functions have no effects except the return value and their ++ * return value depends only on the parameters and/or global ++ * variables. Such a function can be subject to common subexpression ++ * elimination and loop optimization just as an arithmetic operator ++ * would be. ++ * [...] ++ */ ++#ifndef __attribute_pure__ ++# define __attribute_pure__ /* unimplemented */ ++#endif ++ ++/* Optimization barrier */ ++#ifndef barrier ++# define barrier() __memory_barrier() ++#endif ++ ++#ifndef RELOC_HIDE ++# define RELOC_HIDE(ptr, off) \ ++ ({ unsigned long __ptr; \ ++ __ptr = (unsigned long) (ptr); \ ++ (typeof(ptr)) (__ptr + (off)); }) ++#endif ++ ++#endif /* __LINUX_COMPILER_H */ +diff -ruN valgrind-2.1.0./include/linux/compiler-intel.h valgrind-2.1.0/include/linux/compiler-intel.h +--- valgrind-2.1.0./include/linux/compiler-intel.h 1970-01-01 01:00:00.000000000 +0100 ++++ valgrind-2.1.0/include/linux/compiler-intel.h 2004-01-09 07:59:26.000000000 +0100 +@@ -0,0 +1,24 @@ ++/* Never include this file directly. Include instead. */ ++ ++#ifdef __ECC ++ ++/* Some compiler specific definitions are overwritten here ++ * for Intel ECC compiler ++ */ ++ ++#include ++ ++/* Intel ECC compiler doesn't support gcc specific asm stmts. ++ * It uses intrinsics to do the equivalent things. ++ */ ++#undef barrier ++#undef RELOC_HIDE ++ ++#define barrier() __memory_barrier() ++ ++#define RELOC_HIDE(ptr, off) \ ++ ({ unsigned long __ptr; \ ++ __ptr = (unsigned long) (ptr); \ ++ (typeof(ptr)) (__ptr + (off)); }) ++ ++#endif diff --git a/valgrind.spec b/valgrind.spec index d421e88..82cf8d3 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -10,6 +10,7 @@ Source0: http://developer.kde.org/~sewardj/valgrind-%{version}.tar.bz2 # Source0-md5: 3e4056dd45163a5f555a23ced2f95191 #Source0: %{name}-%{snap}.tar.bz2 Patch0: %{name}-sockios.patch +Patch1: %{name}-kernel-headers.patch URL: http://valgrind.kde.org/ BuildRequires: autoconf BuildRequires: automake @@ -58,6 +59,7 @@ Standardowo dostarczone jest kilka u %prep %setup -q %patch0 -p1 +%patch1 -p1 %build %{__aclocal}