[GSOC] Building strace mpers 32

Dmitry V. Levin ldv at altlinux.org
Sun Mar 21 23:51:50 UTC 2021


On Sun, Mar 21, 2021 at 09:29:54AM -0700, deborah brouwer wrote:
> On Sun, Mar 21, 2021 at 01:43:32PM +0300, Dmitry V. Levin wrote:
> > Hi,
> > 
> > On Sat, Mar 20, 2021 at 10:11:44PM -0700, deborah brouwer wrote:
> > > Hi!
> > > My name is Deborah and I'm studying computer science at Thompson Rivers University in British Columbia, Canada.  I'm interested in GSOC.
> > > 
> > > Can you please help me build strace with mpers enabled?  After cloning the repository and running ./bootstrap and ./configure, make gives the error:
> > > 
> > > make
> > > echo 5.11.0.172.97bbe > .version-t && mv .version-t .version
> > > make  all-recursive
> > > make[1]: Entering directory '~/strace'
> > > Making all in bundled
> > > make[2]: Entering directory '~/strace/bundled'
> > > make[2]: Nothing to be done for 'all'.
> > > make[2]: Leaving directory '~/strace/bundled'
> > > Making all in src
> > > make[2]: Entering directory '~/strace/src'
> > > ...
> > > for f in block.c ...; do \
> > > 	D="" \
> > > 	READELF="readelf" \
> > > 	CC="gcc" \
> > > 	CFLAGS="-DHAVE_CONFIG_H   -I./linux/x86_64 -I./linux/x86_64 -I./linux/generic -I./linux/generic -I. -I. -I../bundled/linux/arch/x86/include/uapi -I../bundled/linux/include/uapi -DIN_STRACE=1     -I./bundled/linux/arch/x86/include/uapi -I./bundled/linux/include/uapi -DMPERS_IS_m32" \
> > > 	CPP="gcc -E" \
> > > 	CPPFLAGS="-DHAVE_CONFIG_H   -I./linux/x86_64 -I./linux/x86_64 -I./linux/generic -I./linux/generic -I. -I. -I../bundled/linux/arch/x86/include/uapi -I../bundled/linux/include/uapi -DIN_STRACE=1     -I./bundled/linux/arch/x86/include/uapi -I./bundled/linux/include/uapi -DIN_MPERS -DMPERS_IS_m32" \
> > > 	./mpers.sh m32 "-m32" $f || exit; \
> > > done
> > > In file included from /usr/include/bits/errno.h:26:0,
> > >                  from /usr/include/errno.h:28,
> > >                  from ./defs.h:32,
> > >                  from mpers-m32/struct_blk_user_trace_setup.c:10:
> > > /usr/include/linux/errno.h:1:10: fatal error: asm/errno.h: No such file or directory
> > >  #include <asm/errno.h>
> > >           ^~~~~~~~~~~~~
> > > compilation terminated.
> > 
> > This is odd.  Does /usr/include/asm/errno.h exist in your system?
> > 
> No, my system does not have a /usr/include/asm/ directory, but I did try
> to create one and put errno.h in it from my /usr/include/asm-generic
> directory.  It led to the same problem.

It's very unusual for an operating system to provide system header
/usr/include/linux/errno.h that doesn't compile because it uses
/usr/include/asm/errno.h that doesn't exist.

Since your operating system is glibc-based, it most likely consists of
packages, and some package that makes /usr/include/linux/errno.h usable
seems to be missing.

Anyway, I wonder how did you manage to build strace without a usable
<linux/errno.h>.  Could it be that your system's <linux/errno.h> is not
/usr/include/linux/errno.h?


-- 
ldv


More information about the Strace-devel mailing list