lirc doesn't compile under the PPC 32-bit userland with a PPC64 kernel. The following is seen during configure: checking for X... disabled checking for getopt_long... yes checking for mktemp... yes checking for Linux kernel sources... :0: error: -m64 not supported in this configuration :0: error: -m64 not supported in this configuration /usr/src/linux-2.6.23-ps3-r1/scripts/gcc-version.sh: line 22: printf: #: invalid number /usr/src/linux-2.6.23-ps3-r1/scripts/gcc-version.sh: line 22: printf: #: invalid number /bin/sh: line 0: [: too many arguments :0: error: -m64 not supported in this configuration :0: error: -m64 not supported in this configuration /usr/src/linux-2.6.23-ps3-r1/scripts/gcc-version.sh: line 22: printf: #: invalid number /usr/src/linux-2.6.23-ps3-r1/scripts/gcc-version.sh: line 22: printf: #: invalid number /bin/sh: line 0: [: too many arguments :0: error: -m64 not supported in this configuration :0: error: -m64 not supported in this configuration /usr/src/linux-2.6.23-ps3-r1/scripts/gcc-version.sh: line 22: printf: #: invalid number /usr/src/linux-2.6.23-ps3-r1/scripts/gcc-version.sh: line 22: printf: #: invalid number /bin/sh: line 0: [: too many arguments /usr/src/linux/ checking for which drivers can be installed on this system... checking for caraca_init in -lcaraca_client... no checking iguanaIR.h usability... no checking iguanaIR.h presence... no Which doesn't stop it from proceeding to attempt to compile: Now enter 'make' and 'make install' to compile and install the package. make all-recursive make[1]: Entering directory `/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1' Making all in drivers make[2]: Entering directory `/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/drivers' make[3]: Entering directory `/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/drivers' make[3]: Nothing to be done for `all-am'. make[3]: Leaving directory `/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/drivers' make[2]: Leaving directory `/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/drivers' Making all in daemons make[2]: Entering directory `/var/tmp/portage/app-misc/lirc-0.8.3_pre1/work/lirc-0.8.3pre1/daemons' powerpc64-unknown-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -O2 -pipe -mcpu=970 -mtune=970 -mabi=altivec -MT irrecord.o -MD -MP -MF .deps/irrecord.Tpo -c -o irrecord.o irrecord.c irrecord.c:17:19: error: stdio.h: No such file or directory irrecord.c:18:20: error: stdlib.h: No such file or directory irrecord.c:22:23: error: sys/time.h: No such file or directory irrecord.c:23:19: error: time.h: No such file or directory irrecord.c:32:23: error: sys/types.h: No such file or directory irrecord.c:33:20: error: unistd.h: No such file or directory irrecord.c:34:20: error: string.h: No such file or directory irrecord.c:36:19: error: fcntl.h: No such file or directory irrecord.c:37:20: error: getopt.h: No such file or directory irrecord.c:38:24: error: sys/socket.h: No such file or directory irrecord.c:40:22: error: sys/stat.h: No such file or directory irrecord.c:41:20: error: sys/un.h: No such file or directory irrecord.c:42:19: error: errno.h: No such file or directory irrecord.c:44:20: error: signal.h: No such file or directory irrecord.c:45:20: error: syslog.h: No such file or directory My emerge --info: rich@hydra ~ $ emerge --info Portage 2.1.3.19 (default-linux/ppc/ppc64/2007.0/32bit-userland/desktop/970, gcc-4.1.2, glibc-2.6.1-r0, 2.6.23-ps3-r1 ppc64) ================================================================= System uname: 2.6.23-ps3-r1 ppc64 Cell Broadband Engine, altivec supported Timestamp of tree: Sat, 09 Feb 2008 07:16:01 +0000 app-shells/bash: 3.2_p17 dev-lang/python: 2.4.4-r6 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.9-r2 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.61-r1 sys-devel/automake: 1.8.5-r3, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.3.16 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.22-r2 ACCEPT_KEYWORDS="ppc" CBUILD="powerpc-unknown-linux-gnu" CFLAGS="-O2 -pipe -mcpu=970 -mtune=970 -mabi=altivec" CHOST="powerpc-unknown-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -pipe -mcpu=970 -mtune=970 -mabi=altivec" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/cell /usr/local/portage" SYNC="rsync://gorgon/gentoo-portage" USE="X acl alsa altivec arts bash-completion berkdb bitmap-fonts bzip2 cairo cdr cli cracklib crypt dbus dri dts dvd dvdr eds emboss encode esd fam fbcon firefox fortran gcc64 gdbm gif gnome gpm gstreamer gtk hal iconv ipv6 isdnlog jpeg kde ldap lirc mad midi mikmod mp3 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp oss pam pcre perl png ppc pppd python qt3 qt3support qt4 quicktime readline reflection sdl session spell spl ssl tcpd truetype truetype-fonts type1-fonts unicode vim-syntax vorbis xml xorg xv zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter 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="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIRC_DEVICES="usb_uirt_raw" USERLAND="GNU" VIDEO_CARDS="dummy fbdev mach64 mga nv r128 radeon sisusb v4l" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS Additional info may also be found in the forums here: http://forums.gentoo.org/viewtopic.php?p=4839584#4839584
This is a somewhat common problem with the ppc64 32UL. While the kernel is 64bit, the userland is 32bit. Some Makefiles or configure processes do a uname and draw an assumption from there. Does this package compile userland or kernel code or both?
It compiles a daemon (I imagine this would be the userland portion) and in some cases it will compile kernel modules. For example, the lirc-serial device would compile a kernel module (lirc-serial). The usb-uirt-raw device (which I am using) would not, as it is using the ftdi-sio kernel module already built into the kernel. It also compiles a client library, which would *definately* be 32-bit userland.
The lirc package make-system is from hell! I hope they get near using default kernel-module makefiles soon (as they try to get lirc somehow into the kernel).
I poked at this again. Given your input, I am wondering about the following. There seems to be a lot of configure input variables. I see ones for cross compiling etc. I'm wondering if you have bumped into one that would set the compiler for the kernel stuff. That is to say, can we ./configure and set the userland gcc and also set a different gcc for the kernel. Grasping at straws here. Also, I don't have a thorough understanding of the package and it's uses, but can we disable kernel module building (for serial) and only support usb as described in comment #2 ? something like if arch is ppc64 and tcarch is ppc64?
(In reply to comment #4) > I poked at this again. Given your input, I am wondering about the following. > There seems to be a lot of configure input variables. I see ones for cross > compiling etc. I'm wondering if you have bumped into one that would set the > compiler for the kernel stuff. That is to say, can we ./configure and set the > userland gcc and also set a different gcc for the kernel. Grasping at straws > here. > > Also, I don't have a thorough understanding of the package and it's uses, but > can we disable kernel module building (for serial) and only support usb as > described in comment #2 ? something like if arch is ppc64 and tcarch is > ppc64? > that should be arch is ppc and tcarch is ppc64
could someone with a 32bit userland please test lirc again? 2008.0 profiles fixed the issues I had on 64bit UL.
still fails. the exact same configure command outside of portage works as expected. the error is a different one though: C compiler cannot create executables.
I masked this package in arch/powerpc/ppc64/32ul/