gcc -c -O2 -pipe -fno-strict-aliasing -ansi -pedantic -Wno-return-type -w -fno-merge-constants -I../../../../../../programs/Xserver/hw/xfree86/common -I../../../../../../programs/Xserver/hw/xfree86/os-support -I. -I../../../../../../programs/Xserver/include -I../../../../../../exports/include/X11 -I../../../../../../include/extensions -I../../../../../../programs/Xserver/hw/xfree86/os-support/shared -I../../../../../.. -I../../../../../../exports/include -Dlinux -D__sparc__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP -DXCSECURITY -DTOGCUP -DXF86BIGFONT -DDPMSExtension -DPIXPRIV -DPANORAMIX -DRENDER -DRANDR -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH -DXFreeXDGA -DXvExtension -DXFree86LOADER -DXFree86Server -DXF86VIDMODE -DXvMCExtension -DSMART_SCHEDULE -DBUILDDEBUG -DXResExtension -DX_BYTE_ORDER=X_BIG_ENDIAN -DXORG_VERSION_CURRENT="(((6) * 10000000) + ((7) * 100000) + ((0) * 1000) + 0)" -DNDEBUG -DFUNCPROTO=15 -DNARROWPROTO -DUSESTDRES -DHAVE_SYSV_IPC -DXVENDORNAME='"The X.Org Foundation"' -DXVENDORNAMESHORT='"X.Org"' lnx_io.c lnx_io.c: In function `KIOCSRATE_ioctl_ok': lnx_io.c:128: error: structure has no member named `period' lnx_io.c:130: error: structure has no member named `period' lnx_io.c:131: error: structure has no member named `period' make[7]: *** [lnx_io.o] Error 1 make[7]: Leaving directory `/var/tmp/portage/xorg-x11-6.7.0-r1/work/xc/programs/Xserver/hw/xfree86/os-support/linux' make[6]: *** [linux] Error 2 make[6]: Leaving directory `/var/tmp/portage/xorg-x11-6.7.0-r1/work/xc/programs/Xserver/hw/xfree86/os-support' make[5]: *** [all] Error 2 make[5]: Leaving directory `/var/tmp/portage/xorg-x11-6.7.0-r1/work/xc/programs/Xserver/hw/xfree86' make[4]: *** [hw/xfree86] Error 2 make[4]: Leaving directory `/var/tmp/portage/xorg-x11-6.7.0-r1/work/xc/programs/Xserver' make[3]: *** [all] Error 2 make[3]: Leaving directory `/var/tmp/portage/xorg-x11-6.7.0-r1/work/xc/programs' make[2]: *** [all] Error 2 make[2]: Leaving directory `/var/tmp/portage/xorg-x11-6.7.0-r1/work/xc' make[1]: *** [World] Error 2 make[1]: Leaving directory `/var/tmp/portage/xorg-x11-6.7.0-r1/work/xc' make: *** [World] Error 2 !!! ERROR: x11-base/xorg-x11-6.7.0-r1 failed. !!! Function src_compile, Line 682, Exitcode 2 !!! (no error message) Portage 2.0.50-r8 (default-sparc64-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040420-r0, 2.6.7) ================================================================= System uname: 2.6.7 sparc64 sun4u Gentoo Base System version 1.4.16 distcc 2.13 sparc-unknown-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="sparc" AUTOCLEAN="yes" CFLAGS="-O2 -pipe" CHOST="sparc-unknown-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -pipe" DISTDIR="/mnt/raid0/gentoo/distfiles" FEATURES="ccache sandbox userpriv usersandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/mnt/raid0/download/portage" SYNC="rsync://192.168.0.1/gentoo-portage" USE="X Xaw3d aac aalib accessibility acl aim apache2 arts asterisk audiofile avi berkdb bidi bonobo brltty cap caps cddb cdr chroot clamav crypt cups curl dnd doc dv dvd dvdr emacs emacs-w3 encode esd expat ext-png ext-zlib extlib f77 faad fam fastcgi fbcon fbdev ffmpeg fftw flac flash fltk fluidsynth foomaticdb foreign-package freetype fullrpc gcl gd gdbm gif gimpprint glade glgd glut gnome gnomedb gnutls gphoto2 gpm gstreamer gtk gtk2 gtkhtml guile hardened hdf hdf5 idea imagemagick imap imlib imlib2 innodb ipv6 jabber java javamail javascript jbig jdepend jikes joystick jpeg junit justify kde kerberos krb4 ladcca lcms leim libg libgda libwww mad maildir makecheck mikmod mmap mng mono motif mozilla moznocompose moznoirc mozsvg mpeg mpeg4 msn mule multilib music mysql nas ncurses net nls nptl oav objc odbc offensive oggvorbis oldworld openal opengl operanom2 oscar oss pam parse-clocks pcre pda pdflib perl php png portaudio postgres prelude propolice pthreads python qhull qt readline ruby samba sasl sdk sdl serial slang slp sndfile snmp socks5 sox sparc speex spell sqlite ssl tcltk tcpd tetex theora tiff timidity transcode truetype type1 usb videos vim-with-x virus-scan wxwindows xchattext xemacs xine xml xml2 xmms xosd xv xvid yahoo zlib" I'll try to get to this bug later this week...
odd... here are lines 128-131 in lnx_io.c: kbdrate_s.rate = (rate + 5) / 10; /* must be integer, so round up */ kbdrate_s.delay = delay * HZ / 1000; /* convert ms to Hz */ if (kbdrate_s.rate > 50) kbdrate_s.rate = 50; where is gcc getting the 'period' from...
Take a look at http://dev.gentoo.org/~spyderous/xfree/patchsets/4.3.0/patch-2.1.26.18/9020_all_4.3.0-fix-2.5-headers-rate-period.patch It was pulled out of upstream and illustrates the point, I believe.
ah... ok... it looks like sparc is the only archs that actually use that chunk of code: /usr/src/linux/include $ grep -R kbd_rate * asm/kbio.h:struct kbd_rate { asm/kbio.h:#define KIOCSRATE _IOW('k', 40, struct kbd_rate) asm/kbio.h:#define KIOCGRATE _IOW('k', 41, struct kbd_rate) asm-sparc/kbio.h:struct kbd_rate { asm-sparc/kbio.h:#define KIOCSRATE _IOW('k', 40, struct kbd_rate) asm-sparc/kbio.h:#define KIOCGRATE _IOW('k', 41, struct kbd_rate) asm-sparc64/kbio.h:struct kbd_rate { asm-sparc64/kbio.h:#define KIOCSRATE _IOW('k', 40, struct kbd_rate) asm-sparc64/kbio.h:#define KIOCGRATE _IOW('k', 41, struct kbd_rate) linux/vt_kern.h:extern int kbd_rate(struct kbd_repeat *rep); 2.6.7 actually goes back to using 'rate' instead of 'period'. I'll try to find out what version it changed back in so we can update that conditional...
Created attachment 34565 [details, diff] patch to fix (-p1 in xc) I looked at 2.6.7, 2.6.0 2.5.60 2.4.49, 2.4.42, and 2.4.41... all the asm-sparc(64)?/knio.h's struct kbd_rate have rate and not period. The #define is to catch the rate in linux/kd.h being changed to period... but it messes up asm-sparc(64)'s kbio.h (notice the sparc conditional ifdef for that inclusion)... This patch fixes the error by moving the #undef to the correct place (effecting just the kbd_repeat).
Thanks for pointing this out again, Jeremy.
Created attachment 35860 [details, diff] sparc-x11.patch This one includes the xf86Sbus.h hunk as well.
Created attachment 38764 [details, diff] xorg-sparc26headers.patch Fixed patch to apply correctly. This is still needed for 6.8.0 RC3 compilation with 2.6 headers on sparc. Please include it in the next RC or -r1.
it'll be in 904
The patch is in and working fine. Upstream knows of the issue as well...