[dm-devel] [PATCH] multipath-tools: replace 64bit archs macros by __LP64__

Bart Van Assche Bart.VanAssche at sandisk.com
Fri May 19 03:31:44 UTC 2017


On Fri, 2017-05-19 at 03:38 +0200, Xose Vazquez Perez wrote:
> Rationale: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
> 
> __LP64__
> _LP64
>  These macros are defined, with value 1, if (and only if) the compilation is
>  for a target where long int and pointer both use 64-bits and int uses 32-bit.
> 
> 
> Cc: Christophe Varoqui <christophe.varoqui at opensvc.com>
> Cc: device-mapper development <dm-devel at redhat.com>
> Signed-off-by: Xose Vazquez Perez <xose.vazquez at gmail.com>
> ---
>  kpartx/lopart.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/kpartx/lopart.c b/kpartx/lopart.c
> index 4e6dab4..3c16eb0 100644
> --- a/kpartx/lopart.c
> +++ b/kpartx/lopart.c
> @@ -38,11 +38,10 @@
>  #define LOOP_CTL_GET_FREE       0x4C82
>  #endif
>  
> -#if !defined (__alpha__) && !defined (__ia64__) && !defined (__x86_64__) \
> -	&& !defined (__s390x__)
> -#define int2ptr(x)	((void *) ((int) x))
> -#else
> +#if defined (__LP64__)
>  #define int2ptr(x)	((void *) ((long) x))
> +#else
> +#define int2ptr(x)	((void *) ((int) x))
>  #endif
>  
>  static char *

Hello Xose,

Since there is only one user of int2ptr(), please remove the macro definitions
and use the following construct: (void *)(uintptr_t)(...).

Thanks,

Bart.




More information about the dm-devel mailing list