@@ -59,130 +59,7 @@ steps:
5959 -f /oot-src/out/nvidia-conftest/nvidia/Makefile
6060 echo "conftest done."
6161 - |
62- # Patch OOT module Makefiles: remove -Werror and add required include paths.
63- # srctree.nvconftest and srctree.nvidia-oot are passed as make vars at build time.
64- NVIDIA_OOT=/oot-src/nvidia-oot
65- CONFTEST_OUT=/oot-src/out/nvidia-conftest
66-
67- # ── GCC plugin latent_entropy fix ────────────────────────────────────────────
68- # CONFIG_GCC_PLUGIN_LATENT_ENTROPY injects a global 'latent_entropy' variable
69- # via a GCC plugin. Clang doesn't run the plugin → 'latent_entropy' is undeclared
70- # → linux/random.h:24 compile error for ALL OOT modules.
71- # Fix: strip the macro from auto.conf and autoconf.h before any OOT build.
72- sed -i '/CONFIG_GCC_PLUGIN_LATENT_ENTROPY/d' /src/include/config/auto.conf 2>/dev/null || true
73- sed -i '/CONFIG_GCC_PLUGIN_LATENT_ENTROPY/d' /src/include/generated/autoconf.h 2>/dev/null || true
74- echo "Removed CONFIG_GCC_PLUGIN_LATENT_ENTROPY (Clang compat fix)"
75-
76- # OOT host1x: add conftest + nvidia-oot includes (exports host1x_fence_extract)
77- printf 'ccflags-y += -I$(srctree.nvconftest)\n' \
78- >> ${NVIDIA_OOT}/drivers/gpu/host1x/Makefile
79- printf 'ccflags-y += -I$(srctree.nvidia-oot)/include\n' \
80- >> ${NVIDIA_OOT}/drivers/gpu/host1x/Makefile
81- printf 'ccflags-y += -I$(srctree.nvidia-oot)/drivers/gpu/host1x/include\n' \
82- >> ${NVIDIA_OOT}/drivers/gpu/host1x/Makefile
83-
84- # Force conftest macros for OOT host1x on kernel 6.18
85- grep -rl "NV_IOMMU_MAP_HAS_GFP_ARG" ${NVIDIA_OOT}/drivers/gpu/host1x/ \
86- | xargs -r sed -i "s|#if defined(NV_IOMMU_MAP_HAS_GFP_ARG)|#if 1 /* force: kernel 6.3+ */|g"
87- grep -rl "NV_IOMMU_PAGING_DOMAIN_ALLOC_PRESENT" ${NVIDIA_OOT}/drivers/gpu/host1x/ \
88- | xargs -r sed -i "s|#if defined(NV_IOMMU_PAGING_DOMAIN_ALLOC_PRESENT)|#if 1 /* force: kernel 6.11+ */|g"
89- grep -rl "NV_DEVM_TEGRA_CORE_DEV_INIT_OPP_TABLE_COMMON_PRESENT" ${NVIDIA_OOT}/drivers/gpu/host1x/ \
90- | xargs -r sed -i "s|#if defined(NV_DEVM_TEGRA_CORE_DEV_INIT_OPP_TABLE_COMMON_PRESENT)|#if 1 /* force: present */|g"
91- grep -rl "NV_PLATFORM_DRIVER_STRUCT_REMOVE_RETURNS_VOID" ${NVIDIA_OOT}/drivers/gpu/host1x/ \
92- | xargs -r sed -i "s|#if defined(NV_PLATFORM_DRIVER_STRUCT_REMOVE_RETURNS_VOID)|#if 1 /* force: kernel 6.11+ */|g"
93- grep -rl "NV_BUS_TYPE_STRUCT_MATCH_HAS_CONST_DRV_ARG" ${NVIDIA_OOT}/drivers/gpu/host1x/ \
94- | xargs -r sed -i "s|#if defined(NV_BUS_TYPE_STRUCT_MATCH_HAS_CONST_DRV_ARG)|#if 1 /* force: kernel 6.x+ */|g"
95- grep -rl "NV_BUS_TYPE_STRUCT_UEVENT_HAS_CONST_DEV_ARG" ${NVIDIA_OOT}/drivers/gpu/host1x/ \
96- | xargs -r sed -i "s|#if defined(NV_BUS_TYPE_STRUCT_UEVENT_HAS_CONST_DEV_ARG)|#if 1 /* force: kernel 6.x+ */|g"
97- echo "Patched OOT host1x: forced conftest macro code paths for kernel 6.18"
98-
99- # host1x syncpt.c: permanently reserve syncpt id=0 so host1x_syncpt_alloc never returns it.
100- # GA10b has NVGPU_ERRATA_SYNCPT_INVALID_ID_0: nvgpu rejects id=0 → channel init fails → error 999.
101- # OOT host1x (ccf7646c) marks syncpt[0] with name="reserved" but does NOT set kref=1, so the
102- # alloc loop (which skips syncpts where kref_read(&sp->ref) != 0) still returns id=0.
103- # Fix: add kref_init(&syncpt[0].ref) before the name assignment, matching what newer OE4T
104- # commits already do (e.g. 6e071c0). Guard is idempotent — safe even if already present.
105- SYNCPT_C=${NVIDIA_OOT}/drivers/gpu/host1x/syncpt.c
106- if grep -q 'syncpt\[0\]\.name = kstrdup' "${SYNCPT_C}" 2>/dev/null; then
107- if ! grep -q 'kref_init.*syncpt\[0\]' "${SYNCPT_C}" 2>/dev/null; then
108- sed -i 's/\(syncpt\[0\]\.name = kstrdup("reserved", GFP_KERNEL);\)/kref_init(\&syncpt[0].ref);\n\t\t\1/' "${SYNCPT_C}"
109- echo "Patched host1x syncpt.c: added kref_init(&syncpt[0].ref) — id=0 permanently reserved"
110- else
111- echo "host1x syncpt.c: kref_init(&syncpt[0].ref) already present — no patch needed"
112- fi
113- else
114- echo "WARNING: host1x syncpt.c pattern not found — syncpt id=0 reservation patch skipped"
115- fi
116-
117- # host1x-fence: remove -Werror, add conftest + nvidia-oot includes
118- sed -i 's|ccflags-y += -Werror||g' \
119- ${NVIDIA_OOT}/drivers/gpu/host1x-fence/Makefile
120- printf 'ccflags-y += -I$(srctree.nvconftest)\n' \
121- >> ${NVIDIA_OOT}/drivers/gpu/host1x-fence/Makefile
122- printf 'ccflags-y += -I$(srctree.nvidia-oot)/include\n' \
123- >> ${NVIDIA_OOT}/drivers/gpu/host1x-fence/Makefile
124- printf 'ccflags-y += -I$(srctree.nvidia-oot)/drivers/gpu/host1x/include\n' \
125- >> ${NVIDIA_OOT}/drivers/gpu/host1x-fence/Makefile
126- grep -rl "class_create(THIS_MODULE," ${NVIDIA_OOT}/drivers/gpu/host1x-fence/ \
127- | xargs -r sed -i 's/class_create(THIS_MODULE, /class_create(/g'
128- grep -rl "host1x_fence_devnode" ${NVIDIA_OOT}/drivers/gpu/host1x-fence/ \
129- | xargs -r sed -i 's/static char \*host1x_fence_devnode(struct device \*/static char *host1x_fence_devnode(const struct device */g'
130- echo "Patched host1x-fence: class_create + devnode const fixes for kernel 6.x"
131-
132- # nvmap: remove subdir -Werror, add conftest + nvidia-oot includes
133- sed -i 's|subdir-ccflags-y += -Werror||g' \
134- ${NVIDIA_OOT}/drivers/video/tegra/nvmap/Makefile
135- printf 'ccflags-y += -I$(srctree.nvconftest)\n' \
136- >> ${NVIDIA_OOT}/drivers/video/tegra/nvmap/Makefile
137- printf 'ccflags-y += -I$(srctree.nvidia-oot)/include\n' \
138- >> ${NVIDIA_OOT}/drivers/video/tegra/nvmap/Makefile
139- printf 'ccflags-y += -I$(srctree.nvidia-oot)/drivers/video/tegra/nvmap/include\n' \
140- >> ${NVIDIA_OOT}/drivers/video/tegra/nvmap/Makefile
141- printf 'ccflags-y += -DNV_GET_USER_PAGES_HAS_ARGS_FLAGS\n' \
142- >> ${NVIDIA_OOT}/drivers/video/tegra/nvmap/Makefile
143- printf 'ccflags-y += -DNV_MM_STRUCT_STRUCT_HAS_PERCPU_COUNTER_RSS_STAT\n' \
144- >> ${NVIDIA_OOT}/drivers/video/tegra/nvmap/Makefile
145- printf 'ccflags-y += -DNV_IOREMAP_PROT_HAS_PGPROT_T_ARG\n' \
146- >> ${NVIDIA_OOT}/drivers/video/tegra/nvmap/Makefile
147-
148- # mc-utils: add nvidia-oot includes
149- printf 'ccflags-y += -I$(srctree.nvidia-oot)/include\n' \
150- >> ${NVIDIA_OOT}/drivers/platform/tegra/mc-utils/Makefile
151-
152- # governor_pod_scaling: add conftest + nvidia-oot includes
153- printf 'ccflags-y += -I$(srctree.nvconftest)\n' \
154- >> ${NVIDIA_OOT}/drivers/devfreq/Makefile
155- printf 'ccflags-y += -I$(srctree.nvidia-oot)/include\n' \
156- >> ${NVIDIA_OOT}/drivers/devfreq/Makefile
157-
158- echo "Include paths patched into OOT module Makefiles."
159-
160- # Force conftest macro paths in nvmap source for kernel 6.18
161- grep -rl "NV_GET_USER_PAGES_HAS_ARGS_FLAGS" ${NVIDIA_OOT}/drivers/video/tegra/nvmap/ \
162- | xargs -r sed -i "s|#if defined(NV_GET_USER_PAGES_HAS_ARGS_FLAGS)|#if 1 /* force: kernel 6.5+ */|g"
163- grep -rl "NV_MM_STRUCT_STRUCT_HAS_PERCPU_COUNTER_RSS_STAT" ${NVIDIA_OOT}/drivers/video/tegra/nvmap/ \
164- | xargs -r sed -i "s|#if defined(NV_MM_STRUCT_STRUCT_HAS_PERCPU_COUNTER_RSS_STAT)|#if 1 /* force: kernel 6.2+ */|g"
165- grep -rl "NV_IOREMAP_PROT_HAS_PGPROT_T_ARG" ${NVIDIA_OOT}/drivers/video/tegra/nvmap/ \
166- | xargs -r sed -i "s|#if defined(NV_IOREMAP_PROT_HAS_PGPROT_T_ARG)|#if 1 /* force: kernel 6.15+ */|g"
167- grep -rl "NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS" ${NVIDIA_OOT}/drivers/video/tegra/nvmap/ \
168- | xargs -r sed -i "s|#if defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS)|#if 1 /* force: kernel 6.3+ */|g"
169- grep -rl "NV___ASSIGN_STR_HAS_NO_SRC_ARG" \
170- ${NVIDIA_OOT}/include/trace/events/ \
171- ${NVIDIA_OOT}/drivers/video/tegra/nvmap/ 2>/dev/null \
172- | xargs -r sed -i "s|#if defined(NV___ASSIGN_STR_HAS_NO_SRC_ARG)|#if 1 /* force: kernel 6.10+ */|g"
173- grep -rl "NV__ALLOC_PAGES_BULK_HAS_NO_PAGE_LIST_ARG" \
174- ${NVIDIA_OOT}/drivers/video/tegra/nvmap/ \
175- | xargs -r sed -i "s|#if defined(NV__ALLOC_PAGES_BULK_HAS_NO_PAGE_LIST_ARG)|#if 1 /* force: kernel 6.14+ */|g"
176- grep -rl "NV_FILE_STRUCT_HAS_F_REF" \
177- ${NVIDIA_OOT}/drivers/video/tegra/nvmap/ \
178- | xargs -r sed -i "s|#if defined(NV_FILE_STRUCT_HAS_F_REF)|#if 1 /* force: kernel 6.13+ */|g"
179- grep -rl "NV_GET_FILE_RCU_HAS_DOUBLE_PTR_FILE_ARG" \
180- ${NVIDIA_OOT}/drivers/video/tegra/nvmap/ \
181- | xargs -r sed -i "s|#if defined(NV_GET_FILE_RCU_HAS_DOUBLE_PTR_FILE_ARG)|#if 1 /* force: kernel 6.7+ */|g"
182- grep -rl "NV_PLATFORM_DRIVER_STRUCT_REMOVE_RETURNS_VOID" \
183- ${NVIDIA_OOT}/drivers/video/tegra/nvmap/ \
184- | xargs -r sed -i "s|#if defined(NV_PLATFORM_DRIVER_STRUCT_REMOVE_RETURNS_VOID)|#if 1 /* force: kernel 6.11+ */|g"
185- echo "Patched nvmap: forced conftest macro code paths for kernel 6.18"
62+ /pkg/scripts/fixup.sh
18663 - |
18764 # ── Cross-compiler mismatch fix: Clang wrapper ────────────────────────────
18865 # Strips GCC-only flags before passing to clang (source-independent fix).
0 commit comments