Re: [PATCH RESEND v3] drm/xe: xe_gen_wa_oob: replace program_invocation_short_name

From: Lucas De Marchi
Date: Mon Feb 24 2025 - 10:17:20 EST


On Mon, Feb 24, 2025 at 07:23:13AM +0100, da.gomez@xxxxxxxxxx wrote:
From: Daniel Gomez <da.gomez@xxxxxxxxxxx>

program_invocation_short_name() may not be available in other systems.
Instead, replace it with the argv[0] to pass the executable name.

Fixes build error when program_invocation_short_name is not available:

drivers/gpu/drm/xe/xe_gen_wa_oob.c:34:3: error: use of
undeclared identifier 'program_invocation_short_name' 34 |
program_invocation_short_name); | ^ 1 error
generated.

Suggested-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
Signed-off-by: Daniel Gomez <da.gomez@xxxxxxxxxxx>
---
This last patch allows for building the Linux kernel allyesconfig target
for arm64 in macOS hosts with Clang/LLVM.

Summary of previous feedback and work:

Other Makefile targets, such as defconfig, can already be built
successfully if the necessary headers are provided and the Linux kernel
build system is configured appropriately. To facilitate this process,
the Bee Headers [1] project was created not only to serve as reference
but also to document [2] the process and supply the missing headers.

To get started:

1. Setup:
diskutil apfs addVolume /dev/disk<N> "Case-sensitive APFS" linux

brew install coreutils findutils gnu-sed gnu-tar grep llvm make \
pkg-config
brew tap bee-headers/bee-headers
brew install bee-headers/bee-headers/bee-headers

2. Build:
source bee-init

make LLVM=1 defconfig
make LLVM=1 -j$(nproc)

[1] Project: https://github.com/bee-headers
[2] Documentation:
https://github.com/bee-headers/homebrew-bee-headers/blob/main/README.md

The changelog below has been refined to focus only on feedback related
to the xe driver. Version 3 was submitted some time ago, and although
some errors occurred in CI, they appear to be unrelated to the changes.

Is this the approach taken for other similar issues you had? Note that
argv[0] and program_invocation_short_name are not the same thing. For
this particular binary I don't really care and if it's the approach
taken in other places, I'm ok using it.

I was expecting you'd take the acks and merge it all through a single
tree since you received push back on the need to build the kernel in
macOS. Is this the only thing missing and you'd want it to go through
drm?

Lucas De Marchi