git: 4f9139397e70 - main - loader: fix uboot build with gfx_fb

Toomas Soome tsoome at me.com
Sun Jan 3 22:09:41 UTC 2021



> On 4. Jan 2021, at 00:02, Gordon Bergling <gbe at freebsd.org> wrote:
> 
> Hi Toomas,
> 
> these errors are maybe related to an recent update
> to LLVM (llvmorg-11.0.1-rc2-0-g43ff75f2c3f).
> 
> --Gordon

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

> 
> On Sun, Jan 03, 2021 at 11:36:32PM +0200, Toomas Soome via dev-commits-src-main wrote:
>> Yes, I’m preparing patches there too, assuming i get past errors 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=\"armv6-unknown-freebsd13.0-gnueabihf\" -DLLVM_HOST_TRIPLE=\"x86_64-unknown-freebsd13.0\" -DDEFAULT_SYSROOT=\"/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/include  -fno-exceptions -fno-rtti -gline-tables-only -std=c++14 -stdlib=libc++ -Wno-c++11-extensions   -c /usr/src/contrib/llvm-project/llvm/lib/Transforms/Utils/GuardUtils.cpp -o Transforms/Utils/GuardUtils.o
>> <jemalloc>: jemalloc_arena.c:747: Failed assertion: "nstime_compare(&decay->epoch, &time) <= 0”
>> 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="armv6-unknown-freebsd13.0-gnueabihf" -DLLVM_HOST_TRIPLE="x86_64-unknown-freebsd13.0" -DDEFAULT_SYSROOT="/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/include -fno-exceptions -fno-rtti -gline-tables-only -std=c++14 -stdlib=libc++ -Wno-c++11-extensions -c /usr/src/contrib/llvm-project/llvm/lib/Transforms/Utils/GuardUtils.cpp -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 >= 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 at gmail.com> wrote:
>>> 
>>> This still fails to build:
>>> 
>>> powerpc.powerpc buildworld failed, check _.powerpc.powerpc.buildworld
>>> 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 at freebsd.org> wrote:
>>>> The branch main has been updated by tsoome:
>>>> 
>>>> URL:
>>>> https://cgit.FreeBSD.org/src/commit/?id=4f9139397e709a106a73f362654ce245321e4a77
>>>> 
>>>> commit 4f9139397e709a106a73f362654ce245321e4a77
>>>> Author:     Toomas Soome <tsoome at FreeBSD.org>
>>>> AuthorDate: 2021-01-03 10:26:48 +0000
>>>> Commit:     Toomas Soome <tsoome at 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=		uboot
>>>> WARNS?=		2
>>>> 
>>>> SRCS=	console.c copy.c devicename.c elf_freebsd.c glue.c
>>>> -SRCS+=	module.c net.c reboot.c time.c
>>>> +SRCS+=	module.c net.c reboot.c time.c gfx_fb.c
>>>> 
>>>> +CFLAGS.gfx_fb.c += -I${SRCTOP}/contrib/pnglite
>>>> +CFLAGS.gfx_fb.c += -I${SRCTOP}/sys/teken
>>>> CFLAGS.glue.c+=	-DHAVE_MEMCPY -I${SRCTOP}/sys/contrib/zlib
>>>> 
>>>> .if ${LOADER_DISK_SUPPORT:Uyes} == "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 at 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 TO, THE
>>>> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
>>>> PURPOSE
>>>> + * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
>>>> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
>>>> CONSEQUENTIAL
>>>> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 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 = STAILQ_HEAD_INITIALIZER(fonts);
>>>> +teken_gfx_t gfx_state = { 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 at 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 at freebsd.org"
> 
> -- 



More information about the dev-commits-src-main mailing list