[PATCH 2/2] Move SUPPORTED_PERSONALITIES to separate file

Dmitry V. Levin ldv at altlinux.org
Tue Aug 22 16:46:32 UTC 2017


On Tue, Aug 22, 2017 at 07:40:49PM +0300, Edgar Kaziakhmedov wrote:
> On Tue, 22 Aug 2017 19:32:36 +0300
> "Dmitry V. Levin" <ldv at altlinux.org> wrote:
> 
> > On Tue, Aug 22, 2017 at 03:35:03PM +0300, Edgar Kaziakhmedov wrote:
> > > Since the defs.h contains unrelated set of functions which are
> > > redundant(and parhaps conflicting) for other binaries included in
> > > the strace package, part with quantifying the
> > > SUPPORTED_PERSONALITIES definition should be in separate file.
> > > 
> > > * defs.h: Include "supported_personalities.h".
> > > (SUPPORTED_PERSONALITIES): Move ...
> > > * supported_personalities.h: ... to the new file.
> > > * Makefile.am (strace_SOURCES): Add it.
> > > 
> > > Signed-off-by: Edgar Kaziakhmedov <edgar.kaziakhmedov at virtuozzo.com>
> > > ---
> > >  Makefile.am               |  1 +
> > >  defs.h                    | 19 ++---------------
> > >  supported_personalities.h | 54
> > > +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 57
> > > insertions(+), 17 deletions(-) create mode 100644
> > > supported_personalities.h
> > > 
> > > diff --git a/Makefile.am b/Makefile.am
> > > index 53115cd5..fefd3d29 100644
> > > --- a/Makefile.am
> > > +++ b/Makefile.am
> > > @@ -286,6 +286,7 @@ strace_SOURCES =	\
> > >  	strace.c	\
> > >  	string_to_uint.h \
> > >  	string_to_uint.c \
> > > +	supported_personalities.h \
> > >  	swapon.c	\
> > >  	syscall.c	\
> > >  	sysctl.c	\
> > > diff --git a/defs.h b/defs.h
> > > index dddad0c9..f54d9251 100644
> > > --- a/defs.h
> > > +++ b/defs.h
> > > @@ -59,6 +59,7 @@
> > >  #include "macros.h"
> > >  #include "mpers_type.h"
> > >  #include "string_to_uint.h"
> > > +#include "supported_personalities.h"
> > >  #include "sysent.h"
> > >  #include "xmalloc.h"
> > >  
> > > @@ -137,25 +138,9 @@ extern char *stpcpy(char *dst, const char
> > > *src); # define ERESTART_RESTARTBLOCK 516
> > >  #endif
> > >  
> > > -#if defined X86_64
> > > -# define SUPPORTED_PERSONALITIES 3
> > > +#if SUPPORTED_PERSONALITIES == 3
> > >  # define PERSONALITY2_WORDSIZE  4
> > >  # define PERSONALITY2_KLONGSIZE PERSONALITY0_KLONGSIZE
> > > -#elif defined AARCH64 \
> > > -   || defined POWERPC64 \
> > > -   || defined RISCV \
> > > -   || defined SPARC64 \
> > > -   || defined TILE \
> > > -   || defined X32
> > > -# define SUPPORTED_PERSONALITIES 2
> > > -#else
> > > -# define SUPPORTED_PERSONALITIES 1
> > > -#endif
> > > -
> > > -#if defined TILE && defined __tilepro__
> > > -# define DEFAULT_PERSONALITY 1
> > > -#else
> > > -# define DEFAULT_PERSONALITY 0
> > >  #endif
> > >  
> > >  #define PERSONALITY0_WORDSIZE  SIZEOF_LONG
> > > diff --git a/supported_personalities.h b/supported_personalities.h
> > > new file mode 100644
> > > index 00000000..0c720215
> > > --- /dev/null
> > > +++ b/supported_personalities.h
> > > @@ -0,0 +1,54 @@
> > > +/*
> > > + * Copyright (c) 2001-2017 The strace developers.
> > > + * All rights reserved.
> > > + *
> > > + * Redistribution and use in source and binary forms, with or
> > > without
> > > + * modification, are permitted provided that the following
> > > conditions
> > > + * are met:
> > > + * 1. Redistributions of source code must retain the above
> > > copyright
> > > + *    notice, this list of conditions and the following disclaimer.
> > > + * 2. Redistributions in binary form must reproduce the above
> > > copyright
> > > + *    notice, this list of conditions and the following disclaimer
> > > in the
> > > + *    documentation and/or other materials provided with the
> > > distribution.
> > > + * 3. The name of the author may not be used to endorse or promote
> > > products
> > > + *    derived from this software without specific prior written
> > > permission.
> > > + *
> > > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
> > > EXPRESS OR
> > > + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> > > WARRANTIES
> > > + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > > DISCLAIMED.
> > > + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
> > > + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> > > (INCLUDING, BUT
> > > + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
> > > LOSS OF USE,
> > > + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> > > ON ANY
> > > + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
> > > TORT
> > > + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
> > > THE USE OF
> > > + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
> > > DAMAGE.
> > > + */
> > > +
> > > +#ifndef STRACE_SUPPORTED_PERSONALITIES
> > > +#define STRACE_SUPPORTED_PERSONALITIES  
> > 
> > STRACE_SUPPORTED_PERSONALITIES_H?
> > 
> > > +
> > > +#ifdef HAVE_CONFIG_H
> > > +# include "config.h"
> > > +#endif  
> > 
> > Is it needed in this header file?
> > 
> > 
> Yes, to detect X86_64 definituon, isn't it?

config.h usually doesn't have include guards, let's say that all users of
this new header have to include config.h first, as they already have to do
anyway.


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20170822/47fce593/attachment.bin>


More information about the Strace-devel mailing list