Hello, I am building a x86-uclibc initramfs images on a amd64-glibc machine. Here is my make.conf under $PORTAGE_CONFIGROOT: --- ACCEPT_KEYWORDS="x86" ARCH="x86" CFLAGS="-Os -pipe" CXXFLAGS="${CFLAGS}" CBUILD="x86_64-pc-linux-gnu" CHOST="i686-pc-linux-uclibc" CTARGET="i686-pc-linux-uclibc" GENTOO_MIRRORS="ftp://ftp.twaren.net/Linux/Gentoo/ ftp://ftp.ncnu.edu.tw/Linux/Gentoo/" INPUT_DEVICES="keyboard" MAKEOPTS="-j3" USE="x86 symlink" ---
Here is my xmerge script for compiling packages: --- #!/bin/bash SYSROOT=/usr/i686-pc-linux-uclibc PORTAGE_CONFIGROOT="${SYSROOT}" if [[ "$1" == "--root" ]] ; then ROOT="$2" shift 2 else ROOT="${SYSROOT}" fi export SYSROOT PORTAGE_CONFIGROOT ROOT emerge $* --- When I tried to cross-compile sys-libs/ss (./xmerge --root=somewhere -p ss), the following error message showed up: --- These are the packages that would be merged, in order: Calculating dependencies \ !!! All ebuilds that could satisfy "~sys-libs/com_err-1.40.2" have been masked. !!! One of the following masked packages is required to complete your request: - sys-libs/com_err-1.40.2 (masked by: ~amd64 keyword) For more information, see MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. (dependency required by "sys-libs/ss-1.40.2" [ebuild]) --- It looks like a portage bug since I already set ARCH=x86 in make.conf under $PORTAGE_CONFIGROOT, sys-libs/com_err should not be masked by ~amd64 keyword. Does anybody have nice workaround solution except unmaking sys-libs/com_err in $PORTAGE_CONFIGROOT/etc/portage/package.unmask? Thanks in advance. -siongui