Hi.
On Thu, Apr 14, 2022 at 10:50 PM Michel Dänzer michel.daenzer@mailbox.org wrote:
On 2022-04-14 15:34, Alex Deucher wrote:
On Thu, Apr 14, 2022 at 4:44 AM Christian König ckoenig.leichtzumerken@gmail.com wrote:
Am 14.04.22 um 09:37 schrieb Michel Dänzer:
On 2022-04-14 08:24, Christian König wrote:
Am 13.04.22 um 18:14 schrieb Michel Dänzer:
From: Michel Dänzer mdaenzer@redhat.com
Fixes compile errors with out-of-tree builds, e.g.
../drivers/gpu/drm/radeon/r420.c:38:10: fatal error: r420_reg_safe.h: No such file or directory 38 | #include "r420_reg_safe.h" | ^~~~~~~~~~~~~~~~~
Well stuff like that usually points to a broken build environment.
Just a separate build directory. Specifically, I'm hitting the errors with
make -C build-amd64 M=drivers/gpu/drm
Maybe
make O=build-arm64 drivers/gpu/drm/
is the way you were searching for.
It builds only drivers/gpu/drm/ in the separate directory.
Generated headers such as r420_reg_safe.h reside in the build directory, so source files in the source directory can't find them without an explicit search path.
I'm trying to swap back into my brain how all of this used to work, but that's a really long time ago that I tried this as well.
Are you saying that should get added automagically somehow?
For the kernel tree, yes, it is done automatically.
See the code in scripts/Makefile.lib:
# $(srctree)/$(src) for including checkin headers from generated source files # $(objtree)/$(obj) for including generated headers from checkin source files ifeq ($(KBUILD_EXTMOD),) ifdef building_out_of_srctree _c_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj) _a_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj) _cpp_flags += -I $(srctree)/$(src) -I $(objtree)/$(obj) endif endif
But, you used M=drivers/gpu/drm. So, it did not work.
M= is intended for building external modules.
I do not recommend it for in-tree drivers.
Yes, exactly that. I'm like 95% sure that used to work, but I don't know why exactly either.
FWIW, this is pretty common in the kernel according to git grep.
Maybe Alex or somebody else with some more background in the kernel Makefiles could jump in and help here.
I don't remember either. I vaguely recall the build support for the mkregtable stuff being reworked a while ago. A quick zip through the git logs shows a series from Masahiro Yamada from 2020.
Yamada-san, can you help us? :)
See https://patchwork.freedesktop.org/patch/482011/ for my patch.
-- Earthling Michel Dänzer | https://redhat.com Libre software enthusiast | Mesa and Xwayland developer
-- Best Regards Masahiro Yamada