Attempting to emerge dev-dotnet/pnet-0.6.2, the ebuild fails while compiling hb_gc.c, with the following messages: In file included from thr_defs.h:35, from hb_gc.c:25: pt_defs.h:89: error: syntax error before "_ILRWLock" Reproducible: Always Steps to Reproduce: 1. emerge pnet # using ~86 Actual Results: gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../libgc/include -I../include -DCSCC_LIB_PREFIX=\"/usr/lib\" -DCSCC_BIN_PREFIX=\"/usr/bin\" -DCSCC_DATA_PREFIX=\"/usr/share\" -DCSCC_HOST_TRIPLET=\"i686-pc-linux-gnu\" -mcpu=athlon-xp -O2 -pipe -Wall -c hb_gc.c In file included from thr_defs.h:35, from hb_gc.c:25: pt_defs.h:89: error: syntax error before "_ILRWLock" pt_defs.h:89: warning: type defaults to `int' in declaration of `_ILRWLock' pt_defs.h:89: warning: data definition has no type or storage class make[1]: *** [hb_gc.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/pnet-0.6.2/work/pnet-0.6.2/support' make: *** [all-recursive] Error 1 !!! ERROR: dev-dotnet/pnet-0.6.2 failed. !!! Function src_compile, Line 20, Exitcode 2 !!! (no error message) Expected Results: Should have compiled successfully. Portage 2.0.49-r20 (default-x86-1.4, gcc-3.3.2, glibc-2.3.3_pre20031222-r0, 2.6.0-gentoo) ================================================================= System uname: 2.6.0-gentoo i686 AMD Athlon(tm) XP 2200+ Gentoo Base System version 1.4.3.12 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-mcpu=athlon-xp -O2 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /opt/tomcat/conf /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /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/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-mcpu=athlon-xp -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox usersandbox" GENTOO_MIRRORS="ftp://mirror.iawnet.sandia.gov/pub/gentoo/ http://gentoo.seren.com/gentoo ftp://csociety-ftp.ecn.purdue.edu/pub/gentoo/" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X Xaw3d acl acpi acpi4linux alsa amd antlr apache2 apm arts artswrappersuid avi berkdb bonobo cdr crypt cups directfb dnd doc dv dvd dvdr encode esd ethereal evo fbcon fbdev foomaticdb foreign-package foreign-sysvinit freetds gb gd gd-external gdbm gif ginac gnome gnomedb gpm gstreamer gtk gtk2 gtkhtml guile imap imlib innodb ipv6 java jikes jpeg junit kde kerberos ldap libg++ libgda libwww mad maildir mbox mdb mikmod mmx motif mozilla moznoirc moznomail mpeg mysql ncurses nls nptl oci8 odbc ofx oggvorbis opengl oss pam pda pdflib perl pg-hier pic plotutils png postgres ppds python qt quicktime radeon readline ruby ruby18 samba sasl sdk sdl slang slp snmp spell sse ssl svga tcltk tcpd tetex tiff truetype type1 usb wmf wxwindows x86 xml xml2 xmms xv zeo zlib"
This is a threading related problem. pnet disables pthreads by default except on configurations that are known to work. I just had some other guys (using various glibc snapshots from December, including the one you are using) testing pnet and it works for them, except for the one configuration where glibc was compiled with +nptl. I will look into this tomorrow, I don't expect it to be too hard to fix.
ok, could you please try the attached ebuild and place the .diff in your dev-dotnet/pnet/files directory ? The diff just removes the lines that cause the error (which don't seem to work out), but they aren't necessarily needed. I tried a test case that uses System.Threading in general (can be found here: http://wiki.dotgnu.org/PortableNet/Threads) and something that makes use of System.Threading.Monitor (the code in question) and both worked properly. I don't want to commit this (yet), at least until I verified that removing those lines doesn't break anything new. But again, from what it currently looks like, you should be perfectly happy with this work-around. If you have any code that makes use of threading and you could post your results here that would be perfect, of course.
Created attachment 23211 [details] pnet ebuild which uses the pt_defs.h patch
Created attachment 23212 [details, diff] pt_defs.h diff
Created attachment 23213 [details, diff] pt_defs.h diff noticed a little diff-related quirk in the old diff, use this one :)
Rainer, your modified ebuild and patch work for me. Thanks for your prompt response!
if there are no objections I will update the ebuild in the tree tomorrow to apply that diff if nptl is in USE (since it only breaks if glibc was built with +nptl, so I don't like to apply the patch on all systems on all platforms etc. even if it shouldn't have any downsides).
committed. If no problems arise with this patch I expect to get all the 0.6.2 stuff into stable anytime soon.