On Fri, Oct 8, 2021 at 7:49 AM Takashi Yamamoto wrote:
>
> On Fri, Oct 8, 2021 at 2:25 PM Tomasz CEDRO wrote:
> >
> > On Fri, Oct 8, 2021 at 6:45 AM Takashi Yamamoto wrote:
> > >
> > > On Fri, Oct 8, 2021 at 12:51 PM Tomasz CEDRO wrote:
> > > >
> > > > On Fri, Oct 8, 2021 at 5:15 AM Tomasz CEDRO wrote:
> > > > > On Fri, Oct 8, 2021 at 4:47 AM Nathan Hartman  wrote:
> > > > > > There is a NuttX Tools repo at
> > > > > > https://bitbucket.org/nuttx/tools/downloads/
> > > > > >
> > > > > > I think I built the kconfig-frontends from there a long time ago.
> > > > >
> > > > > Thank you for this hint I will try to build that on my FreeBSD. I
> > > > > could not find kconfig sources :-)
> > > >
> > > > `kconfig-frontends-4.11.0.1` does not build on FreeBSD:
> > > >
> > > >   CC       libs/parser/libs_parser_libkconfig_parser_la-yconf.lo
> > > > In file included from libs/parser/yconf.c:252:
> > > > libs/parser/hconf.gperf:153:1: error: conflicting types for 
> > > > 'kconf_id_lookup'
> > > > kconf_id_lookup (register const char *str, register unsigned int len)
> > > > ^
> > > > libs/parser/hconf.gperf:12:31: note: previous declaration is here
> > > > static const struct kconf_id *kconf_id_lookup(register const char
> > > > *str, register GPERF_LEN_TYPE len);
> > > >                               ^
> > > > libs/parser/hconf.gperf:40:44: warning: static variable
> > > > 'kconf_id_strings_contents' is used in an inline function with
> > > > external linkage [-Wstatic-in-inline]
> > > >               register const char *s = o + kconf_id_strings;
> > > >                                            ^
> > > > libs/parser/hconf.gperf:145:43: note: expanded from macro 
> > > > 'kconf_id_strings'
> > > > #define kconf_id_strings ((const char *) &kconf_id_strings_contents)
> > > >                                           ^
> > > > libs/parser/hconf.gperf:147:1: note: use 'static' to give inline
> > > > function 'kconf_id_lookup' internal linkage
> > > >
> > > > There is `gperf-3.1` package installed.
> > > >
> > > >
> > > > Can anyone point me to the official `kconfig-frontends` website and
> > > > source code repository?
> > > >
> > > > I can find 28 repositories on GitHub all seems to be outdated forks:
> > > > https://github.com/search?q=kconfig-frontends
> > > >
> > > >
> > > > One of them is 
> > > > https://github.com/NuttX/tools/tree/master/kconfig-frontends,
> > > > where I find:
> > > >
> > > > This is a snapshot of the kconfig-frontends version 4.11.0.1 tarball 
> > > > taken
> > > > from http://ymorin.is-a-geek.org/projects/kconfig-frontends.
> > > >
> > > > But that server does not respond.
> > > >
> > > >
> > > > Another finding is https://github.com/espressif/kconfig-frontends but
> > > > that is explicitly a modified version so its a different tool with the
> > > > same name.
> > > >
> > > >
> > > > I hope NuttX does not have a critical dependency on abandoned
> > > > unmaintained tool ?
> > >
> > > i guess "we are maintaining the fork by ourselves" is a better
> > > description of the current situation.
> > > as it can be built for macOS. i guess it isn't too difficult to port
> > > it to FreeBSD.
> >
> > Porting to FreeBSD was my first intention, no problem with that, but
> > then where do I even send patches if "maintenance" is just keeping old
> > bz2 package somewhere out there. Sorry, this is not the serious way to
> > go, this tool seems abandoned and you should consider abandoning it
> > too.
> >
> > "Works for me after I patched 38 packages that took me 18 days and
> > works only on my local machine"^TM makes me think "do not touch that
> > project"^TM :-)
> >
> >
> > > i think kconfiglib is a better tool in general. at least it's
> > > definitely easier for someone new to nuttx to start with.
> > > but it seems for some people python dependency is not acceptable.
> > > maybe we can support the both? how others think?
> >
> > Anything that has live community, source code repository, and is
> > proven effective in other projects will be better :-)
> >
> > There are some `*.py` files in `nuttx/tools/` already so why Python
> > could be a blocker?
>
> because kconfig is a more critical tool than these .py files?
>
> i don't remember who told me python was not acceptable.
> hopefully he will read this and explain us.

Yup, sounds like kconfig is a critical dependency. In perfect scenario
some well maintained multiplatform solution that does not require a
lot of changes in current NuttX code base would be the best one.

I put some FreeBSD related notes on GitHub issue:
https://github.com/apache/incubator-nuttx/issues/4648

I saw Espressif have their own modified fork of kconfig-frontend that
is updated to work with CMake (that fixes GNU Make vs BSD Make problem
as well):

https://github.com/espressif/kconfig-frontends

On the other hand ESP-IDF and Xtensa Toolchain also have problems with
maintaining self-compatibility as reported by FreeBSD port maintainers
already:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251659

Personally I am using Linux Xtensa Toolchain on FreeBSD (FreeBSD can
natively emulate Linux binaries). It works but I am not really happy
with that solution. The bootstrap and update is automated by Zephyr's
west though so I am sure I am working with the one that builds working
firmware.

The good news is FreeBSD already has working ports for embedded RISC-V
32/64 GCC, Binutils and QEmu, so we are not tied to binary builds for
Linux here. FreeBSD itself works on RISC-V boards already :-)

-- 
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info

Reply via email to