The x11-drm kernel module builds do not compile on ppc64-32ul because they try to use the userspace compile for kernel modules. Rather than duplicate the logic, we just fix the ebuild to use linux-mod_src_compile. Developing this revealed a bug in linux-mod_src_compile, so make sure you have at least revision 1.79 of linux-mod.eclass. Signed-off-by: Robin H. Johnson --- x11-drm-99999999.ebuild.orig 2008-03-21 16:40:37.000000000 -0700 +++ x11-drm-99999999.ebuild 2008-03-21 18:10:56.000000000 -0700 @@ -73,7 +73,7 @@ # Substitute new directory under /lib/modules/${KV_FULL} cd "${SRC_BUILD}" - sed -ie "s:/kernel/drivers/char/drm:/${PN}:g" Makefile + sed -i -e "s:/kernel/drivers/char/drm:/${PN}:g" Makefile src_unpack_os @@ -185,6 +185,18 @@ use video_cards_tdfx && \ VIDCARDS="${VIDCARDS} tdfx.${KV_OBJ}" fi + + # remove leading and trailing space + VIDCARDS="${VIDCARDS% }" + VIDCARDS="${VIDCARDS# }" + + if use kernel_linux; then + check_modules_supported + MODULE_NAMES="" + for i in $VIDCARDS ; do + MODULE_NAMES="${MODULE_NAMES}${i/.${KV_OBJ}}(x11-drm) " + done + fi } get_drm_build_dir() { @@ -251,20 +263,13 @@ src_compile_linux() { # This now uses an M= build system. Makefile does most of the work. - cd "${SRC_BUILD}" - unset ARCH - echo "emake M='${SRC_BUILD}' \ - LINUXDIR='${KERNEL_DIR}' \ - DRM_MODULES='${VIDCARDS}' \ - modules || die_error" - emake M="${SRC_BUILD}" \ - LINUXDIR="${KERNEL_DIR}" \ - DRM_MODULES="${VIDCARDS}" \ - modules || die_error + BUILD_TARGETS="modules" + BUILD_PARAMS="DRM_MODULES='${VIDCARDS}' LINUXDIR='${KERNEL_DIR}' M='${SRC_BUILD}'" + ECONF_PARAMS='' S="${SRC_BUILD}" linux-mod_src_compile if linux_chkconfig_present DRM then - echo "Please disable in-kernel DRM support to use this package." + ewarn "Please disable in-kernel DRM support to use this package." fi }