When cross-compiling (and perhaps normally), groff-1.20.1 and -r1 fails to build its own documentation in doc/. Reproducible: Always Steps to Reproduce: Actual Results: Output coming in the next comment. ~ # cross-emerge --info Portage 2.1.6.7 (default/linux/arm/2008.0, gcc-4.3.2, glibc-2.9_p20081201-r1, 2.6.24-19-xen x86_64) ================================================================= System uname: Linux-2.6.24-19-xen-x86_64-Dual-Core_AMD_Opteron-tm-_Processor_2214-with-glibc2.0 Timestamp of tree: Thu, 05 Feb 2009 14:05:01 +0000 distcc 3.1 i686-pc-linux-gnu [enabled] app-shells/bash: 3.2_p48 dev-lang/python: 2.4.4-r14 dev-python/pycrypto: 2.0.1-r7 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.4.1-r1 sys-apps/sandbox: 1.3.2 sys-devel/autoconf: 2.63 sys-devel/automake: 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r4 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="arm ~arm" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fomit-frame-pointer -Os -pipe" CHOST="armv7a-softfloat-linux-gnueabi" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d" CTARGET="armv7a-softfloat-linux-gnueabi" CXXFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fomit-frame-pointer -Os -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--buildpkg" FEATURES="ccahe distcc distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="" LDFLAGS="-Wl,-O1 -L/usr/armv7a-softfloat-linux-gnueabiusr/lib -L/usr/armv7a-softfloat-linux-gnueabilib" MAKEOPTS="-j10" PKGDIR="/usr/local/pandora/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="" USE="arm berkdb bzip2 cli crypt cups fortran gdbm gpm ipv6 isdnlog midi mudflap ncurses nptl nptlonly openmp pcre perl pppd python readline reflection session spl ssl sysfs tcpd unicode xorg zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse touchscreen" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="fbdev" Unset: CPPFLAGS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 181033 [details] The failed compile log
what version of groff is on your host ?
sys-apps/groff-1.19.2-r3
so install 1.20.1 and see if it fixes things
Created attachment 184831 [details, diff] Check if host and target version matches. Cross-compiling groff requires that the host has the same version of groff installed. This patch checks if the host version of groff matches the version to emerge. If this is not the case, it errors out.
Tested on target armv4tl-softfloat-linux-gnueabi host amd64 and in the Openmoko overlay.
You might need to env LC_ALL=C before calling groff to ensure the grep always returns the proper results.
Sorry, guys, for not responding sooner. I'll test this new patch ASAP if you still need me to. I've been rebuilding my crossdev environment so it's cleaner and less bug-prone. I'll let you all know the moment I have results.
what exactly is needed on the host ? if it's just a binary or two, we can do like python where we build up host groff a little for cross-compilers and use that rather than needing the user to upgrade their host system.
As the failing command is: GROFF_COMMAND_PREFIX=''; export GROFF_COMMAND_PREFIX; GROFF_BIN_PATH=; \ export GROFF_BIN_PATH; sed -e "s;@VERSION@;1.20.1;" pic.ms | /usr/bin/groff I would guess that groff is needed to fix it. Will look deeper into the issue, but if someone beats me to it, I'm fine. ;-)
yes, but i dont know what files groff also uses during its processing steps. like perhaps things in /usr/share/groff/$PV/
Ok it seems groff links in a lot of packages, so it would be quite hard to compile a minimal version using the host compiler... I think the best thing to do is to check the host version as proposed here, else the build process would die silently.
I think this issue persists in groff-1.21, just differently: checking whether we are cross compiling... configure: error: in `/var/tmp/portage-powerpc64-unknown-linux-gnu/portage/sys-apps/groff-1.21/work/groff-1.21/src/libs/gnulib': configure: error: cannot run C compiled programs. If you meant to cross compile, use `--host'.
(In reply to comment #13) > I think this issue persists in groff-1.21, just differently: > checking whether we are cross compiling... configure: error: in > `/var/tmp/portage-powerpc64-unknown-linux-gnu/portage/sys-apps/groff-1.21/ > work/groff-1.21/src/libs/gnulib': > configure: error: cannot run C compiled programs. > If you meant to cross compile, use `--host'. Filed that as bug #432062
Closing as obsolete because version bug was filed against is no longer available in Gentoo repository. Please re-open if you are still able to reproduce against latest available version.