View previous topic :: View next topic |
Author |
Message |
Lovechild Advocate
Joined: 17 May 2002 Posts: 2858 Location: Århus, Denmark
|
Posted: Wed Dec 10, 2003 12:52 pm Post subject: |
|
|
robmoss2k wrote: | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13134
Woo!
Looks like it's been fixed. I'm currently in the midst of setting up an openMosix cluster right now, but rest assured I will be testing this as soon as I've finished
Better still, I'm working on an ebuild which basically creates a wrapper script for gcc, which allows the use of gcc-acovea to determine the optimal CFLAGS for each file in the package and then compile that file with those CFLAGS (or CXXFLAGS, obviously) - which means some seriously ludicrous optimization... |
AWESOME... I LOVE THAT IDEA..
Only one thing, could one do a sort of mask file for the flags it's allowed to try, for stability mainly - Like -malign-double which can really mess stuff up.
Also you rock... pm me when you need testers, I have a machine and I'm not afraid to break it. |
|
Back to top |
|
|
robmoss Retired Dev
Joined: 27 May 2003 Posts: 2634 Location: Jesus College, Oxford
|
Posted: Thu Dec 11, 2003 3:26 pm Post subject: |
|
|
Lovechild wrote: | AWESOME... I LOVE THAT IDEA..
Only one thing, could one do a sort of mask file for the flags it's allowed to try, for stability mainly - Like -malign-double which can really mess stuff up.
Also you rock... pm me when you need testers, I have a machine and I'm not afraid to break it. |
I think that this probably shouldn't be an issue. As far as I'm aware, the dangerous flags will cause a segfault when running or compilation error when compiling if they shouldn't be used, so everything "just works." Or am I missing something a little more subtle here? _________________ Reality is for those who can't face Science Fiction.
emerge -U will kill your Gentoo
ecatmur, Lord of Portage Bash Scripts |
|
Back to top |
|
|
mark_ar n00b
Joined: 17 Nov 2002 Posts: 13 Location: Madison, WI
|
Posted: Sun Dec 14, 2003 4:18 am Post subject: Success with gcc 3.4 and glibc 2.3.2! |
|
|
I have been able to successfully compile glibc 2.3.2 and glibc cvs (12/13/2003) with gcc 3.4 (12/13/2003 cvs). I can post the gcc 3.4 ebuild if anyone is interested, but it is relatively easy to create. I took gcc-3.3.2-r3.ebuild, renamed it to gcc-3.4.20031213.ebuild and commented out all the patches that are applied. It builds without any problems.
The only modification required to build glibc 2.3.2 with gcc 3.4 is adding the option "-fno-unit-at-a-time" to CFLAGS and CXXFLAGS. See http://gcc.gnu.org/ml/gcc/2003-11/msg01291.html for more information. The cvs version of glibc (12/13/2003) does not seem to require this option. It builds without any problems using gcc 3.4. |
|
Back to top |
|
|
robmoss Retired Dev
Joined: 27 May 2003 Posts: 2634 Location: Jesus College, Oxford
|
Posted: Sun Dec 14, 2003 9:12 am Post subject: Re: Success with gcc 3.4 and glibc 2.3.2! |
|
|
mark_ar wrote: | I have been able to successfully compile glibc 2.3.2 and glibc cvs (12/13/2003) with gcc 3.4 (12/13/2003 cvs). I can post the gcc 3.4 ebuild if anyone is interested, but it is relatively easy to create. I took gcc-3.3.2-r3.ebuild, renamed it to gcc-3.4.20031213.ebuild and commented out all the patches that are applied. It builds without any problems.
The only modification required to build glibc 2.3.2 with gcc 3.4 is adding the option "-fno-unit-at-a-time" to CFLAGS and CXXFLAGS. See http://gcc.gnu.org/ml/gcc/2003-11/msg01291.html for more information. The cvs version of glibc (12/13/2003) does not seem to require this option. It builds without any problems using gcc 3.4. |
Ah, wonderful, I was hoping somebody would test that some time soon before I got the chance! GCC had a problem up until Wednesday whereby the visibility attribute was ignored - that's now been fixed. glibc had the problem involving the -fno-unit-at-a-time flag on three or four files up until a few days ago, which has now also been fixed.
Now, let's see if compiling an entire system from scratch using CVS GCC and glibc works... _________________ Reality is for those who can't face Science Fiction.
emerge -U will kill your Gentoo
ecatmur, Lord of Portage Bash Scripts |
|
Back to top |
|
|
fca Guru
Joined: 22 Feb 2003 Posts: 346 Location: Netherlands
|
Posted: Sun Dec 14, 2003 11:09 am Post subject: |
|
|
I've been running with gcc 3.4 for some time now. Problems used to be: glibc, kernel, mplayer, arts and some kde packages. glibc, kernel and mplayer are solved by setting the -fno-unit-at-a-time. Arts was fixed some time ago to build, but it still segfaults all the time. Kdebase was fixed using some pointers from this mail and adding some more fixes.
Patch for recent kdebase from cvs: here. Submitted to Dirk Mueller, but no reaction from him as of yet.
Kdemultimedia from cvs fails, due to this bug
Kdenetwork from cvs also fails, still tracking that down.
edit: Also, have you all seen the make profiledbootstrap option? See the bottom of Build manual
edit2: got a headache from the layout of my own post |
|
Back to top |
|
|
norvillebarnes Tux's lil' helper
Joined: 28 Jun 2003 Posts: 116 Location: Sudbury, ON Canada
|
Posted: Mon Dec 15, 2003 1:06 am Post subject: |
|
|
mark_ar, could you please post your ebuild, or a link? I've been mucking with the 3.3.2-r3 ebuild, but I'm a little lacking in ebuild hacking skills. Just when I think i've got all the patches commented out, portage tries to download another one.
Thanks in advance, as I can't wait to bork my system.
Al |
|
Back to top |
|
|
mark_ar n00b
Joined: 17 Nov 2002 Posts: 13 Location: Madison, WI
|
Posted: Mon Dec 15, 2003 2:58 am Post subject: gcc 3.4 ebuild |
|
|
The following is my gcc 3.4 ebuild. It works great on my system, but I won't guarantee that it will work at all on yours. I would highly suggest using it in a chroot environment with a stage3 tarball. Do not use it on your main system. Only the C and C++ frontends are built in my ebuild. Uncomment the appropriate lines to build the other frontends.
Usage Directions
1. cvs -d :pserver:anoncvs@gcc.gnu.org:/cvsroot/gcc login
2. cvs -d :pserver:anoncvs@gcc.gnu.org:/cvsroot/gcc -z 9 co gcc
3. cp -R gcc gcc-3.4.20031213
4. tar -cjf gcc-3.4.20031213.tar.bz2 gcc-3.4.20031213
5. cp gcc-3.4.20031213.tar.bz2 /usr/portage/distfiles
6. cp gcc-3.4.20031213.ebuild /usr/portage/sys-devel/gcc
7. ebuild /usr/portage/sys-devel/gcc/gcc-3.4.20031213.ebuild digest
gcc-3.4.20031213.ebuild
Code: |
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /home/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.3.2-r3.ebuild,v 1.5 2003/12/11 14:58:49 gmsoft Exp $
IUSE="static nls bootstrap java build X multilib"
inherit eutils flag-o-matic libtool
# Compile problems with these (bug #6641 among others)...
#filter-flags "-fno-exceptions -fomit-frame-pointer -fforce-addr"
# Recently there has been a lot of stability problem in Gentoo-land. Many
# things can be the cause to this, but I believe that it is due to gcc3
# still having issues with optimizations, or with it not filtering bad
# combinations (protecting the user maybe from himeself) yet.
#
# This can clearly be seen in large builds like glibc, where too aggressive
# CFLAGS cause the tests to fail miserbly.
#
# Quote from Nick Jones <carpaski@gentoo.org>, who in my opinion
# knows what he is talking about:
#
# People really shouldn't force code-specific options on... It's a
# bad idea. The -march options aren't just to look pretty. They enable
# options that are sensible (and include sse,mmx,3dnow when apropriate).
#
# The next command strips CFLAGS and CXXFLAGS from nearly all flags. If
# you do not like it, comment it, but do not bugreport if you run into
# problems.
#
# <azarah@gentoo.org> (13 Oct 2002)
strip-flags
# gcc produce unstable binaries if compiled with a different CHOST.
[ "${ARCH}" = "hppa" ] && export CHOST="hppa-unknown-linux-gnu"
# Theoretical cross compiler support
[ ! -n "${CCHOST}" ] && export CCHOST="${CHOST}"
LOC="/usr"
MY_PV="`echo ${PV} | awk -F. '{ gsub(/_pre.*|_alpha.*/, ""); print $1 "." $2 }'`"
MY_PV_FULL="`echo ${PV} | awk '{ gsub(/_pre.*|_alpha.*/, ""); print $0 }'`"
LIBPATH="${LOC}/lib/gcc-lib/${CCHOST}/${MY_PV_FULL}"
BINPATH="${LOC}/${CCHOST}/gcc-bin/${MY_PV}"
DATAPATH="${LOC}/share/gcc-data/${CCHOST}/${MY_PV}"
# Dont install in /usr/include/g++-v3/, but in gcc internal directory.
# We will handle /usr/include/g++-v3/ with gcc-config ...
STDCXX_INCDIR="${LIBPATH}/include/g++-v${MY_PV/\.*/}"
# ProPolice version
#PP_VER="3_3"
#PP_FVER="${PP_VER//_/.}-5"
# Patch tarball support ...
#PATCH_VER="1.0"
#PATCH_VER="1.0"
# Snapshot support ...
#SNAPSHOT="2002-08-12"
SNAPSHOT=
# Branch update support ...
MAIN_BRANCH="${PV}" # Tarball, etc used ...
#BRANCH_UPDATE="20021208"
#BRANCH_UPDATE="20031022"
#if [ -z "${SNAPSHOT}" ]
#then
# S="${WORKDIR}/${PN}-${MAIN_BRANCH}"
# SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${PN}-${MAIN_BRANCH}.tar.bz2"
#
# if [ -n "${PATCH_VER}" ]
# then
# SRC_URI="${SRC_URI}
# mirror://gentoo/${P}-patches-${PATCH_VER}.tar.bz2"
# fi
#
# if [ -n "${BRANCH_UPDATE}" ]
# then
# SRC_URI="${SRC_URI}
# mirror://gentoo/${PN}-${MAIN_BRANCH}-branch-update-${BRANCH_UPDATE}.patch.bz2"
# fi
#else
# S="${WORKDIR}/gcc-${SNAPSHOT//-}"
# SRC_URI="ftp://sources.redhat.com/pub/gcc/snapshots/${SNAPSHOT}/gcc-${SNAPSHOT//-}.tar.bz2"
#fi
#if [ -n "${PP_VER}" ]
#then
# SRC_URI="${SRC_URI}
# http://www.research.ibm.com/trl/projects/security/ssp/gcc${PP_VER}/protector-${PP_FVER}.tar.gz"
#fi
#SRC_URI="${SRC_URI}
# mirror://gentoo/${P}-manpages.tar.bz2"
DESCRIPTION="The GNU Compiler Collection. Includes C/C++ and java compilers"
HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
LICENSE="GPL-2 LGPL-2.1"
KEYWORDS="-* x86 ~mips ~sparc ~amd64 -hppa ~alpha ~ia64"
# Ok, this is a hairy one again, but lets assume that we
# are not cross compiling, than we want SLOT to only contain
# $PV, as people upgrading to new gcc layout will not have
# their old gcc unmerged ...
if [ "${CHOST}" == "${CCHOST}" ]
then
# GCC-3.3 is supposed to be binary compatible with 3.2..
SLOT="${MY_PV}"
# SLOT="3.2"
else
# GCC-3.3 is supposed to be binary compatible with 3.2..
SLOT="${CCHOST}-${MY_PV}"
# SLOT="${CCHOST}-3.2"
fi
# We need the later binutils for support of the new cleanup attribute.
# 'make check' fails for about 10 tests (if I remember correctly) less
# if we use later bison.
# this one depends on glibc-2.3.2-r3 containing the __guard in glibc
# we scan for Guard@@libgcc and then apply the function moving patch
#DEPEND=">=sys-libs/glibc-2.3.2-r3
DEPEND=">=sys-devel/binutils-2.14.90.0.6-r1
>=sys-devel/bison-1.875
>=sys-devel/gcc-config-1.3.1
amd64? ( multilib? ( >=app-emulation/emul-linux-x86-baselibs-1.0 ) )
!build? ( >=sys-libs/ncurses-5.2-r2
nls? ( sys-devel/gettext ) )"
#RDEPEND=">=sys-libs/glibc-2.3.2-r3
RDEPEND=">=sys-devel/gcc-config-1.3.1
>=sys-libs/zlib-1.1.4
>=sys-apps/texinfo-4.2-r4
!build? ( >=sys-libs/ncurses-5.2-r2 )"
PDEPEND="sys-devel/gcc-config"
chk_gcc_version() {
# This next bit is for updating libtool linker scripts ...
local OLD_GCC_VERSION="`gcc -dumpversion`"
local OLD_GCC_CHOST="$(gcc -v 2>&1 | egrep '^Reading specs' |\
sed -e 's:^.*/gcc-lib/\([^/]*\)/[0-9]\+.*$:\1:')"
if [ "${OLD_GCC_VERSION}" != "${MY_PV_FULL}" ]
then
echo "${OLD_GCC_VERSION}" > "${WORKDIR}/.oldgccversion"
fi
if [ -n "${OLD_GCC_CHOST}" ]
then
if [ "${CHOST}" = "${CCHOST}" -a "${OLD_GCC_CHOST}" != "${CHOST}" ]
then
echo "${OLD_GCC_CHOST}" > "${WORKDIR}/.oldgccchost"
fi
fi
# Did we check the version ?
touch "${WORKDIR}/.chkgccversion"
}
version_patch() {
[ ! -f "$1" ] && return 1
[ -z "$2" ] && return 1
sed -e "s:@GENTOO@:$2:g" ${1} > ${T}/${1##*/}
epatch ${T}/${1##*/}
}
src_unpack() {
if [ -z "${SNAPSHOT}" ]
then
unpack ${PN}-${MAIN_BRANCH}.tar.bz2
if [ -n "${PATCH_VER}" ]
then
unpack ${P}-patches-${PATCH_VER}.tar.bz2
fi
else
unpack gcc-${SNAPSHOT//-}.tar.bz2
fi
if [ -n "${PP_VER}" ]
then
unpack protector-${PP_FVER}.tar.gz
fi
cd ${S}
# Fixup libtool to correctly generate .la files with portage
elibtoolize --portage --shallow
echo
# Branch update ...
if [ -n "${BRANCH_UPDATE}" ]
then
epatch ${DISTDIR}/${PN}-${MAIN_BRANCH}-branch-update-${BRANCH_UPDATE}.patch.bz2
fi
# Do bulk patches included in ${P}-patches-${PATCH_VER}.tar.bz2
if [ -n "${PATCH_VER}" ]
then
mkdir -p ${WORKDIR}/patch/exclude
mv -f ${WORKDIR}/patch/{40,41}* ${WORKDIR}/patch/exclude/
if [ -n "`use multilib`" -a "${ARCH}" = "amd64" ]
then
mv -f ${WORKDIR}/patch/06* ${WORKDIR}/patch/exclude/
bzip2 -c ${FILESDIR}/gcc331_use_multilib.amd64.patch > \
${WORKDIR}/patch/06_amd64_gcc331-use-multilib.patch.bz2
fi
epatch ${WORKDIR}/patch
fi
# if [ -z "${PP_VER}" ]
# then
# # Make gcc's version info specific to Gentoo
# version_patch ${FILESDIR}/3.3.2/gcc332-gentoo-branding.patch \
# "${BRANCH_UPDATE} (Gentoo Linux ${PVR})" || die "Failed Branding"
# fi
if [ -n "${PP_VER}" ] && [ "${ARCH}" != "hppa" ]
then
# ProPolice Stack Smashing protection
EPATCH_OPTS="${EPATCH_OPTS} ${WORKDIR}/protector.dif" \
epatch ${FILESDIR}/3.3.1/gcc331-pp-fixup.patch
epatch ${WORKDIR}/protector.dif
cp ${WORKDIR}/protector.c ${WORKDIR}/${P}/gcc/ || die "protector.c not found"
cp ${WORKDIR}/protector.h ${WORKDIR}/${P}/gcc/ || die "protector.h not found"
version_patch ${FILESDIR}/3.3.2/gcc332-gentoo-branding.patch \
"${BRANCH_UPDATE} (Gentoo Linux ${PVR}, propolice)" \
|| die "Failed Branding"
# check for the glibc to have the guard
if [ "$(readelf -s /lib/libc.so.6 | grep GLOBAL | grep OBJECT | grep '__guard')" ] &&
[ "$(readelf -s /lib/libc.so.6 | grep GLOBAL | grep FUNC | grep '__stack_smash_handler')" ]
then
ewarn "this sys-libs/glibc has __guard object and __stack_smash_handler functions"
ewarn "scanning the system for binaries with __guard - this may take 5-10 minutes"
ewarn "please do not press crtl-C or crtl-Z during this period - it will continue"
SCANPATH="$(for i in $(cat /etc/ld.so.conf | grep -v '/usr/lib/gcc-lib' | grep -v '^\#'); do echo -n $i; echo -n ' '; done) $(echo ${PATH} | sed 's,:, ,g')"
if [ "$(find ${SCANPATH} -type f -perm -1 -maxdepth 9 -exec readelf -s {} \; 2>&1 | grep "__guard\@GCC" 2>&1 1>/dev/null; echo $?)" == "0" ]
then
eerror "found binaries that are dynamically linked to the libgcc with __guard@@GCC"
eerror "you need to compile these binaries without CFLAGS -fstack-protector/hcc -r"
echo
eerror "also you have to make sure that using ccache needs the cache to be flushed"
eerror "wipe out /var/tmp/ccache or /root/.ccache, this will remove possible saved"
eerror "-fstack-protector arguments that still may reside in such a compiler cache"
echo
eerror "when such binaries are found, gcc cannot remove libgcc propolice functions"
eerror "leading to gcc -static -fstack-protector breaking, see gentoo bug id 25299"
einfo "you can run 'qpkg -f' from the gentoolkit package and reemerge the program"
einfo "to do a full scan on your system, enter this following command in a shell:"
echo
einfo "find / -type f -perm -1 -maxdepth 9 -exec echo -n '__guard at GCC check in: {} ' \; -exec qpkg -f {} \; -exec readelf -s {} \; 2>&1 | grep __guard | grep -B1 '__guard\@GCC'"
echo
exit 1
else
echo
einfo "no binaries with suspicious libgcc __guard@GCC dependencies in ${SCANPATH}"
echo
epatch ${FILESDIR}/3.2.3/gcc-3.2.3-move-propolice-into-glibc.patch
fi
fi
# end of check for the glibc to have the guard
fi
# Install our pre generated manpages if we do not have perl ...
# if [ ! -x /usr/bin/perl ]
# then
# cd ${S}; unpack ${P}-manpages.tar.bz2
# fi
# Misdesign in libstdc++ (Redhat)
# cp -a ${S}/libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
cd ${S}; ./contrib/gcc_update --touch &> /dev/null
}
src_compile() {
local myconf=
local gcc_lang=
if [ -z "`use build`" ]
then
myconf="${myconf} --enable-shared"
# gcc_lang="c,c++,f77,objc"
gcc_lang="c,c++"
else
gcc_lang="c"
fi
if [ -z "`use nls`" -o "`use build`" ]
then
myconf="${myconf} --disable-nls"
else
myconf="${myconf} --enable-nls --without-included-gettext"
fi
# if [ -n "`use java`" -a -z "`use build`" ]
# then
# gcc_lang="${gcc_lang},java"
# fi
# Enable building of the gcj Java AWT & Swing X11 backend
# if we have X as a use flag and are not in a build stage.
# X11 support is still very experimental but enabling it is
# quite innocuous... [No, gcc is *not* linked to X11...]
# <dragon@gentoo.org> (15 May 2003)
# if [ -n "`use java`" -a -n "`use X`" -a -z "`use build`" -a \
# -f /usr/X11R6/include/X11/Xlib.h ]
# then
# myconf="${myconf} --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib"
# myconf="${myconf} --enable-interpreter --enable-java-awt=xlib --with-x"
# fi
# Multilib not yet supported
if [ -n "`use multilib`" -a "${ARCH}" = "amd64" ]
then
einfo "WARNING: Multilib support enabled. This is still experimental."
myconf="${myconf} --enable-multilib"
else
if [ "${ARCH}" = "amd64" ]
then
einfo "WARNING: Multilib not enabled. You will not be able to build 32bit binaries."
fi
myconf="${myconf} --disable-multilib"
fi
#Fix linking problem with c++ apps which where linked agains a 3.2.2 libgcc
[ "${ARCH}" = "hppa" ] && myconf="${myconf} --enable-sjlj-exceptions"
# In general gcc does not like optimization, and add -O2 where
# it is safe. This is especially true for gcc-3.3 ...
export CFLAGS="${CFLAGS/-O?/-O2}"
export CXXFLAGS="${CXXFLAGS/-O?/-O2}"
export GCJFLAGS="${CFLAGS/-O?/-O2}"
# Build in a separate build tree
mkdir -p ${WORKDIR}/build
cd ${WORKDIR}/build
# export CFLAGS="-pipe -O3 -march=athlon-xp -mmmx -msse -mfpmath=sse -fomit-frame-pointer -funroll-loops"
# export CXXFLAGS="${CFLAGS}"
einfo "Configuring GCC..."
addwrite "/dev/zero"
${S}/configure --prefix=${LOC} \
--bindir=${BINPATH} \
--includedir=${LIBPATH}/include \
--datadir=${DATAPATH} \
--mandir=${DATAPATH}/man \
--infodir=${DATAPATH}/info \
--enable-shared \
--host=${CHOST} \
--target=${CCHOST} \
--with-system-zlib \
--enable-languages=${gcc_lang} \
--enable-threads=posix \
--enable-long-long \
--disable-checking \
--enable-cstdio=stdio \
--enable-clocale=generic \
--enable-__cxa_atexit \
--enable-version-specific-runtime-libs \
--with-gxx-include-dir=${STDCXX_INCDIR} \
--with-local-prefix=${LOC}/local \
${myconf} || die
touch ${S}/gcc/c-gperf.h
# Do not make manpages if we do not have perl ...
if [ ! -x /usr/bin/perl ]
then
find ${S} -name '*.[17]' -exec touch {} \; || :
fi
# Setup -j in MAKEOPTS
get_number_of_jobs
einfo "Building GCC..."
# Only build it static if we are just building the C frontend, else
# a lot of things break because there are not libstdc++.so ....
if [ -n "`use static`" -a "${gcc_lang}" = "c" ]
then
# Fix for our libtool-portage.patch
S="${WORKDIR}/build" \
emake LDFLAGS="-static" bootstrap \
LIBPATH="${LIBPATH}" \
BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die
# Above FLAGS optimize and speedup build, thanks
# to Jeff Garzik <jgarzik@mandrakesoft.com>
else
# Fix for our libtool-portage.patch
S="${WORKDIR}/build" \
emake bootstrap-lean \
LIBPATH="${LIBPATH}" \
BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die
fi
}
src_install() {
# Do allow symlinks in ${LOC}/lib/gcc-lib/${CHOST}/${PV}/include as
# this can break the build.
for x in cd ${WORKDIR}/build/gcc/include/*
do
if [ -L ${x} ]
then
rm -f ${x}
fi
done
einfo "Installing GCC..."
# Do the 'make install' from the build directory
cd ${WORKDIR}/build
S="${WORKDIR}/build" \
make prefix=${LOC} \
bindir=${BINPATH} \
includedir=${LIBPATH}/include \
datadir=${DATAPATH} \
mandir=${DATAPATH}/man \
infodir=${DATAPATH}/info \
DESTDIR="${D}" \
LIBPATH="${LIBPATH}" \
install || die
[ -r ${D}${BINPATH}/gcc ] || die "gcc not found in ${D}"
dodir /lib /usr/bin
dodir /etc/env.d/gcc
echo "PATH=\"${BINPATH}\"" > ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
echo "ROOTPATH=\"${BINPATH}\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
if [ -n "`use multilib`" -a "${ARCH}" = "amd64" ]
then
# amd64 is a bit unique because of multilib. Add some other paths
echo "LDPATH=\"${LIBPATH}:${LIBPATH}/32:${LIBPATH}/../lib64:${LIBPATH}/../lib32\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
else
echo "LDPATH=\"${LIBPATH}\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
fi
echo "MANPATH=\"${DATAPATH}/man\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
echo "INFOPATH=\"${DATAPATH}/info\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
echo "STDCXX_INCDIR=\"${STDCXX_INCDIR##*/}\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
# Also set CC and CXX
echo "CC=\"gcc\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
echo "CXX=\"g++\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
# Make sure we dont have stuff lying around that
# can nuke multiple versions of gcc
if [ -z "`use build`" ]
then
cd ${D}${LIBPATH}
# Tell libtool files where real libraries are
for x in ${D}${LOC}/lib/*.la ${D}${LIBPATH}/../*.la
do
if [ -f "${x}" ]
then
sed -i -e "s:/usr/lib:${LIBPATH}:" ${x}
mv ${x} ${D}${LIBPATH}
fi
done
# Move all the libraries to version specific libdir.
for x in ${D}${LOC}/lib/*.{so,a}* ${D}${LIBPATH}/../*.{so,a}*
do
[ -f "${x}" -o -L "${x}" ] && mv -f ${x} ${D}${LIBPATH}
done
# Move Java headers to compiler-specific dir
for x in ${D}${LOC}/include/gc*.h ${D}${LOC}/include/j*.h
do
[ -f "${x}" ] && mv -f ${x} ${D}${LIBPATH}/include/
done
for x in gcj gnu java javax org
do
if [ -d "${D}${LOC}/include/${x}" ]
then
dodir /${LIBPATH}/include/${x}
mv -f ${D}${LOC}/include/${x}/* ${D}${LIBPATH}/include/${x}/
rm -rf ${D}${LOC}/include/${x}
fi
done
if [ -d "${D}${LOC}/lib/security" ]
then
dodir /${LIBPATH}/security
mv -f ${D}${LOC}/lib/security/* ${D}${LIBPATH}/security
rm -rf ${D}${LOC}/lib/security
fi
# Move libgcj.spec to compiler-specific directories
[ -f "${D}${LOC}/lib/libgcj.spec" ] && \
mv -f ${D}${LOC}/lib/libgcj.spec ${D}${LIBPATH}/libgcj.spec
# Rename jar because it could clash with Kaffe's jar if this gcc is
# primary compiler (aka don't have the -<version> extension)
cd ${D}${LOC}/${CCHOST}/gcc-bin/${MY_PV}
[ -f jar ] && mv -f jar gcj-jar
# Move <cxxabi.h> to compiler-specific directories
[ -f "${D}${STDCXX_INCDIR}/cxxabi.h" ] && \
mv -f ${D}${STDCXX_INCDIR}/cxxabi.h ${D}${LIBPATH}/include/
# These should be symlinks
cd ${D}${BINPATH}
for x in gcc g++ c++ g77 gcj
do
rm -f ${CCHOST}-${x}
[ -f "${x}" ] && ln -sf ${x} ${CCHOST}-${x}
if [ -f "${CCHOST}-${x}-${PV}" ]
then
rm -f ${CCHOST}-${x}-${PV}
ln -sf ${x} ${CCHOST}-${x}-${PV}
fi
done
fi
# This one comes with binutils
if [ -f "${D}${LOC}/lib/libiberty.a" ]
then
rm -f ${D}${LOC}/lib/libiberty.a
fi
cd ${S}
if [ -z "`use build`" ]
then
cd ${S}
docinto /${CCHOST}
dodoc COPYING COPYING.LIB ChangeLog* FAQ MAINTAINERS README
docinto ${CCHOST}/html
dohtml *.html
cd ${S}/boehm-gc
docinto ${CCHOST}/boehm-gc
dodoc ChangeLog doc/{README*,barrett_diagram}
docinto ${CCHOST}/boehm-gc/html
dohtml doc/*.html
cd ${S}/gcc
docinto ${CCHOST}/gcc
dodoc ChangeLog* FSFChangeLog* LANGUAGES NEWS ONEWS README* SERVICE
cd ${S}/libf2c
docinto ${CCHOST}/libf2c
dodoc ChangeLog* README TODO *.netlib
cd ${S}/libffi
docinto ${CCHOST}/libffi
dodoc ChangeLog* LICENSE README
cd ${S}/libiberty
docinto ${CCHOST}/libiberty
dodoc ChangeLog* COPYING.LIB README
cd ${S}/libobjc
docinto ${CCHOST}/libobjc
dodoc ChangeLog* README* THREADS*
cd ${S}/libstdc++-v3
docinto ${CCHOST}/libstdc++-v3
dodoc ChangeLog* README
docinto ${CCHOST}/libstdc++-v3/html
dohtml -r -a css,diff,html,txt,xml docs/html/*
cp -f docs/html/17_intro/[A-Z]* \
${D}/usr/share/doc/${PF}/${DOCDESTTREE}/17_intro/
if [ -n "`use java`" ]
then
cd ${S}/fastjar
docinto ${CCHOST}/fastjar
dodoc AUTHORS CHANGES COPYING ChangeLog* NEWS README
cd ${S}/libjava
docinto ${CCHOST}/libjava
dodoc ChangeLog* COPYING HACKING LIBGCJ_LICENSE NEWS README THANKS
fi
prepman ${DATAPATH}
prepinfo ${DATAPATH}
else
rm -rf ${D}/usr/share/{man,info}
rm -rf ${D}${DATAPATH}/{man,info}
fi
# Rather install the script, else portage with changing $FILESDIR
# between binary and source package borks things ....
insinto /lib/rcscripts/awk
doins ${FILESDIR}/awk/fixlafiles.awk
exeinto /sbin
doexe ${FILESDIR}/fix_libtool_files.sh
# Fix ncurses b0rking
find ${D}/ -name '*curses.h' -exec rm -f {} \;
if [ -n "`use multilib`" -a "${ARCH}" = "amd64" ]
then
# If using multilib, GCC has a bug, where it doesn't know where to find
# -lgcc_s when linking while compiling with g++ . ${LIBPATH} is in
# it's path though, so ln the 64bit and 32bit versions of -lgcc_s
# to that directory.
ln -sf ${LIBPATH}/../lib64/libgcc_s.so ${D}/${LIBPATH}/libgcc_s.so
ln -sf ${LIBPATH}/../lib32/libgcc_s_32.so ${D}/${LIBPATH}/libgcc_s_32.so
fi
}
pkg_preinst() {
if [ ! -f "${WORKDIR}/.chkgccversion" ]
then
chk_gcc_version
fi
# Make again sure that the linker "should" be able to locate
# libstdc++.so ...
if [ -n "`use multilib`" -a "${ARCH}" = "amd64" ]
then
# Can't always find libgcc_s.so.1, make it find it
export LD_LIBRARY_PATH="${LIBPATH}:${LIBPATH}/../lib64:${LIBPATH}/../lib32:${LD_LIBRARY_PATH}"
else
export LD_LIBRARY_PATH="${LIBPATH}:${LD_LIBRARY_PATH}"
fi
${ROOT}/sbin/ldconfig
}
pkg_postinst() {
if [ -n "`use multilib`" -a "${ARCH}" = "amd64" ]
then
# Can't always find libgcc_s.so.1, make it find it
export LD_LIBRARY_PATH="${LIBPATH}:${LIBPATH}/../lib64:${LIBPATH}/../lib32:${LD_LIBRARY_PATH}"
else
export LD_LIBRARY_PATH="${LIBPATH}:${LD_LIBRARY_PATH}"
fi
if [ "${ROOT}" = "/" -a "${COMPILER}" = "gcc3" -a "${CHOST}" = "${CCHOST}" ]
then
gcc-config --use-portage-chost ${CCHOST}-${MY_PV_FULL}
fi
# Update libtool linker scripts to reference new gcc version ...
if [ "${ROOT}" = "/" ] && \
[ -f "${WORKDIR}/.oldgccversion" -o -f "${WORKDIR}/.oldgccchost" ]
then
local OLD_GCC_VERSION=
local OLD_GCC_CHOST=
if [ -f "${WORKDIR}/.oldgccversion" ] && \
[ -n "$(cat "${WORKDIR}/.oldgccversion")" ]
then
OLD_GCC_VERSION="$(cat "${WORKDIR}/.oldgccversion")"
else
OLD_GCC_VERSION="${MY_PV_FULL}"
fi
if [ -f "${WORKDIR}/.oldgccchost" ] && \
[ -n "$(cat "${WORKDIR}/.oldgccchost")" ]
then
OLD_GCC_CHOST="--oldarch $(cat "${WORKDIR}/.oldgccchost")"
fi
/sbin/fix_libtool_files.sh ${OLD_GCC_VERSION} ${OLD_GCC_CHOST}
fi
# Fix ncurses b0rking (if r5 isn't unmerged)
find ${ROOT}/usr/lib/gcc-lib -name '*curses.h' -exec rm -f {} \;
# http://dev.gentoo.org/~pappy/hardened-gcc/docs/etdyn-ssp.html
if has_version '>=sys-devel/hardened-gcc-1.2'
then
[ "${ROOT}" = "/" ] && hardened-gcc -A
fi
}
|
|
|
Back to top |
|
|
norvillebarnes Tux's lil' helper
Joined: 28 Jun 2003 Posts: 116 Location: Sudbury, ON Canada
|
Posted: Mon Dec 15, 2003 4:27 am Post subject: |
|
|
Thanks very much. Emerging now. |
|
Back to top |
|
|
fca Guru
Joined: 22 Feb 2003 Posts: 346 Location: Netherlands
|
Posted: Mon Dec 15, 2003 11:14 am Post subject: |
|
|
I would suggest the following change to the ebuild:
Code: | --- gcc-3.4.ebuild 2003-12-15 11:10:51.000000000 +0100
+++ gcc-3.4.ebuild 2003-12-15 11:11:17.672808960 +0100
@@ -396,7 +396,7 @@
else
# Fix for our libtool-portage.patch
S="${WORKDIR}/build" \
- emake bootstrap-lean \
+ emake profiledbootstrap \
LIBPATH="${LIBPATH}" \
BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die
|
Makes compiling somewhat faster (tests done by other suggest about 5-10% speed increase
edit: Also, I tried gcc-tree-ssa 2 days ago. It compiled, and I tried lame with it. It worked fine, only gcc-3.4 produced faster code. I'm not quite ready to build other things with it, maybe during the christmas holidays.
Maybe try the compile-server branch also then, sounds cool (up till 10x compilation speed!) |
|
Back to top |
|
|
Lovechild Advocate
Joined: 17 May 2002 Posts: 2858 Location: Århus, Denmark
|
Posted: Mon Dec 15, 2003 2:48 pm Post subject: |
|
|
*cough* downloadable ebuilds good, cut and paste is bad for you *cough*
that compile branch sounds awesome... |
|
Back to top |
|
|
norvillebarnes Tux's lil' helper
Joined: 28 Jun 2003 Posts: 116 Location: Sudbury, ON Canada
|
Posted: Mon Dec 15, 2003 6:18 pm Post subject: |
|
|
Lovechild wrote: | *cough* downloadable ebuilds good, cut and paste is bad for you *cough*
|
I'll second that, I can provide ebuild hosting if anyone's interested.
mark_ar wrote: |
I would highly suggest using it in a chroot environment with a stage3 tarball. Do not use it on your main system.
|
C'mon, where's your sense of adventure? lol
BTW: the savannah CVS is down right now, I'm building the latest snapshot I could grab off a mirror, 20031210. |
|
Back to top |
|
|
fca Guru
Joined: 22 Feb 2003 Posts: 346 Location: Netherlands
|
Posted: Mon Dec 15, 2003 8:19 pm Post subject: |
|
|
For the not so faint of heart:
gcc-3.4 ebuild
ebuild for the tree-ssa
Copy the files into your overlay (gcc-3.4 goes to sys-devel/gcc, gcc-ssa-3.5 to sys-devel/gcc-ssa), and make a digest (ebuild *name of ebuild* digest) and get going. Installs alongside your old gcc ebuilds, switch by using gcc-config.
Warning!Do not unmerge your new gcc versions if you've merged python with the new gcc. Portage will break, and recovering is a pain in the ass, but doable (been there, done that). |
|
Back to top |
|
|
robmoss Retired Dev
Joined: 27 May 2003 Posts: 2634 Location: Jesus College, Oxford
|
Posted: Tue Dec 23, 2003 4:31 pm Post subject: |
|
|
tree-ssa looks fun, but still doesn't pass most of its own test suite. I think it could be quite a good idea for a wrapper script (that gcc-config one that I'm messing about with with acovea - still struggling there, but I'm making some headway, should be much more time to do work on that in the new year) to work out which versions of gcc are installed, then repeatedly try to merge a requested package with a progressively older version of gcc (first tree-ssa, then cvs head, then 3.3, then 3.2, then 2.95) until it succeeds. That way, you could work out whether it's a major code breakage or a minor one which is stopping any particular package from compiling.
I think I might have a go at building an entire stage 1 system from 3.4 soon... _________________ Reality is for those who can't face Science Fiction.
emerge -U will kill your Gentoo
ecatmur, Lord of Portage Bash Scripts |
|
Back to top |
|
|
Moled l33t
Joined: 09 Jul 2003 Posts: 635
|
Posted: Wed Dec 24, 2003 8:00 pm Post subject: |
|
|
modified fca's ebuild a bit
gcc --version
gcc (GCC) 3.5-tree-ssa 20031223 (merged 20031130)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
lets see how much this breaks stuff |
|
Back to top |
|
|
biehl Tux's lil' helper
Joined: 18 Feb 2003 Posts: 109 Location: Copenhagen/Denmark/European Union
|
Posted: Thu Dec 25, 2003 10:26 am Post subject: |
|
|
Hi,
I'd like gcc 3.4 only for trying the newest in gcj development so I'd really like a parallel install...so my usual gcc (3.2.3, urgh!) is untouched and gcc 3.4 is installed in some clearly marked directories (like /opt ).
The only thing I should need to do is make a gcj-script that set the right librarypaths (and such?) and then activates /opt/gcc34/bin/gcj
Is can anyone help me on this?
Anders _________________ 1) Dell Inspiron 8600, 1,4GHz PM, GeForce 5650Go
2) Custom, AMD64 Winchester 3000+, Asus A8V Deluxe, GeForce 5200 |
|
Back to top |
|
|
norvillebarnes Tux's lil' helper
Joined: 28 Jun 2003 Posts: 116 Location: Sudbury, ON Canada
|
Posted: Thu Dec 25, 2003 5:41 pm Post subject: |
|
|
biehl,
I can't help with your plan, but mark_ar's ebuild does a great job of slotting gcc-3.4 alongside your currently installed version. This way you can use gcc-config to switch between compiler profiles for different packages.
For example, if a package won't compile with gcc-3.4, you can just Code: | gcc-config i686-pc-linux-gnu-3.3.2 (or whatever your "stable" profile is) | I'm not sure if this provides the level of separation that you suggest, but it has been working well for me. |
|
Back to top |
|
|
nichao n00b
Joined: 24 Nov 2002 Posts: 17 Location: Germany
|
Posted: Thu Dec 25, 2003 8:08 pm Post subject: |
|
|
I'm getting following error with gcc 3.4 20031210 (fca's ebuild; but happens with 20031217, too) when I try to compile the linux 2.6.0 kernel:
Code: | LD vmlinux
sound/built-in.o(.text+0x7ead): In function `emu10k1_find_control_gpr':
: undefined reference to `strcpy'
make: *** [vmlinux] Error 1 |
Appending "-fno-unit-at-a-time" to CFLAGS in Makefile doesn't help either. Does someone have a hint on how to get this to work properly? |
|
Back to top |
|
|
fca Guru
Joined: 22 Feb 2003 Posts: 346 Location: Netherlands
|
Posted: Thu Dec 25, 2003 8:28 pm Post subject: |
|
|
I' ve updated the ebuilds a bit. gcc-3.4 now uses a snapshot from 24-12-2003, and ssa from 25-12-2003.
Also, please modify the SRC_URI line to use a mirror close to you. It's probably faster, and better for the Dutch Unix Users Group, whose mirror is now hard-coded in the ebuild.
gcc 3.4 is shaping up quite well. Some annoying bugs were fixed a few days ago, almost everything compiles now (just not libid3 sigh...., causes the crashes in k3b, arts and juk). Oh well, after Christmas (sitting behind an old 6x86 @ 166 MHz with Windows 98 is not good for computing) I'll take a look.
@nichao: compile with -fno-unit-at-a-time but you have to modify the kernel Makefile a bit for this, will post patch after Christmas. The kernel likes to things its own way.
Merry Christmas! |
|
Back to top |
|
|
biehl Tux's lil' helper
Joined: 18 Feb 2003 Posts: 109 Location: Copenhagen/Denmark/European Union
|
Posted: Fri Dec 26, 2003 10:01 pm Post subject: |
|
|
thanks norvillebarnes
I think it is adequate separation...and as the ebuild worked fine (with the java commented in)...it is now time for some compiling
-Anders _________________ 1) Dell Inspiron 8600, 1,4GHz PM, GeForce 5650Go
2) Custom, AMD64 Winchester 3000+, Asus A8V Deluxe, GeForce 5200 |
|
Back to top |
|
|
biehl Tux's lil' helper
Joined: 18 Feb 2003 Posts: 109 Location: Copenhagen/Denmark/European Union
|
Posted: Fri Dec 26, 2003 10:44 pm Post subject: |
|
|
ok...and slightly before compiling I ran into this
bash-2.05b$ gcc-config i686-pc-linux-gnu-3.4
* /usr/bin/gcc-config: Must be root.
how come?? _________________ 1) Dell Inspiron 8600, 1,4GHz PM, GeForce 5650Go
2) Custom, AMD64 Winchester 3000+, Asus A8V Deluxe, GeForce 5200 |
|
Back to top |
|
|
norvillebarnes Tux's lil' helper
Joined: 28 Jun 2003 Posts: 116 Location: Sudbury, ON Canada
|
Posted: Fri Dec 26, 2003 11:34 pm Post subject: |
|
|
biehl wrote: | ok...and slightly before compiling I ran into this
bash-2.05b$ gcc-config i686-pc-linux-gnu-3.4
* /usr/bin/gcc-config: Must be root.
how come?? |
That's a little odd, I can execute gcc-config as a normal user, but I've only ever switched profiles as root, although I'm assuming that you are root when executing that command. What does `gcc-config -l ` say? Perhaps i686-pc-linux-gnu-3.4 isn't a valid profile name? My output: Code: |
al@gilbert al $ gcc-config -l
[1] i686-pc-linux-gnu-3.3.2
[2] i686-pc-linux-gnu-3.4.20031224
|
|
|
Back to top |
|
|
biehl Tux's lil' helper
Joined: 18 Feb 2003 Posts: 109 Location: Copenhagen/Denmark/European Union
|
Posted: Sat Dec 27, 2003 9:39 am Post subject: |
|
|
ok, after a reboot (!) the gcc-config also affected my useraccount, good.
now my problem is
Code: |
bash-2.05b$ gcj -v
Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.0/specs
Reading specs from libgcj.spec
gcj: libgcj.spec: No such file or directory
|
which is strange, because
Code: |
bash-2.05b$ locate libgcj.spec
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/libgcj.spec
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.4/libgcj.spec
|
and
Code: |
bash-2.05b$ gcc -v
Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.0/specs
Configured with: /var/tmp/portage/gcc-3.4/work/gcc-3.4-20031224/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4 --includedir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.4/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4/info --enable-shared --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu --with-system-zlib --enable-languages=c,c++,f77,java --enable-threads=posix --enable-long-long --disable-checking --enable-cstdio=stdio --enable-clocale=generic --enable-__cxa_atexit --enable-version-specific-runtime-libs --with-gxx-include-dir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.4/include/g++-v3 --with-local-prefix=/usr/local --disable-werror --enable-shared --enable-nls --without-included-gettext --disable-multilib : (reconfigured) /var/tmp/portage/gcc-3.4/work/gcc-3.4-20031224/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4 --includedir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.4/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4/info --enable-shared --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu --with-system-zlib --enable-languages=c,c++,f77,java --enable-threads=posix --enable-long-long --disable-checking --enable-cstdio=stdio --enable-clocale=generic --enable-__cxa_atexit --enable-version-specific-runtime-libs --with-gxx-include-dir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.4/include/g++-v3 --with-local-prefix=/usr/local --disable-werror --enable-shared --enable-nls --without-included-gettext --disable-multilib
Thread model: posix
gcc version 3.4.0 20031224 (experimental)
|
also
g++ -v, g77 -v give the same as above as far as I can see. In the gcc-3.2.3 ebuild that I have as standard gcj -v works.
also
there is some gcj functionality in there as
Code: |
cp=.:/usr/share/gcc-data/i686-pc-linux-gnu/3.4/java/libgcj-3.4.0.jar
export CLASSPATH=cp
export classpath=cp
gcc CountColumn.java
|
gives (where CountColumn is just an interface)
Code: |
/usr/lib/gcc/i686-pc-linux-gnu/3.4.0/../../../crt1.o(.text+0x18): In function `_start':
: undefined reference to `main'
/tmp/ccxpFDln.o(.data+0x60): undefined reference to `vtable for java::lang::Class'
collect2: ld returned 1 exit status
|
Any ideas?
-Anders _________________ 1) Dell Inspiron 8600, 1,4GHz PM, GeForce 5650Go
2) Custom, AMD64 Winchester 3000+, Asus A8V Deluxe, GeForce 5200 |
|
Back to top |
|
|
fca Guru
Joined: 22 Feb 2003 Posts: 346 Location: Netherlands
|
Posted: Sat Dec 27, 2003 1:43 pm Post subject: |
|
|
biehl wrote: | ok, after a reboot (!) the gcc-config also affected my useraccount, good.
now my problem is
Code: |
bash-2.05b$ gcj -v
Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.0/specs
Reading specs from libgcj.spec
gcj: libgcj.spec: No such file or directory
|
which is strange, because
Code: |
bash-2.05b$ locate libgcj.spec
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/libgcj.spec
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.4/libgcj.spec
|
|
There were some changes in the location of libraries. Try sym-linking that file (the gcc 3.4 one) to /usr/lib/gcc/i686-pc-linux-gnu/3.4/libgcj.spec
Some weeks ago I had to something like that for all C++ libraries, but they fixed it some time ago. Probably a case of no-one testing the gcj part enough...
@nichao:
patch for the kernel makefile: here |
|
Back to top |
|
|
fca Guru
Joined: 22 Feb 2003 Posts: 346 Location: Netherlands
|
Posted: Sat Dec 27, 2003 2:41 pm Post subject: |
|
|
Warning!
I just found out that the newest gcc 3.4 snapshot changes the directory in which the libs are installed, meaning that my python, linked to the old library, does some funny things, except working, meaning my portage just broke.
Oh, the joy of fixing portage usingt the static build.... |
|
Back to top |
|
|
norvillebarnes Tux's lil' helper
Joined: 28 Jun 2003 Posts: 116 Location: Sudbury, ON Canada
|
Posted: Sat Dec 27, 2003 5:39 pm Post subject: |
|
|
fca, that's rough, but thanks for blazing a trail.
So far I've been unable to compile anything from kde-cvs, configure dies when checking for qt everytime. The output from config.log is:
Quote: | $ ./configure --enable-alsa --enable-alsa --enable-alsa --host=i686-pc-linux-gnu --prefix=/usr/kde/cvs --with-x --enable-mitshm --with-xinerama --with-qt-dir=/usr/qt/3 --enable-mt --disable-dependency-tracking --disable-debug --without-debug
PATH: /usr/qt/3/bin
configure: 30544: /usr/qt/3/include/qstyle.h
configure:30656: rm -rf SunWS_cache; g++ -o conftest -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -DNDEBUG -DNO_DEBUG -O2 -march=pentium4 -O2 -pipe -fno-unit-at-a-time -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -L/usr/qt/3/lib -L/usr/X11R6/lib conftest.cc -lqt-mt -lpng -lz -lm -ljpeg -ldl -lXext -lX11 -lSM -lICE -lpthread 1>&5
configure:30699: error: Qt (>= Qt 3.2) (library qt-mt) not found. Please check your installation!
ac_cv_have_qt=have_qt=no
kde_cv_qt_direct=no
kde_qtver='3'
qt_includes=''
qt_libraries=''
qtmcop_SUBDIR_included_FALSE=''
qtmcop_SUBDIR_included_TRUE=''
|
/usr/qt/3/lib/ contains the qt-mt libs, so I'm a little confused as to why I'm getting this error. Anyone seen this? |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|