Home | Docs | Forums | Lists | Bugs | Planet | Store | GMN | Get Gentoo!
View Bug Activity | Format For Printing | XML | Clone This Bug
games-misc/bsd-games-2.17-r1 don't compile, because included include file include/stdio.h is not locked and is defining function: #include <bsd-games.h> #include_next <stdio.h> #ifndef HAVE_fgetln extern char *fgetln(FILE *stream, size_t *len); #endif Error message: g++ -O2 -mcpu=athlon -march=i686 -fomit-frame-pointer -pipe -Wall -W -Wpointer-arith -Wcast-align -Wcast-qual -Wwrite-strings -Iinclude -Idab -c dab/box.cc -o dab/box.o In file included from /usr/include/wchar.h:37, from /usr/include/curses.h:297, from dab/box.cc:48: include/stdio.h:38: error: previous declaration of `char* fgetln(FILE*, size_t*)' with C++ linkage include/stdio.h:38: error: conflicts with new declaration with C linkage distcc[32148] ERROR: compile dab/box.cc on 127.0.0.1 failed make: *** [dab/box.o] Error 1 make: *** Waiting for unfinished jobs.... !!! ERROR: games-misc/bsd-games-2.17-r1 failed. !!! Function src_compile, Line 51, Exitcode 2 !!! emake failed !!! If you need support, post the topmost build error, NOT this status message. Portage 2.0.54 (default-linux/x86/2005.0, gcc-3.3.5, glibc-2.3.4.20040808-r1, 2.6.13-gentoo-r3 i686) ================================================================= System uname: 2.6.13-gentoo-r3 i686 AMD Duron(tm) Processor Gentoo Base System version 1.6.13 distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] dev-lang/python: 2.3.5-r2 sys-apps/sandbox: 1.2.11 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.4.3-r4, 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -mcpu=athlon -march=i686 -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /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/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/afs/C /etc/afs/afsws /etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mcpu=athlon -march=i686 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distcc distlocks sandbox sfperms strict" GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo http://ftp.sh.cvut.cz/MIRRORS/gentoo/gentoo/ http://www.mirror.ac.uk/sites/www.ibiblio.org/gentoo/ http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 3dnow 3dnowex X Xaw3d aalib afs alsa apache2 apm arts audiofile avi bash-completion berkdb bitmap-fonts bzip2 caps cdr crypt cups curl dga divx4linux doc dri dts dvd emboss encode erandom esd ethereal exif expat ffmpeg flac foomaticdb fortran fpx gcj gd gdbm ggi gif glut gmp gpm graphviz gstreamer gtk gtk2 imagemagick imlib innodb ipv6 isdnlog java jbig jpeg lcms lesstif libcaca libg++ libwww live lua lzo mad mailwrapper matroska mbox mcal memlimit mhash mikmod ming mmx mng motif mozilla mp3 mpeg multislot mysql ncurses network nls ogg oggvorbis opengl oss pam pcre pdflib perl php pic png pppd python qt quicktime readline real recode ruby samba sdl slang snmp spell sqlite sse ssl svga tcltk tcpd tetex theora tiff truetype truetype-fonts type1-fonts udev unicode usb userlocales vhosts videos vorbis wmf xgetdefault xml xml2 xmms xosd xv xvid zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
Isn't it as simple as adding -DHAVE_fgetln on the gcc/g++ command line? Or tweaking autoconf or whatever to test for that? /me doesn't own an amd64 system and so can't test this
But I don't have fgetln. I really need the one provided by bsd-games itself. Problem is that this include file is included two-times (also, one time in C++ and one time in C content, which probably isn't good thing too) and in both cases define this function, while it should do it only first time. Remember, this is bsd-games file, not the system one. Why do you think you need amd64 machine ? It's from Duron, so it's normal i386. I have two machines (well, four in fact, plus one in work and one in dad's work), not speaking about fact that I use i386 system on amd64 most of time. If you can't reproduce it, it's probably because I have older libc.
it isnt an amd64 thing, it's a wide ncurses thing ... wide ncurses include stdio.h and the local version is pulled in instead the first time the code thinks it is an external C++ func, the second time the code thinks it is an external C func fix is to mark the prototype as a C func