Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Jan 2021 23:53:47 +0100
From:      Mateusz Guzik <mjguzik@gmail.com>
To:        Gordon Bergling <gbe@freebsd.org>
Cc:        Toomas Soome <tsoome@me.com>, Toomas Soome <tsoome@freebsd.org>, src-committers@freebsd.org,  dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: 4f9139397e70 - main - loader: fix uboot build with gfx_fb
Message-ID:  <CAGudoHGfgO0WS9NiMZ%2BCD%2BB46ZQvzT9%2BoEjSRjSHZiCgC4=17A@mail.gmail.com>
In-Reply-To: <X/JFAtVpFbuEkp/8@lion.0xfce3.net>
References:  <202101031922.103JMjCW098991@gitrepo.freebsd.org> <CAGudoHGgBd1MyK1awbdvm5M25ewBC3JZp4yrb4Jy0QnL4MGaGg@mail.gmail.com> <5A01B97F-5EEB-4E8D-94E4-6901F40E37AC@me.com> <X/I%2B30QilBtJGho3@lion.0xfce3.net> <98F70FF0-2842-4517-9771-EBC0C6D181BC@me.com> <X/JFAtVpFbuEkp/8@lion.0xfce3.net>

next in thread | previous in thread | raw e-mail | index | archive | help
This may be a side-effect of https://reviews.freebsd.org/D27629

Regardless, universe13a.freebsd.org and/or universe13b.freebsd.org can
be used to compile in the meantime.

On 1/3/21, Gordon Bergling <gbe@freebsd.org> wrote:
> On Mon, Jan 04, 2021 at 12:09:32AM +0200, Toomas Soome wrote:
>> > On 4. Jan 2021, at 00:02, Gordon Bergling <gbe@freebsd.org> wrote:
>> > these errors are maybe related to an recent update
>> > to LLVM (llvmorg-11.0.1-rc2-0-g43ff75f2c3f).
>>
>> maybe, but I actually suspect the mac os big sur is there to blame, this
>> issue does affect qemu a lot and vmware fusion some.. the error below is
>> from vmware fusion vm.
>>
>> thanks,
>> toomas
>
> I am not sure how a VESA FB change affects virtualized environments, but =
I
> have tested
> a FreeBSD revision, which includes your changes against a RPi4b system an=
d
> against
> a Hyper-V based virtual machine and I haven't seen any problems.
>
> --Gordon
>
>> > On Sun, Jan 03, 2021 at 11:36:32PM +0200, Toomas Soome via
>> > dev-commits-src-main wrote:
>> >> Yes, I=E2=80=99m preparing patches there too, assuming i get past err=
ors like
>> >> this:
>> >>
>> >> c++  -O2 -pipe -fno-common
>> >> -I/usr/obj/usr/src/arm.armv6/tmp/obj-tools/lib/clang/libllvm
>> >> -I/usr/src/contrib/llvm-project/llvm/lib/Target/ARM
>> >> -I/usr/src/lib/clang/include
>> >> -I/usr/src/contrib/llvm-project/llvm/include -D__STDC_CONSTANT_MACROS
>> >> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_VCS_VERSION_INC
>> >> -DLLVM_DEFAULT_TARGET_TRIPLE=3D\"armv6-unknown-freebsd13.0-gnueabihf\=
"
>> >> -DLLVM_HOST_TRIPLE=3D\"x86_64-unknown-freebsd13.0\"
>> >> -DDEFAULT_SYSROOT=3D\"/usr/obj/usr/src/arm.armv6/tmp\"
>> >> -DLLVM_TARGET_ENABLE_ARM -ffunction-sections -fdata-sections
>> >> -gline-tables-only -MD -MF.depend.Transforms_Utils_GuardUtils.o
>> >> -MTTransforms/Utils/GuardUtils.o -Wno-format-zero-length
>> >> -Qunused-arguments -I/usr/obj/usr/src/arm.armv6/tmp/legacy/usr/includ=
e
>> >> -fno-exceptions -fno-rtti -gline-tables-only -std=3Dc++14 -stdlib=3Dl=
ibc++
>> >> -Wno-c++11-extensions   -c
>> >> /usr/src/contrib/llvm-project/llvm/lib/Transforms/Utils/GuardUtils.cp=
p
>> >> -o Transforms/Utils/GuardUtils.o
>> >> <jemalloc>: jemalloc_arena.c:747: Failed assertion:
>> >> "nstime_compare(&decay->epoch, &time) <=3D 0=E2=80=9D
>> >> PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and
>> >> include the crash backtrace, preprocessed source, and associated run
>> >> script.
>> >> Stack dump:
>> >> 0.	Program arguments: c++ -O2 -pipe -fno-common
>> >> -I/usr/obj/usr/src/arm.armv6/tmp/obj-tools/lib/clang/libllvm
>> >> -I/usr/src/contrib/llvm-project/llvm/lib/Target/ARM
>> >> -I/usr/src/lib/clang/include
>> >> -I/usr/src/contrib/llvm-project/llvm/include -D__STDC_CONSTANT_MACROS
>> >> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_VCS_VERSION_INC
>> >> -DLLVM_DEFAULT_TARGET_TRIPLE=3D"armv6-unknown-freebsd13.0-gnueabihf"
>> >> -DLLVM_HOST_TRIPLE=3D"x86_64-unknown-freebsd13.0"
>> >> -DDEFAULT_SYSROOT=3D"/usr/obj/usr/src/arm.armv6/tmp"
>> >> -DLLVM_TARGET_ENABLE_ARM -ffunction-sections -fdata-sections
>> >> -gline-tables-only -MD -MF.depend.Transforms_Utils_GuardUtils.o
>> >> -MTTransforms/Utils/GuardUtils.o -Wno-format-zero-length
>> >> -Qunused-arguments -I/usr/obj/usr/src/arm.armv6/tmp/legacy/usr/includ=
e
>> >> -fno-exceptions -fno-rtti -gline-tables-only -std=3Dc++14 -stdlib=3Dl=
ibc++
>> >> -Wno-c++11-extensions -c
>> >> /usr/src/contrib/llvm-project/llvm/lib/Transforms/Utils/GuardUtils.cp=
p
>> >> -o Transforms/Utils/GuardUtils.o
>> >> 1.	<eof> parser at end of file
>> >> 2.	/usr/include/c++/v1/functional:2370:5: instantiating function
>> >> definition 'std::__1::function<int (const llvm::Error
>> >> &)>::function<(lambda at
>> >> /usr/src/contrib/llvm-project/llvm/include/llvm/Support/Error.h:1311:=
21),
>> >> void>'
>> >> 3.	/usr/include/c++/v1/functional:1805:40: instantiating function
>> >> definition 'std::__1::__function::__value_func<int (const llvm::Error
>> >> &)>::__value_func<(lambda at
>> >> /usr/src/contrib/llvm-project/llvm/include/llvm/Support/Error.h:1311:=
21),
>> >> void>'
>> >> 4.	/usr/include/c++/v1/functional:1775:31: instantiating function
>> >> definition 'std::__1::__function::__value_func<int (const llvm::Error
>> >> &)>::__value_func<(lambda at
>> >> /usr/src/contrib/llvm-project/llvm/include/llvm/Support/Error.h:1311:=
21),
>> >> std::__1::allocator<(lambda at
>> >> /usr/src/contrib/llvm-project/llvm/include/llvm/Support/Error.h:1311:=
21)>>'
>> >> 5.	/usr/include/c++/v1/functional:1654:52: instantiating class
>> >> definition 'std::__1::__function::__func<(lambda at
>> >> /usr/src/contrib/llvm-project/llvm/include/llvm/Support/Error.h:1311:=
21),
>> >> std::__1::allocator<(lambda at
>> >> /usr/src/contrib/llvm-project/llvm/include/llvm/Support/Error.h:1311:=
21)>,
>> >> int (const llvm::Error &)>'
>> >> <jemalloc>: Should own 0 locks of rank >=3D 1: decay(12)
>> >> *** Signal 6
>> >>
>> >> Stop.
>> >> make[4]: stopped in /usr/src/lib/clang/libllvm
>> >>
>> >> thanks,
>> >> toomas
>> >>
>> >>> On 3. Jan 2021, at 23:21, Mateusz Guzik <mjguzik@gmail.com> wrote:
>> >>>
>> >>> This still fails to build:
>> >>>
>> >>> powerpc.powerpc buildworld failed, check _.powerpc.powerpc.buildworl=
d
>> >>> for details
>> >>> powerpc.powerpc64 buildworld failed, check
>> >>> _.powerpc.powerpc64.buildworld for details
>> >>> mips.mips64 buildworld failed, check _.mips.mips64.buildworld for
>> >>> details
>> >>>
>> >>> ld: error: undefined symbol: fonts
>> >>>>>> referenced by module.c:633 (/usr/src/stand/common/module.c:633)
>> >>>>>>             module.o:(build_font_module)
>> >>>>>> referenced by module.c:633 (/usr/src/stand/common/module.c:633)
>> >>>>>>             module.o:(build_font_module)
>> >>> ld: error: undefined symbol: gfx_state
>> >>>>>> referenced by module.c:0 (/usr/src/stand/common/module.c:0)
>> >>>>>>             module.o:(build_font_module)
>> >>>>>> referenced by module.c:0 (/usr/src/stand/common/module.c:0)
>> >>>>>>             module.o:(build_font_module)
>> >>>>>> referenced by loader.c:93 (/usr/src/stand/ficl/loader.c:93)
>> >>>>>>             loader.o:(ficl_term_putimage) in archive
>> >>>>>> /usr/obj/usr/src/powerpc.powerpc64/stand/ficl/libficl.a
>> >>>>>> referenced 1 more times
>> >>>
>> >>> ld: error: undefined symbol: gfx_fb_putimage
>> >>>>>> referenced by loader.c:114 (/usr/src/stand/ficl/loader.c:114)
>> >>>>>>             loader.o:(ficl_term_putimage) in archive
>> >>>>>> /usr/obj/usr/src/powerpc.powerpc64/stand/ficl/libficl.a
>> >>>>>> referenced by loader.c:154 (/usr/src/stand/ficl/loader.c:154)
>> >>>>>>             loader.o:(ficl_fb_putimage) in archive
>> >>>>>> /usr/obj/usr/src/powerpc.powerpc64/stand/ficl/libficl.a
>> >>>
>> >>> ld: error: undefined symbol: gfx_fb_setpixel
>> >>>>>> referenced by loader.c:173 (/usr/src/stand/ficl/loader.c:173)
>> >>>>>>             loader.o:(ficl_fb_setpixel) in archive
>> >>>>>> /usr/obj/usr/src/powerpc.powerpc64/stand/ficl/libficl.a
>> >>>
>> >>> ld: error: undefined symbol: gfx_fb_line
>> >>>>>> referenced by loader.c:190 (/usr/src/stand/ficl/loader.c:190)
>> >>>>>>             loader.o:(ficl_fb_line) in archive
>> >>>>>> /usr/obj/usr/src/powerpc.powerpc64/stand/ficl/libficl.a
>> >>>
>> >>> ld: error: undefined symbol: gfx_fb_bezier
>> >>>>>> referenced by loader.c:209 (/usr/src/stand/ficl/loader.c:209)
>> >>>>>>             loader.o:(ficl_fb_bezier) in archive
>> >>>>>> /usr/obj/usr/src/powerpc.powerpc64/stand/ficl/libficl.a
>> >>>
>> >>> ld: error: undefined symbol: gfx_fb_drawrect
>> >>>>>> referenced by loader.c:226 (/usr/src/stand/ficl/loader.c:226)
>> >>>>>>             loader.o:(ficl_fb_drawrect) in archive
>> >>>>>> /usr/obj/usr/src/powerpc.powerpc64/stand/ficl/libficl.a
>> >>>
>> >>> ld: error: undefined symbol: gfx_term_drawrect
>> >>>>>> referenced by loader.c:242 (/usr/src/stand/ficl/loader.c:242)
>> >>>>>>             loader.o:(ficl_term_drawrect) in archive
>> >>>>>> /usr/obj/usr/src/powerpc.powerpc64/stand/ficl/libficl.a
>> >>>
>> >>>
>> >>> On 1/3/21, Toomas Soome <tsoome@freebsd.org> wrote:
>> >>>> The branch main has been updated by tsoome:
>> >>>>
>> >>>> URL:
>> >>>> https://cgit.FreeBSD.org/src/commit/?id=3D4f9139397e709a106a73f3626=
54ce245321e4a77
>> >>>>
>> >>>> commit 4f9139397e709a106a73f362654ce245321e4a77
>> >>>> Author:     Toomas Soome <tsoome@FreeBSD.org>
>> >>>> AuthorDate: 2021-01-03 10:26:48 +0000
>> >>>> Commit:     Toomas Soome <tsoome@FreeBSD.org>
>> >>>> CommitDate: 2021-01-03 18:45:37 +0000
>> >>>>
>> >>>>   loader: fix uboot build with gfx_fb
>> >>>>
>> >>>>   Need to add stub data and gfx functions to make linking happy.
>> >>>> ---
>> >>>> stand/uboot/lib/Makefile |  4 ++-
>> >>>> stand/uboot/lib/gfx_fb.c | 78
>> >>>> ++++++++++++++++++++++++++++++++++++++++++++++++
>> >>>> 2 files changed, 81 insertions(+), 1 deletion(-)
>> >>>>
>> >>>> diff --git a/stand/uboot/lib/Makefile b/stand/uboot/lib/Makefile
>> >>>> index e56cf4f0b370..448188c93058 100644
>> >>>> --- a/stand/uboot/lib/Makefile
>> >>>> +++ b/stand/uboot/lib/Makefile
>> >>>> @@ -8,8 +8,10 @@ LIB=3D		uboot
>> >>>> WARNS?=3D		2
>> >>>>
>> >>>> SRCS=3D	console.c copy.c devicename.c elf_freebsd.c glue.c
>> >>>> -SRCS+=3D	module.c net.c reboot.c time.c
>> >>>> +SRCS+=3D	module.c net.c reboot.c time.c gfx_fb.c
>> >>>>
>> >>>> +CFLAGS.gfx_fb.c +=3D -I${SRCTOP}/contrib/pnglite
>> >>>> +CFLAGS.gfx_fb.c +=3D -I${SRCTOP}/sys/teken
>> >>>> CFLAGS.glue.c+=3D	-DHAVE_MEMCPY -I${SRCTOP}/sys/contrib/zlib
>> >>>>
>> >>>> .if ${LOADER_DISK_SUPPORT:Uyes} =3D=3D "yes"
>> >>>> diff --git a/stand/uboot/lib/gfx_fb.c b/stand/uboot/lib/gfx_fb.c
>> >>>> new file mode 100644
>> >>>> index 000000000000..e2d3204da7b9
>> >>>> --- /dev/null
>> >>>> +++ b/stand/uboot/lib/gfx_fb.c
>> >>>> @@ -0,0 +1,78 @@
>> >>>> +/*-
>> >>>> + * Copyright 2021 Toomas Soome <tsoome@freebsd.org>
>> >>>> + * 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.
>> >>>> + *
>> >>>> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS
>> >>>> IS'' AND
>> >>>> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED T=
O,
>> >>>> THE
>> >>>> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
>> >>>> PARTICULAR
>> >>>> PURPOSE
>> >>>> + * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS B=
E
>> >>>> LIABLE
>> >>>> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
>> >>>> CONSEQUENTIAL
>> >>>> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITU=
TE
>> >>>> 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.
>> >>>> + */
>> >>>> +
>> >>>> +#include <sys/cdefs.h>
>> >>>> +__FBSDID("$FreeBSD$");
>> >>>> +
>> >>>> +/*
>> >>>> + * U-Boot-specific gfx stubs.
>> >>>> + */
>> >>>> +
>> >>>> +#include <sys/types.h>
>> >>>> +#include <pnglite.h>
>> >>>> +#include "bootstrap.h"
>> >>>> +#include "gfx_fb.h"
>> >>>> +
>> >>>> +font_list_t fonts =3D STAILQ_HEAD_INITIALIZER(fonts);
>> >>>> +teken_gfx_t gfx_state =3D { 0 };
>> >>>> +
>> >>>> +void
>> >>>> +gfx_fb_setpixel(uint32_t x __unused, uint32_t y __unused)
>> >>>> +{
>> >>>> +}
>> >>>> +
>> >>>> +void
>> >>>> +gfx_fb_drawrect(uint32_t x1 __unused, uint32_t y1 __unused,
>> >>>> +    uint32_t x2 __unused, uint32_t y2 __unused, uint32_t fill
>> >>>> __unused)
>> >>>> +{
>> >>>> +}
>> >>>> +
>> >>>> +void
>> >>>> +gfx_term_drawrect(uint32_t x1 __unused, uint32_t y1 __unused,
>> >>>> +    uint32_t x2 __unused, uint32_t y2 __unused)
>> >>>> +{
>> >>>> +}
>> >>>> +
>> >>>> +void
>> >>>> +gfx_fb_line(uint32_t x0 __unused, uint32_t y0 __unused,
>> >>>> +    uint32_t x1 __unused, uint32_t y1 __unused, uint32_t w
>> >>>> __unused)
>> >>>> +{
>> >>>> +}
>> >>>> +
>> >>>> +void
>> >>>> +gfx_fb_bezier(uint32_t x0 __unused, uint32_t y0 __unused,
>> >>>> +    uint32_t x1 __unused, uint32_t y1 __unused, uint32_t x2
>> >>>> __unused,
>> >>>> +    uint32_t y2 __unused, uint32_t w __unused)
>> >>>> +{
>> >>>> +}
>> >>>> +
>> >>>> +int
>> >>>> +gfx_fb_putimage(png_t *png __unused, uint32_t ux1 __unused,
>> >>>> +    uint32_t uy1 __unused, uint32_t ux2 __unused, uint32_t uy2
>> >>>> __unused,
>> >>>> +    uint32_t flags __unused)
>> >>>> +{
>> >>>> +	return (1);
>> >>>> +}
>> >>>>
>> >>>
>> >>>
>> >>> --
>> >>> Mateusz Guzik <mjguzik gmail.com>
>> >>
>> >> _______________________________________________
>> >> dev-commits-src-main@freebsd.org mailing list
>> >> https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
>> >> To unsubscribe, send any mail to
>> >> "dev-commits-src-main-unsubscribe@freebsd.org"
>> >
>> > --
>>
>
> --
>


--=20
Mateusz Guzik <mjguzik gmail.com>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGudoHGfgO0WS9NiMZ%2BCD%2BB46ZQvzT9%2BoEjSRjSHZiCgC4=17A>