Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Jan 2021 23:36:32 +0200
From:      Toomas Soome <tsoome@me.com>
To:        Mateusz Guzik <mjguzik@gmail.com>
Cc:        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:  <5A01B97F-5EEB-4E8D-94E4-6901F40E37AC@me.com>
In-Reply-To: <CAGudoHGgBd1MyK1awbdvm5M25ewBC3JZp4yrb4Jy0QnL4MGaGg@mail.gmail.com>
References:  <202101031922.103JMjCW098991@gitrepo.freebsd.org> <CAGudoHGgBd1MyK1awbdvm5M25ewBC3JZp4yrb4Jy0QnL4MGaGg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Yes, I=E2=80=99m 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=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/include  =
-fno-exceptions -fno-rtti -gline-tables-only -std=3Dc++14 -stdlib=3Dlibc++=
 -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) <=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/include =
-fno-exceptions -fno-rtti -gline-tables-only -std=3Dc++14 -stdlib=3Dlibc++=
 -Wno-c++11-extensions -c =
/usr/src/contrib/llvm-project/llvm/lib/Transforms/Utils/GuardUtils.cpp =
-o Transforms/Utils/GuardUtils.o=20
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:
>=20
> This still fails to build:
>=20
> 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
>=20
> 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
>=20
> 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
>=20
> 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
>=20
> 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
>=20
> 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
>=20
> 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
>=20
> 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
>=20
>=20
> On 1/3/21, Toomas Soome <tsoome@freebsd.org> wrote:
>> The branch main has been updated by tsoome:
>>=20
>> URL:
>> =
https://cgit.FreeBSD.org/src/commit/?id=3D4f9139397e709a106a73f362654ce245=
321e4a77
>>=20
>> 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
>>=20
>>    loader: fix uboot build with gfx_fb
>>=20
>>    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(-)
>>=20
>> 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
>>=20
>> 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
>>=20
>> +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
>>=20
>> .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 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 =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);
>> +}
>>=20
>=20
>=20
> --=20
> Mateusz Guzik <mjguzik gmail.com>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5A01B97F-5EEB-4E8D-94E4-6901F40E37AC>