Re: How building sys/boot

From: Warner Losh <imp_at_bsdimp.com>
Date: Thu, 26 Jan 2017 17:34:11 -0700
On Wed, Jan 25, 2017 at 5:37 PM, Ilya A. Arkhipov <rum1cro_at_yandex.ru> wrote:
> Many thanks Dimitry for full definition
>
> 25.01.2017, 21:46, "Dimitry Andric" <dim_at_freebsd.org>:
>> 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
>

Alternatively, you can do a make buildworld and then a make buildenv
and cd to sys/boot if you don't want to scrag the installed system.

Warner
Received on Thu Jan 26 2017 - 23:34:12 UTC

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