Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 80469 - emerge x11-misc/ttmkfdir-3.0.9-r2 fails with uclibc
Summary: emerge x11-misc/ttmkfdir-3.0.9-r2 fails with uclibc
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Embedded Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-02-02 07:41 UTC by Martin von Gagern
Modified: 2005-06-17 20:57 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin von Gagern 2005-02-02 07:41:35 UTC
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"
Comment 1 SpanKY gentoo-dev 2005-02-02 10:38:44 UTC
not a bug in ttmkfdir ... ive seen this before but i dont remember how we fixed it ...
Comment 2 Sander Knopper 2005-03-31 01:32:57 UTC
Still no idea how to fix this? I'm having the same issue.
Comment 3 Bas Haarman 2005-04-06 07:00:00 UTC
I'm also having the same problem.
Comment 4 Matthias Egger 2005-04-06 07:37:19 UTC
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
}
Comment 5 SpanKY gentoo-dev 2005-04-06 16:21:06 UTC
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 ...
Comment 6 Heath H Holcomb 2005-05-12 06:51:04 UTC
Me too.  When will the "fix" make it to portage (or will it)?

--
heath
xcable
Comment 7 Heath H Holcomb 2005-05-12 06:56:51 UTC
Matthias Egger's fix worked for me :)
Comment 8 René Rhéaume (a.k.a. repzilon, rener) 2005-05-30 17:20:42 UTC
It worked for me too.
Comment 9 Matthias Egger 2005-06-17 14:17:23 UTC
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
}
Comment 10 solar (RETIRED) gentoo-dev 2005-06-17 15:17:34 UTC
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}" ?
Comment 11 SpanKY gentoo-dev 2005-06-17 20:57:29 UTC
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