[PATCH] drm/radeon: Add build directory to include path
Masahiro Yamada
masahiroy at kernel.org
Thu Apr 14 15:04:17 UTC 2022
Hi.
On Thu, Apr 14, 2022 at 10:50 PM Michel Dänzer
<michel.daenzer at 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 at 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 at 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
More information about the amd-gfx
mailing list