The new xextproto/libXext moved the X_ShmAttach symbol from XShm.h to shmproto.h. Not sure if this is an X11 bug or IcedTea that needs to fix it. Portage 2.2_rc46 (default/linux/amd64/2008.0, gcc-4.4.1-asneeded, glibc-2.10.1-r0, 2.6.31 x86_64) ================================================================= System uname: Linux-2.6.31-x86_64-Quad-Core_AMD_Opteron-tm-_Processor_2350-with-gentoo-2.0.1 Timestamp of tree: Tue, 13 Oct 2009 08:30:01 +0000 ccache version 2.4 [disabled] app-shells/bash: 4.0_p33 dev-java/java-config: 2.1.9-r1 dev-lang/python: 2.6.3 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.8.0_rc3 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.5.1 sys-apps/sandbox: 2.1 sys-devel/autoconf: 2.64 sys-devel/automake: 1.10.2, 1.11 sys-devel/binutils: 2.20.51.0.2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=barcelona -O2 -ftracer -pipe -ftree-vectorize -floop-block -g -ggdb -Wstrict-aliasing=2 -Wno-format-zero-length -Wformat=2 -Wno-error -Wno-pointer-sign -fno-strict-aliasing" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/init.d /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=barcelona -O2 -ftracer -pipe -ftree-vectorize -floop-block -g -ggdb -Wno-error -Wformat=2 -Wstrict-aliasing=2 -fvisibility-inlines-hidden" DISTDIR="/var/cache/distfiles" EMERGE_DEFAULT_OPTS="--alphabetical --with-bdeps=n" FEATURES="assume-digests autoaddcvs autoconfig collision-protect cvs distlocks fixpackages multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms sign splitdebug unmerge-logs unmerge-orphans userfetch userpriv usersandbox" FFLAGS="-march=barcelona -O2 -ftracer -pipe -ftree-vectorize -g -ggdb" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--sort-common" LINGUAS="en it" MAKEOPTS="-j12 -s" PKGDIR="/var/spool/portage/packages" PORTAGE_COMPRESS="" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=ChangeLog" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/media/repos/gentoo-x86-sync" PORTDIR_OVERLAY="/var/spool/portage/overlays/cross /var/spool/portage/overlays/lu_zero /var/spool/portage/overlays/eva /var/spool/portage/overlays/gnome-perf /var/spool/portage/overlays/layman/x11 /var/spool/portage/overlays/layman/gentopia /var/spool/portage/overlays/layman/dberkholz /var/spool/portage/overlays/layman/x11 /var/spool/portage/overlays/layman/desktop-effects /var/spool/portage/overlays/layman/tante_overlay /var/spool/portage/overlays/layman/emacs /var/spool/portage/overlays/layman/jokey /var/spool/portage/overlays/layman/java-overlay /var/spool/portage/overlays/layman/ruby /var/spool/portage/overlays/layman/graaff /var/spool/portage/overlays/layman/gechi /var/spool/portage/overlays/layman/gnome /media/repos/flame/flame-overlay /media/repos/flame/gentoo/ruby-scripts/ruby-ng-testbed /var/spool/portage/overlays/java-experimental" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 3dnowex 3dnowext S3TC a52 aac acl acpi4linux alsa amd64 apm audiofile avahi avi bluetooth bzip2 bzlib caps cdda cddb cdio cdr cjk cli crypt css cups custom-cflags custom-cxxflags dbus dlloader dnd dpms dri dts dvd dvdr dvdread emacs emboss fame ffmpeg flac foomaticdb gif gmp gnome gnome-keyring gnutls gpgme gphoto2 gtk gtk2 hal idn ieee1394 imlib imlib2 inotify ipv6 isdnlog ithreads java5 java6 joystick jpeg kdehiddenvisibility latex libnotify lm_sensors lx700 lzw lzw-tiff maildir matroska midi mmx mmx2 mmxext mng modules mozsvg mp3 mpeg mpeg4 mpm-threadpool mudflap multilib native network-cron nls no_wxgtk1 noantlr nobcel nobeanutils nobsh nocommonslogging nocommonsnet nodrm nojdepend nojsch nojython nolog4j nomotif nooro noregexp norhino noxalan noxerces nptl nptlonly nsplugin ogg oggvorbis openmp pam pch pdf pdflib pic pmount png policykit ppds pppd pulseaudio qemu-fast reflection rtc session snmp speex spell spl sse sse2 ssl ssse3 startup-notification stencil-buffer subversion svg svgz sysfs syslog tetex theora threads tiff truetype truetype-fonts type1 type1-fonts udev uncompressed-sounds unicode usb userlocales utf8 v4l v4l2 vhosts vorbis wxwindows x11vnc xcb xcomposite xorg xpm xv xvid zeroconf zlib zsh-completion zvbi" ALSA_CARDS="hda-intel usb-audio mpu401 ice1712" ALSA_PCM_PLUGINS="iec958 plug ioplug hooks empty route asym 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" APACHE2_MPMS="prefork" CAMERAS="ptp2" ELIBC="glibc" GENTOO_RUBYLIB="ruby18 ruby19 jruby" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en it" LIRC_DEVICES="kworld" QEMU_SOFTMMU_TARGETS="i386 x86_64" SANE_BACKENDS="snapscan" USERLAND="GNU" VIDEO_CARDS="radeon" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 206950 [details] Build log (bzip2)
What X does is final, we wont move it back, so for supporting new stuff icedtea needs to be patched...
so, what's the preferred solution? include shmproto.h?
I don't know what IceTea does with SHM, but here's a patch [1] that shows how to avoid conditional patches. @Diego, we don't yet have all the new protos and libraries for Xorg 7.5 and not all of them have proper blockers. Once we do all that, we'll need to organize portage-wide testing, bug reporting and patching before we can unmask those packages. I'll just add here for the record that the ABI is unchanged (for most libs) or backwards-compatible (for libXi for example). Thanks [1] http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=0a4c4c5fe8ebad2dd13f5770bd90a194eebb2890
Created attachment 206979 [details, diff] replace X_ShmAttach with 1 apply in src_prepare, should fix the problem (compiling now)
The patch worked for me. At least I could compile icedtea6-1.6.1-r1 until the end.
That patch is very wrong: the #includes need to be fixed, not the rest of the code. Putting such a patch in portage would be a big QA issue. Thanks
yes it's a hack, the other solution would be to *conditionally* include include <X11/extensions/shmproto.h> (which needs type definitions which i don't know where they come from) depending on which version is installed, and i don't know the icedtea6 build system enough to do this. the hack worked for me for over 2 weeks without problems now (runing eclipse, jboss, etc almost daily)
Created attachment 208672 [details, diff] condifional patch for includes This is a patch I'm going to use after testing. Includes shmproto.h and also Xmd.h with the needed definitions. It is applied conditionally if has_version >=x11-libs/libXext-1.1.1 which should be fine since the ABI is the same. Of course some autoconf checks would be better but I'm not so good with it :) seems fedora also doesn't have a general solution yet, they have a patch that's only used in F12 (which has new libxext) and looks worse to me than this one.
For an autoconf patch, I think it would need to check not the version of xextproto but libxext, as it used to include only extensions/Xshm.h from libxext which contained definition of X_ShmAttach. So if libxext is >=1.1.1 then it needs to check also for xextproto 7.1.1 (to have shmproto.h) and create some HAVE_ define. And all this matters in the code only when MITSHM is defined - didn't check what sets this.
Oh and meanwhile, the conditional 1.6.1-shmproto.patch was commited to 1.6.1-r1, so please svn up and test.
it's working, thx
Patch is upstream, albeit a bit different. We're done here.