[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Xen Release 4.14.0: Couple of "all warnings being treated as errors" issues and ongoing docs/man issue in make world



Looking to build 4.14.0 on an LFS 10.0 system, so with GCC 10.2.0.

The "all warnings being treated as errors" I'm sure, will have been
picked up by now, but the issue with the man pages is something
I have been seeing for a while now.

The configure options are a little idiosyncratic but I can't see why they
would unmask the issues seen here, but, for completeness

  ./configure --prefix=/usr    \
  --disable-seabios          \
  --disable-qemu-traditional \
  --disable-rombios          \
  --disable-stubdom

after which,

make PYTHON=/usr/bin/python3 world

first generates these four

libxlu_pci.c:32:18: error: 'func' may be used uninitialized in this
function [-Werror=maybe-uninitialized]
   32 |     pcidev->func = func;
      |     ~~~~~~~~~~~~~^~~~~~
libxlu_pci.c:51:29: note: 'func' was declared here
   51 |     unsigned dom, bus, dev, func, vslot = 0;
      |                             ^~~~
libxlu_pci.c:31:17: error: 'dev' may be used uninitialized in this
function [-Werror=maybe-uninitialized]
   31 |     pcidev->dev = dev;
      |     ~~~~~~~~~~~~^~~~~
libxlu_pci.c:51:24: note: 'dev' was declared here
   51 |     unsigned dom, bus, dev, func, vslot = 0;
      |                        ^~~
libxlu_pci.c:30:17: error: 'bus' may be used uninitialized in this
function [-Werror=maybe-uninitialized]
   30 |     pcidev->bus = bus;
      |     ~~~~~~~~~~~~^~~~~
libxlu_pci.c:51:19: note: 'bus' was declared here
   51 |     unsigned dom, bus, dev, func, vslot = 0;
      |                   ^~~
libxlu_pci.c:29:20: error: 'dom' may be used uninitialized in this
function [-Werror=maybe-uninitialized]
   29 |     pcidev->domain = domain;
      |     ~~~~~~~~~~~~~~~^~~~~~~~
libxlu_pci.c:51:14: note: 'dom' was declared here
   51 |     unsigned dom, bus, dev, func, vslot = 0;
      |              ^~~
cc1: all warnings being treated as errors
make[5]: *** [/usr/src/xen/xen-4.14.0/tools/libxl/../../tools/Rules.mk:216:
libxlu_pci.o] Error 1
make[5]: Leaving directory '/usr/src/xen/xen-4.14.0/tools/libxl'

which I "fixed" by adding an

  -Wno-maybe-uninitialized

to the CFLAGS in the tools/libxl Makefile

after which the make world then goes on to fail here

libxl_utils.c: In function 'libxl__prepare_sockaddr_un':
libxl_utils.c:1262:5: error: 'strncpy' specified bound 108 equals
destination size [-Werror=stringop-truncation]
 1262 |     strncpy(un->sun_path, path, sizeof(un->sun_path));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[5]: *** [/usr/src/xen/xen-4.14.0/tools/libxl/../../tools/Rules.mk:216:
libxl_utils.o] Error 1
make[5]: Leaving directory '/usr/src/xen/xen-4.14.0/tools/libxl'
make[4]: *** [/usr/src/xen/xen-4.14.0/tools/../tools/Rules.mk:240:
subdir-install-libxl] Error 2
make[4]: Leaving directory '/usr/src/xen/xen-4.14.0/tools'
make[3]: *** [/usr/src/xen/xen-4.14.0/tools/../tools/Rules.mk:235:
subdirs-install] Error 2
make[3]: Leaving directory '/usr/src/xen/xen-4.14.0/tools'
make[2]: *** [Makefile:72: install] Error 2
make[2]: Leaving directory '/usr/src/xen/xen-4.14.0/tools'
make[1]: *** [Makefile:134: install-tools] Error 2
make[1]: Leaving directory '/usr/src/xen/xen-4.14.0'
make: *** [Makefile:170: world] Error 2

which I fixed by setting

                -Wno-maybe-uninitialized -Wno-stringop-truncation

as the extra CFLAGS in the modified tools/libxl Makefile

After that point, the build gets as far as

make[2]: Leaving directory '/usr/src/xen/xen-4.14.0/tools'
make -C docs install
make[2]: Entering directory '/usr/src/xen/xen-4.14.0/docs'
/usr/bin/pod2man --release=4.14.0 --name=xenhypfs -s 1 -c "Xen"
man/xenhypfs.1.pod man1/xenhypfs.1
Can't write-open man1/xenhypfs.1: No such file or directory at
/usr/bin/pod2man line 69.
make[2]: *** [Makefile:176: man1/xenhypfs.1] Error 2
make[2]: Leaving directory '/usr/src/xen/xen-4.14.0/docs'
make[1]: *** [Makefile:153: install-docs] Error 2
make[1]: Leaving directory '/usr/src/xen/xen-4.14.0'
make: *** [Makefile:170: world] Error 2

and this is the interesting bit.

Firstly, nothing that the make ins being run from the top-level
docs directory, looking at

pkg xen:xen-4.14.0> ls docs/
INDEX            configure.ac       man/
Makefile         designs/           misc/
README.colo      features/          parse-support-md*
README.remus     figs/              process/
README.source    gen-html-index     specs/
admin-guide/     glossary.rst       support-matrix-generate*
conf.py          guest-guide/       xen-headers*
config.status*   hypervisor-guide/
configure*       index.rst


shows that there isn't a man1 subdir within the source tree?

Furthermore, looking at

pkg xen:xen-4.14.0> ls docs/man/
xen-pci-device-reservations.7.pod  xentop.1.pod
xen-pv-channel.7.pod               xentrace.8.pod
xen-tscmode.7.pod                  xentrace_format.1.pod
xen-vbd-interface.7.pandoc         xl-disk-configuration.5.pod
xen-vtpm.7.pod                     xl-network-configuration.5.pod
xen-vtpmmgr.7.pod                  xl-numa-placement.7.pod
xenhypfs.1.pod                     xl.1.pod
xenstore-chmod.1.pod               xl.1.pod.in
xenstore-ls.1.pod                  xl.cfg.5.pod
xenstore-read.1.pod                xl.cfg.5.pod.in
xenstore-write.1.pod               xl.conf.5.pod
xenstore.1.pod                     xlcpupool.cfg.5.pod

suggests that all of the man pages POS files, that one might
expect, given the make output above, to be in man1, man5,
man7 and man8 subdirs, are all in the one "man" directory.

I have seen this "docs/man? failure" with 'make world' in a few past
builds and have found, in the past, that splitting out the 'make world'
into these two parts, with a creation of the seemingly expected dirs
in between, vis:

make clean

mkdir docs/man1 docs/man5 docs/man7 docs/man8

make  dist

has then seen the build complete.

I am thinking though, that the 'make world' should just work,
out of the tarball ?

So is there something missing that should be re-arranging the
man page sources into seperate manN subirs, or should the
pod2man command be given different arguments?

Hoping that info is of some use to you,
Kevin



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.