emerging ttmkfdir fails on my uclibc system because of different throw declarations for pthread_atfork(void (*)(), void (*)(), void (*)()) Reproducible: Always Steps to Reproduce: 1. start from stage3-x86-uclibc-2004.3.tar.bz2 2. emerge uclibc x11-xorg Actual Results: g++ -Wall -pedantic -I/usr/include/freetype2 -pipe -mcpu=c3 -c parser.cpp -fPIC -DPIC -o .libs/parser.o In file included from /usr/lib/gcc-lib/i386-pc-linux-uclibc/3.3.4/include/g++-v3/i386-pc-linux-uclibc/bits/gthr-default.h:37, from /usr/lib/gcc-lib/i386-pc-linux-uclibc/3.3.4/include/g++-v3/i386-pc-linux-uclibc/bits/gthr.h:98, from /usr/lib/gcc-lib/i386-pc-linux-uclibc/3.3.4/include/g++-v3/i386-pc-linux-uclibc/bits/c++io.h:37, from /usr/lib/gcc-lib/i386-pc-linux-uclibc/3.3.4/include/g++-v3/bits/fpos.h:44, from /usr/lib/gcc-lib/i386-pc-linux-uclibc/3.3.4/include/g++-v3/iosfwd:49, from /usr/lib/gcc-lib/i386-pc-linux-uclibc/3.3.4/include/g++-v3/ios:44, from /usr/lib/gcc-lib/i386-pc-linux-uclibc/3.3.4/include/g++-v3/ostream:45, from /usr/lib/gcc-lib/i386-pc-linux-uclibc/3.3.4/include/g++-v3/iostream:45, from encoding.l:2: /usr/include/pthread.h:676: error: declaration of `int pthread_atfork(void (*)(), void (*)(), void (*)())' throws different exceptions /usr/include/unistd.h:982: error: than previous declaration `int pthread_atfork(void (*)(), void (*)(), void (*)()) throw ()' g++ -Wall -pedantic -I/usr/include/freetype2 -pipe -mcpu=c3 -c builtin.cpp -o builtin.o >/dev/null 2>&1 encoding.l: In function `int yylex(char*, Encodings_t&)': encoding.l:111: warning: comparison between signed and unsigned integer expressions encoding.l:143: warning: comparison between signed and unsigned integer expressions encoding.l:147: warning: comparison between signed and unsigned integer expressions /usr/lib/gcc-lib/i386-pc-linux-uclibc/3.3.4/include/g++-v3/bits/stl_map.h: At top level: parser.cpp:1310: warning: `void yyunput(int, char*)' defined but not used make: *** [parser.o] Error 1 Expected Results: emerge ttmkfdir and xorg-x11 Portage 2.0.51-r2 (uclibc/x86, gcc-3.3.4, uclibc-0.9.26-r7, 2.6.10-gentoo-r5 i686) ================================================================= System uname: 2.6.10-gentoo-r5 i686 Intel(R) Xeon(TM) CPU 2.40GHz Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.14.90.0.8-r1 Headers: sys-kernel/linux-headers-2.4.21-r1 Libtools: sys-devel/libtool-1.5.2-r5 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-Os -pipe -mcpu=c3" CHOST="i386-pc-linux-uclibc" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/local/kde/3.2/share/config /usr/local/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/terminfo /etc/env.d" CXXFLAGS="-Os -pipe -mcpu=c3" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig buildpkg ccache distlocks nodoc noinfo noman sandbox sfperms strict" GENTOO_MIRRORS="http://ftp.uni-erlangen.de/pub/mirrors/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/local/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow berkdb make-busybox-symlinks mmx ncurses perl png python readline savedconfig ssl uclibc zlib"
not a bug in ttmkfdir ... ive seen this before but i dont remember how we fixed it ...
Still no idea how to fix this? I'm having the same issue.
I'm also having the same problem.
According to the Following Mail on the Uclibc Mailinglist, the Problem resides on using long long data types. http://www.uclibc.org/lists/uclibc/2005-January/011023.html I tried to compile the package by Hand by removing the -pedantic Option on the Makefile and compilation did work. So here is my modified ttmkfdir-3.0.9-r2.ebuild wich removes the -pedantic Option from the Makefile if you set USE="uclibc". Home it helps some others. -------------------------------------------------------------------------------- ttmkfdir-3.0.9-r2.ebuild -------------------------------------------------------------------------------- # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/x11-misc/ttmkfdir/ttmkfdir-3.0.9-r2.ebuild,v 1.16 2005/02/08 02:46:34 spyderous Exp $ inherit eutils flag-o-matic toolchain-funcs DESCRIPTION="A utility to create a fonts.scale file from a set of TrueType fonts" HOMEPAGE="http://www.joerg-pommnitz.de/TrueType/xfsft.html" SRC_URI="mirror://gentoo/${P}.tar.bz2" LICENSE="as-is" SLOT="0" KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 s390 sparc x86" IUSE="uclibc" RDEPEND="virtual/libc sys-libs/zlib >=media-libs/freetype-2.0.8" DEPEND="${RDEPEND} >=sys-devel/flex-2.5.4a-r5 sys-devel/libtool" src_unpack() { unpack ${A} cd ${S} epatch ${FILESDIR}/${P}-cpp.patch epatch ${FILESDIR}/${P}-zlib.patch epatch ${FILESDIR}/${P}-gcc34.patch epatch ${FILESDIR}/${P}-encoding.patch # fix pack to work with new freetype include scheme (#44119) epatch ${FILESDIR}/${P}-freetype_new_includes.patch use_specific_hacks } src_compile() { filter-flags -O -O? -foptimize-sibling-calls -fstack-protector emake \ CXX="$(tc-getCXX)" \ OPTFLAGS="${CFLAGS}" \ DEBUG="" \ || die "emake failed" } src_install() { exeinto /usr/X11R6/bin doexe ttmkfdir || die "doexe failed" dodoc README } use_specific_hacks() { if use uclibc; then sed -i -e 's:CXXFLAGS=-Wall -pedantic:CXXFLAGS=-Wall:' ${S}/Makefile fi }
ive removed the pthread_atfork() definition from unistd.h upstream ... i dont see a prob with cutting the patch and adding it to our uclibc-0.9.27 ...
Me too. When will the "fix" make it to portage (or will it)? -- heath xcable
Matthias Egger's fix worked for me :)
It worked for me too.
Same situation with ttmkfdir-3.0.9-r3 as with ttmkfdir-3.0.9-r2. It crashes with uclibc because of the use of -pedantic mode while compiling. Here is the new changed ebuild for ttmkfdir-3.0.9-r3 i use, which removes the -pedantic Option if you have set USE to uclibc. Hope it help's some others. -------------------------------------------------------------------------------- ttmkfdir-3.0.9-r3.ebuild -------------------------------------------------------------------------------- # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/x11-misc/ttmkfdir/ttmkfdir-3.0.9-r3.ebuild,v 1.1 2005/05/16 14:46:32 seemant Exp $ inherit eutils flag-o-matic toolchain-funcs DESCRIPTION="A utility to create a fonts.scale file from a set of TrueType fonts" HOMEPAGE="http://www.joerg-pommnitz.de/TrueType/xfsft.html" SRC_URI="mirror://gentoo/${P}.tar.bz2" LICENSE="as-is" SLOT="0" KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 s390 sparc x86" IUSE="uclibc" RDEPEND="virtual/libc sys-libs/zlib >=media-libs/freetype-2.0.8" DEPEND="${RDEPEND} >=sys-devel/flex-2.5.4a-r5 sys-devel/libtool" src_unpack() { unpack ${A} ; cd ${S} epatch ${FILESDIR}/${P}-cpp.patch epatch ${FILESDIR}/${P}-zlib.patch epatch ${FILESDIR}/${P}-gcc34.patch epatch ${FILESDIR}/${P}-encoding.patch # fix pack to work with new freetype include scheme (#44119) epatch ${FILESDIR}/${P}-freetype_new_includes.patch # Install into regular filesystem, not /usr/X11R6 hierarchy sed -i "s:/usr/X11R6:/usr:" README ttmkfdir.cpp use_specific_hacks } src_compile() { filter-flags -O -O? -foptimize-sibling-calls -fstack-protector emake \ CXX="$(tc-getCXX)" \ OPTFLAGS="${CFLAGS}" \ DEBUG="" \ || die "emake failed" } src_install() { into /usr dobin ttmkfdir || die "doexe failed" dodoc README } use_specific_hacks() { if use uclibc; then sed -i -e 's:CXXFLAGS=-Wall -pedantic:CXXFLAGS=-Wall:' ${S}/Makefile fi }
IUSE=uclibc has been depreciated in favor of the automatic expanded variable elibc_uclibc which gets auto set by the profile and is USE='-*' safe. CXX="$(tc-getCXX)" \ OPTFLAGS="${CFLAGS}" \ Should this not be OPTFLAGS="${CXXFLAGS}" ?
actually i dont think we need to screw with ttmkfdir i removed the pthread_atfork() prototype from unistd.h so there shouldnt be anymore collisions