[Build] Fix for DeepEP manylinux pidfd sycall usage (#49814)
Tyler Michael Smith committed
Jul 25, 2026 at 15:29 UTC
ee1d99636702b8ed9ad88c2c2b833d331dce01c1
1 file changed
+27
tools/ep_kernels/install_python_libraries.sh
+27
@@ -170,6 +170,33 @@ do_build() {
170
sed -i "s|f'{nvshmem_dir}/include']|f'{nvshmem_dir}/include', '${CUDA_HOME}/include/cccl']|" "setup.py"
171
fi
172
173
+ # DeepEPv2 requires Linux 5.6+ at runtime for pidfd_getfd (pidfd_open was
174
+ # added in Linux 5.3), but manylinux headers predate both definitions.
175
+ # DeepEP is built as a separate wheel for the vLLM container image and is
176
+ # not included in the vLLM wheel, so this does not change its manylinux ABI.
177
+ if [[ "$name" == "DeepEP" ]] && \
178
+ ! grep -q "vLLM manylinux syscall compatibility" \
179
+ csrc/kernels/backend/symmetric.hpp; then
180
+ sed -i '1i\
181
+// vLLM manylinux syscall compatibility\
182
+#if defined(__x86_64__) || defined(__aarch64__)\
183
+#ifndef SYS_pidfd_open\
184
+#ifdef __NR_pidfd_open\
185
+#define SYS_pidfd_open __NR_pidfd_open\
186
+#else\
187
+#define SYS_pidfd_open 434\
188
+#endif\
189
+#endif\
190
+#ifndef SYS_pidfd_getfd\
191
+#ifdef __NR_pidfd_getfd\
192
+#define SYS_pidfd_getfd __NR_pidfd_getfd\
193
+#else\
194
+#define SYS_pidfd_getfd 438\
195
+#endif\
196
+#endif\
197
+#endif' csrc/kernels/backend/symmetric.hpp
198
+ fi
199
+
200
if [ "$MODE" = "install" ]; then
201
echo "Installing $name into environment"
202
eval "$extra_env" uv pip install --no-build-isolation -vvv .