Re: How building sys/boot

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Wed, 25 Jan 2017 19:46:04 +0100
On 25 Jan 2017, at 14:58, Ilya A. Arkhipov <rum1cro_at_yandex.ru> wrote:
> 
> Somebody can explain to me how build sys/boot?
> Right now I doing:
> make -C sys/boot obj depend all
> And I get:
> cc  -O2 -pipe   -DSKEIN_LOOP=111 -fPIC -I/usr/src/sys/boot/efi/loader -I/usr/src/sys/boot/efi/loader/arch/amd64 -I/usr/src/sys/boot/efi/loader/../include -I/usr/src/sys/boot/efi/loader/../include/amd64 -I/usr/src/sys/boot/efi/loader/../../../contrib/dev/acpica/include -I/usr/src/sys/boot/efi/loader/../../.. -I/usr/src/sys/boot/efi/loader/../../i386/libi386 -I/usr/src/sys/boot/efi/loader/../../zfs -I/usr/src/sys/boot/efi/loader/../../../cddl/boot/zfs -I/usr/src/sys/boot/efi/loader/../../../crypto/skein -DEFI_ZFS_BOOT -DNO_PCI -DEFI -DSMBIOS_SERIAL_NUMBERS -DBOOT_FORTH -I/usr/src/sys/boot/efi/loader/../../ficl -I/usr/src/sys/boot/efi/loader/../../ficl/amd64 -DLOADER_DISK_SUPPORT -DLOADER_GPT_SUPPORT -DLOADER_MBR_SUPPORT -fPIC -I/usr/src/sys/boot/ficl -I/usr/src/sys/boot/ficl/amd64  -I/usr/src/sys/boot/ficl/../common -I/usr/src/sys/boot/efi/loader/../../common -ffreestanding -Wformat -msoft-float -mno-mmx -mno-sse -mno-avx -fshort-wchar -mno-red-zone -mno-aes -g -MD  -MF.depend.zfs.o -
> MTzfs.o -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef -Wno-sign-compare -Wno-array-bounds -Wno-missing-prototypes -Qunused-arguments  -c /usr/src/sys/boot/efi/loader/../../zfs/zfs.c -o zfs.o
> /usr/src/sys/boot/efi/loader/../../zfs/zfs.c:602:17: error: incompatible pointer types initializing 'int (*)(void *, int, daddr_t, size_t, size_t, char *, size_t *)' (aka 'int
>      (*)(void *, int, long, unsigned long, unsigned long, char *, unsigned long *)') with an expression of type 'int (void *, int, daddr_t, size_t, char *, size_t *)' (aka 'int
>      (void *, int, long, unsigned long, char *, unsigned long *)') [-Werror,-Wincompatible-pointer-types]
>        .dv_strategy = zfs_dev_strategy,
>                       ^~~~~~~~~~~~~~~~
> /usr/src/sys/boot/efi/loader/../../zfs/zfs.c:606:14: error: incompatible pointer types initializing 'void (*)(int)' with an expression of type 'int (int)'
>      [-Werror,-Wincompatible-pointer-types]
>        .dv_print = zfs_dev_print,
>                    ^~~~~~~~~~~~~
> 2 errors generated.

This is because of r310850, which changed the dv_strategy member of
struct devsw in stand.h [1].  You need to update your libstand before
you can build sys/boot, e.g:

cd /usr/src/lib/libstand
make obj
make depend
make
sudo make install

Then try building sys/boot again.  Or just run a regular buildworld. :)

-Dimitry

[1] https://svnweb.freebsd.org/base/head/lib/libstand/stand.h?r1=310850&r2=310849&pathrev=310850


Received on Wed Jan 25 2017 - 17:46:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:09 UTC