Hello Jukka,

Finally I was able to reproduce the situation that you are talking
about. The case is that in PX4 environment the path to the board files
is hardcoded to $(BOARD_DIR)/src unconditionally, but actually it
depends on BOARD_COMMON_DIR value:
ifneq ($(BOARD_COMMON_DIR),)
ARCH_SRC_BOARD_SYMLINK=$(BOARD_COMMON_DIR)
ARCH_SRC_BOARD_BOARD_SYMLINK=$(BOARD_DIR)/src
else
ARCH_SRC_BOARD_SYMLINK=$(BOARD_DIR)/src
endif

So the best solution that I can introduce without modification of PX4
build system is https://github.com/apache/incubator-nuttx/pull/5715

I do not like it a bit because this leads to a situation that leads to
a need to make a distclean each time the ARCH_BOARD_COMMON is changed.

Best regards,
Petro

Best regards,
Petro

пт, 11 бер. 2022 р. о 11:33 Petro Karashchenko
<petro.karashche...@gmail.com> пише:
>
> Hello Jukka,
>
> I'm still in the middle of building a docker image for your project.
> Currently with slow internet it takes a while.
>
> But what I see from the error that you report is that probably you
> applied https://github.com/apache/incubator-nuttx/pull/5712 while
> having https://github.com/apache/incubator-nuttx/pull/5274 still
> reverted.
>
> I will give feedback as soon as I will replicate your issue at my end.
>
> Best regards,
> Petro
>
> пт, 11 бер. 2022 р. о 08:12 Jukka Laitinen <jukka.laiti...@iki.fi> пише:
> >
> > Hi,
> >
> > With this patch, all my targets fail with:
> >
> > Makefile:23: board/Make.defs: No such file or directory
> > make[3]: *** No rule to make target 'board/Make.defs'.  Stop.
> >
> > Should I add some new CONFIGs? Sorry but I don't have much time today to
> > debug this further
> >
> > -Jukka
> >
> >
> > On 10.3.2022 21.00, Petro Karashchenko wrote:
> > > Hello Jukka,
> > >
> > > I would like to ask you to try an alternative PR
> > > https://github.com/apache/incubator-nuttx/pull/5712 and feedback if it
> > > works for you.
> > >
> > > Best regards,
> > > Petro
> > >
> > > чт, 10 бер. 2022 р. о 07:24 Jukka Laitinen <jukka.laiti...@iki.fi> пише:
> > >> Hi,
> > >>
> > >> This fixes the build for me, I just leave the
> > >> CONFIG_BOARD_CUSTOM_ARCH_BOARD_COMMON undefined.
> > >>
> > >> Thanks,
> > >>
> > >> Jukka
> > >>
> > >> On 9.3.2022 19.22, Petro Karashchenko wrote:
> > >>> Hello Jukka,
> > >>>
> > >>> I was able to localize the root cause of the issue. I've created
> > >>> https://github.com/apache/incubator-nuttx/pull/5705 to recover things
> > >>> and added a separate option that should be explicitly enabled to
> > >>> re-use a board-level common code by custom boards users.
> > >>>
> > >>> Please try this change and feedback if that solves the problem.
> > >>>
> > >>> Best regards,
> > >>> Petro
> > >>>
> > >>> чт, 3 бер. 2022 р. о 15:33 Jukka Laitinen <jukka.laiti...@iki.fi> пише:
> > >>>> Hi, sorry but I am away from computer atm.
> > >>>>
> > >>>> In the project there is "packaging" subdirectory, it contains some 
> > >>>> docker env, which is also used in TII's CI
> > >>>>
> > >>>> - Jukka
> > >>>>
> > >>>> Petro Karashchenko kirjoitti torstai 3. maaliskuuta 2022:
> > >>>>> Hello Jukka,
> > >>>>>
> > >>>>> Do you have any steps on how to build or download a docker image that
> > >>>>> can be used to build that project?
> > >>>>> It takes me too much time to get build running.
> > >>>>>
> > >>>>> Best regards,
> > >>>>> Petro
> > >>>>>
> > >>>>> чт, 3 бер. 2022 р. о 12:43 Jukka Laitinen <jukka.laiti...@iki.fi> 
> > >>>>> пише:
> > >>>>>> And also note that the commit I mentioned is already reverted in 
> > >>>>>> nuttx submodule, so you need to put it back in order to re-produce 
> > >>>>>> the issue :)
> > >>>>>>
> > >>>>>>
> > >>>>>> Jukka Laitinen kirjoitti torstai 3. maaliskuuta 2022:
> > >>>>>>> Hi, sorry about that; you can just remove that submodule, it is not 
> > >>>>>>> needed to re-produce the issue.
> > >>>>>>>
> > >>>>>>> - Jukka
> > >>>>>>>
> > >>>>>>> Petro Karashchenko kirjoitti torstai 3. maaliskuuta 2022:
> > >>>>>>>> Hi Jukka,
> > >>>>>>>>
> > >>>>>>>> I tried to replicate your case, but failed with:
> > >>>>>>>> $ git submodule update --init --recursive
> > >>>>>>>> Cloning into 
> > >>>>>>>> '/home/pkarashchenko/workspace/px4-firmware/boards/ssrc/saluki-v1'...
> > >>>>>>>> ERROR: Repository not found.
> > >>>>>>>> fatal: Could not read from remote repository.
> > >>>>>>>>
> > >>>>>>>> Please make sure you have the correct access rights
> > >>>>>>>> and the repository exists.
> > >>>>>>>> fatal: clone of 'g...@github.com:tiiuae/saluki-v1.git' into 
> > >>>>>>>> submodule
> > >>>>>>>> path 
> > >>>>>>>> '/home/pkarashchenko/workspace/px4-firmware/boards/ssrc/saluki-v1'
> > >>>>>>>> failed
> > >>>>>>>> Failed to clone 'boards/ssrc/saluki-v1'. Retry scheduled
> > >>>>>>>> Cloning into 
> > >>>>>>>> '/home/pkarashchenko/workspace/px4-firmware/boards/ssrc/saluki-v1'...
> > >>>>>>>> ERROR: Repository not found.
> > >>>>>>>> fatal: Could not read from remote repository.
> > >>>>>>>>
> > >>>>>>>> Please make sure you have the correct access rights
> > >>>>>>>> and the repository exists.
> > >>>>>>>> fatal: clone of 'g...@github.com:tiiuae/saluki-v1.git' into 
> > >>>>>>>> submodule
> > >>>>>>>> path 
> > >>>>>>>> '/home/pkarashchenko$/workspace/px4-firmware/boards/ssrc/saluki-v1'
> > >>>>>>>> failed
> > >>>>>>>> Failed to clone 'boards/ssrc/saluki-v1' a second time, aborting
> > >>>>>>>>
> > >>>>>>>> Best regards,
> > >>>>>>>> Petro
> > >>>>>>>>
> > >>>>>>>> чт, 3 бер. 2022 р. о 09:34 Jukka Laitinen <jukka.laiti...@iki.fi> 
> > >>>>>>>> пише:
> > >>>>>>>>> Hi,
> > >>>>>>>>>
> > >>>>>>>>> Maybe I was jumping in to conclusion and the issue is not the 
> > >>>>>>>>> same as
> > >>>>>>>>> what I had. I was building PX4, which uses CMake build system, so 
> > >>>>>>>>> I am
> > >>>>>>>>> not having any Makefile or Make.defs in my own board directory. 
> > >>>>>>>>> Also the
> > >>>>>>>>> platform is not stm or arm, but risc-v.
> > >>>>>>>>>
> > >>>>>>>>> Anyhow, this is the error which I started getting in my build 
> > >>>>>>>>> scripts:
> > >>>>>>>>>
> > >>>>>>>>> "
> > >>>>>>>>>
> > >>>>>>>>> ninja: error:
> > >>>>>>>>> '../../platforms/nuttx/NuttX/nuttx/arch/risc-v/include/board', 
> > >>>>>>>>> needed by
> > >>>>>>>>> 'NuttX/nuttx_copy.stamp', missing and no known rule to make it
> > >>>>>>>>> make: *** [Makefile:225: ssrc_icicle_default] Error 1
> > >>>>>>>>> "
> > >>>>>>>>>
> > >>>>>>>>> My configs are:
> > >>>>>>>>>
> > >>>>>>>>> CONFIG_ARCH="risc-v"
> > >>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM=y
> > >>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_DIR="../nuttx-config"
> > >>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
> > >>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_NAME="px4"
> > >>>>>>>>>
> > >>>>>>>>> One version, where it fails is available publicly in
> > >>>>>>>>>
> > >>>>>>>>> https://github.com/tiiuae/px4-firmware/ (nuttx is included as a 
> > >>>>>>>>> submodule)
> > >>>>>>>>>
> > >>>>>>>>> Building "make ssrc_icicle_default". The board files are in
> > >>>>>>>>> boards/ssrc/icicle/nuttx-config and NuttX cloned in
> > >>>>>>>>> platforms/nuttx/Nuttx/nuttx.
> > >>>>>>>>>
> > >>>>>>>>> I didn't yet start looking into it in detail, what goes wrong, 
> > >>>>>>>>> just
> > >>>>>>>>> bisected the nuttx and reverted the commit which broke it for me. 
> > >>>>>>>>> I need
> > >>>>>>>>> to look back later to see how to change the off-tree board config 
> > >>>>>>>>> to get
> > >>>>>>>>> it back online.
> > >>>>>>>>>
> > >>>>>>>>> Just noticed that the error is somewhat similar, although coming 
> > >>>>>>>>> from
> > >>>>>>>>> different build env. But in my case it is likely that I need to 
> > >>>>>>>>> adapt
> > >>>>>>>>> the cmake build scripts according to the changes in nuttx.
> > >>>>>>>>>
> > >>>>>>>>> -Jukka
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>> On 3.3.2022 9.37, Petro Karashchenko wrote:
> > >>>>>>>>>> Hello Jukka,
> > >>>>>>>>>>
> > >>>>>>>>>> So you experience the same problem as Daniel and reverting the 
> > >>>>>>>>>> commit helps?
> > >>>>>>>>>>
> > >>>>>>>>>> Before f77956a227f1db6ecb44eda3814e7b02aa2187a6 there was no way 
> > >>>>>>>>>> to
> > >>>>>>>>>> reuse common code from "nuttx/board/...". I'm using a custom 
> > >>>>>>>>>> board
> > >>>>>>>>>> based on SAME70 and after
> > >>>>>>>>>> https://github.com/apache/incubator-nuttx/pull/4981 I found my 
> > >>>>>>>>>> code
> > >>>>>>>>>> tree broken. Now the folder structure for "boards/arm/samv7" is 
> > >>>>>>>>>> the
> > >>>>>>>>>> same as in "boards/arm/stm32". Here is what I did to get it back
> > >>>>>>>>>> running:
> > >>>>>>>>>> 1. Synced "custom-board/scripts/Make.defs" with
> > >>>>>>>>>> "boards/arm/samv7/same70-xplained/scripts/Make.defs"
> > >>>>>>>>>> 2. Renamed "custom-board/src/Makefile" to 
> > >>>>>>>>>> "custom-board/src/Make.defs"
> > >>>>>>>>>> and synced with "boards/arm/samv7/same70-xplained/src/Make.defs"
> > >>>>>>>>>> 3. Removed files in my code tree that have exactly the same
> > >>>>>>>>>> implementation as files from "boards/arm/samv7/common"
> > >>>>>>>>>>
> > >>>>>>>>>> It seems like Daniel is hitting the same issue, so I expect that
> > >>>>>>>>>> renaming Makefile to Make.defs plus setting 
> > >>>>>>>>>> "BOARD_STM32_COMMON=n"
> > >>>>>>>>>> should fix the issue without any additional file clean-up.
> > >>>>>>>>>> Please give me feedback if that helps.
> > >>>>>>>>>>
> > >>>>>>>>>> Best regards,
> > >>>>>>>>>> Petro
> > >>>>>>>>>>
> > >>>>>>>>>> чт, 3 бер. 2022 р. о 07:40 Jukka Laitinen 
> > >>>>>>>>>> <jukka.laiti...@iki.fi> пише:
> > >>>>>>>>>>> HI,
> > >>>>>>>>>>>
> > >>>>>>>>>>> Not sure what is the correct way to fix this, but I reverted:
> > >>>>>>>>>>>
> > >>>>>>>>>>> "
> > >>>>>>>>>>>
> > >>>>>>>>>>> commit f77956a227f1db6ecb44eda3814e7b02aa2187a6
> > >>>>>>>>>>> Author: Petro Karashchenko <petro.karashche...@gmail.com>
> > >>>>>>>>>>> Date:   Wed Jan 19 11:16:11 2022 +0200
> > >>>>>>>>>>>
> > >>>>>>>>>>>         tools: add option to reuse boards common files for 
> > >>>>>>>>>>> custom boards
> > >>>>>>>>>>>
> > >>>>>>>>>>>         Signed-off-by: Petro Karashchenko 
> > >>>>>>>>>>> <petro.karashche...@gmail.com>
> > >>>>>>>>>>> "
> > >>>>>>>>>>>
> > >>>>>>>>>>> Petro, what is the proper way to configure this?
> > >>>>>>>>>>>
> > >>>>>>>>>>> Thanks,
> > >>>>>>>>>>>
> > >>>>>>>>>>> Jukka
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>> On 3.3.2022 0.06, Daniel Pereira Carvalho wrote:
> > >>>>>>>>>>>
> > >>>>>>>>>>>> Hi guys,
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> I am having problems building custom boards outside of the 
> > >>>>>>>>>>>> Nuttx folder
> > >>>>>>>>>>>> tree. Usually I use the following folder structure.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> |-> apps
> > >>>>>>>>>>>> |-> my-folder
> > >>>>>>>>>>>>        |-> my-apps
> > >>>>>>>>>>>>           |-> custom-app
> > >>>>>>>>>>>>        |-> my-boards
> > >>>>>>>>>>>>           |-> custom-board
> > >>>>>>>>>>>> |-> nuttx
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> To build my apps I just need to create a symbolic link called 
> > >>>>>>>>>>>> external
> > >>>>>>>>>>>> inside apps folder. To create a new custom board I start 
> > >>>>>>>>>>>> copying a similar
> > >>>>>>>>>>>> board (e.g nucleo-g431kb) to my-boards folder and make the 
> > >>>>>>>>>>>> following changes
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> *remove from defconfig:*
> > >>>>>>>>>>>> CONFIG_ARCH_BOARD="nucleo-g431kb"
> > >>>>>>>>>>>> CONFIG_ARCH_BOARD_NUCLEO_G431KB=y
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> *add on defconfig:*
> > >>>>>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM=y
> > >>>>>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_DIR="../my-folder/my-boards/custom-board"
> > >>>>>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
> > >>>>>>>>>>>> CONFIG_ARCH_BOARD_CUSTOM_NAME="custom-board"
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> *Rename src/Make.defs to src/Makefile and append the line *
> > >>>>>>>>>>>> include $(TOPDIR)/boards/Board.mk at the end of file.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> This works well for me up to Nuttx version 10.2.0 but now when 
> > >>>>>>>>>>>> I try to
> > >>>>>>>>>>>> make I got the errors
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> make[1]: Entering directory 
> > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/tools'
> > >>>>>>>>>>>> make[1]: Leaving directory 
> > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/tools'
> > >>>>>>>>>>>> make[1]: Entering directory 
> > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/tools'
> > >>>>>>>>>>>> make[1]: Leaving directory 
> > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/tools'
> > >>>>>>>>>>>> Create version.h
> > >>>>>>>>>>>> make[1]: Entering directory 
> > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/boards'
> > >>>>>>>>>>>> make[2]: Entering directory
> > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/boards/arm/stm32/common'
> > >>>>>>>>>>>> Makefile:23: board/Make.defs: No such file or directory
> > >>>>>>>>>>>> make[2]: *** No rule to make target 'board/Make.defs'.  Stop.
> > >>>>>>>>>>>> make[2]: Leaving directory
> > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/boards/arm/stm32/common'
> > >>>>>>>>>>>> make[1]: *** [Makefile:79: context] Error 2
> > >>>>>>>>>>>> make[1]: Leaving directory 
> > >>>>>>>>>>>> '/home/daniel/nuttx-workspace/nuttx/boards'
> > >>>>>>>>>>>> make: *** [tools/Unix.mk:425: boards/.context] Error 2
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Does anyone know how to fix this problem?
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Thanks
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Daniel Pereira de Carvalho
> > >>>>>>>>>>>>

Reply via email to