Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
GCC 3.4
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3, ... 71, 72, 73  Next  
This topic is locked: you cannot edit posts or make replies.    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
Lovechild
Advocate
Advocate


Joined: 17 May 2002
Posts: 2858
Location: Århus, Denmark

PostPosted: Wed Dec 10, 2003 12:52 pm    Post subject: Reply with quote

robmoss2k wrote:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13134

Woo! :D

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 :D

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
View user's profile Send private message
robmoss
Retired Dev
Retired Dev


Joined: 27 May 2003
Posts: 2634
Location: Jesus College, Oxford

PostPosted: Thu Dec 11, 2003 3:26 pm    Post subject: Reply with quote

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
View user's profile Send private message
mark_ar
n00b
n00b


Joined: 17 Nov 2002
Posts: 13
Location: Madison, WI

PostPosted: Sun Dec 14, 2003 4:18 am    Post subject: Success with gcc 3.4 and glibc 2.3.2! Reply with quote

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
View user's profile Send private message
robmoss
Retired Dev
Retired Dev


Joined: 27 May 2003
Posts: 2634
Location: Jesus College, Oxford

PostPosted: Sun Dec 14, 2003 9:12 am    Post subject: Re: Success with gcc 3.4 and glibc 2.3.2! Reply with quote

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
View user's profile Send private message
fca
Guru
Guru


Joined: 22 Feb 2003
Posts: 345
Location: Netherlands

PostPosted: Sun Dec 14, 2003 11:09 am    Post subject: Reply with quote

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
View user's profile Send private message
norvillebarnes
Tux's lil' helper
Tux's lil' helper


Joined: 28 Jun 2003
Posts: 116
Location: Sudbury, ON Canada

PostPosted: Mon Dec 15, 2003 1:06 am    Post subject: Reply with quote

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
View user's profile Send private message
mark_ar
n00b
n00b


Joined: 17 Nov 2002
Posts: 13
Location: Madison, WI

PostPosted: Mon Dec 15, 2003 2:58 am    Post subject: gcc 3.4 ebuild Reply with quote

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
View user's profile Send private message
norvillebarnes
Tux's lil' helper
Tux's lil' helper


Joined: 28 Jun 2003
Posts: 116
Location: Sudbury, ON Canada

PostPosted: Mon Dec 15, 2003 4:27 am    Post subject: Reply with quote

Thanks very much. Emerging now.
Back to top
View user's profile Send private message
fca
Guru
Guru


Joined: 22 Feb 2003
Posts: 345
Location: Netherlands

PostPosted: Mon Dec 15, 2003 11:14 am    Post subject: Reply with quote

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
View user's profile Send private message
Lovechild
Advocate
Advocate


Joined: 17 May 2002
Posts: 2858
Location: Århus, Denmark

PostPosted: Mon Dec 15, 2003 2:48 pm    Post subject: Reply with quote

*cough* downloadable ebuilds good, cut and paste is bad for you *cough*

that compile branch sounds awesome...
Back to top
View user's profile Send private message
norvillebarnes
Tux's lil' helper
Tux's lil' helper


Joined: 28 Jun 2003
Posts: 116
Location: Sudbury, ON Canada

PostPosted: Mon Dec 15, 2003 6:18 pm    Post subject: Reply with quote

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 :D

BTW: the savannah CVS is down right now, I'm building the latest snapshot I could grab off a mirror, 20031210.
Back to top
View user's profile Send private message
fca
Guru
Guru


Joined: 22 Feb 2003
Posts: 345
Location: Netherlands

PostPosted: Mon Dec 15, 2003 8:19 pm    Post subject: Reply with quote

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
View user's profile Send private message
robmoss
Retired Dev
Retired Dev


Joined: 27 May 2003
Posts: 2634
Location: Jesus College, Oxford

PostPosted: Tue Dec 23, 2003 4:31 pm    Post subject: Reply with quote

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
View user's profile Send private message
Moled
l33t
l33t


Joined: 09 Jul 2003
Posts: 635

PostPosted: Wed Dec 24, 2003 8:00 pm    Post subject: Reply with quote

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
View user's profile Send private message
biehl
Tux's lil' helper
Tux's lil' helper


Joined: 18 Feb 2003
Posts: 109
Location: Copenhagen/Denmark/European Union

PostPosted: Thu Dec 25, 2003 10:26 am    Post subject: Reply with quote

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
View user's profile Send private message
norvillebarnes
Tux's lil' helper
Tux's lil' helper


Joined: 28 Jun 2003
Posts: 116
Location: Sudbury, ON Canada

PostPosted: Thu Dec 25, 2003 5:41 pm    Post subject: Reply with quote

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
View user's profile Send private message
nichao
n00b
n00b


Joined: 24 Nov 2002
Posts: 17
Location: Germany

PostPosted: Thu Dec 25, 2003 8:08 pm    Post subject: Reply with quote

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
View user's profile Send private message
fca
Guru
Guru


Joined: 22 Feb 2003
Posts: 345
Location: Netherlands

PostPosted: Thu Dec 25, 2003 8:28 pm    Post subject: Reply with quote

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
View user's profile Send private message
biehl
Tux's lil' helper
Tux's lil' helper


Joined: 18 Feb 2003
Posts: 109
Location: Copenhagen/Denmark/European Union

PostPosted: Fri Dec 26, 2003 10:01 pm    Post subject: Reply with quote

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
:lol:


-Anders
_________________
1) Dell Inspiron 8600, 1,4GHz PM, GeForce 5650Go
2) Custom, AMD64 Winchester 3000+, Asus A8V Deluxe, GeForce 5200
Back to top
View user's profile Send private message
biehl
Tux's lil' helper
Tux's lil' helper


Joined: 18 Feb 2003
Posts: 109
Location: Copenhagen/Denmark/European Union

PostPosted: Fri Dec 26, 2003 10:44 pm    Post subject: Reply with quote

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
View user's profile Send private message
norvillebarnes
Tux's lil' helper
Tux's lil' helper


Joined: 28 Jun 2003
Posts: 116
Location: Sudbury, ON Canada

PostPosted: Fri Dec 26, 2003 11:34 pm    Post subject: Reply with quote

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
View user's profile Send private message
biehl
Tux's lil' helper
Tux's lil' helper


Joined: 18 Feb 2003
Posts: 109
Location: Copenhagen/Denmark/European Union

PostPosted: Sat Dec 27, 2003 9:39 am    Post subject: Reply with quote

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
View user's profile Send private message
fca
Guru
Guru


Joined: 22 Feb 2003
Posts: 345
Location: Netherlands

PostPosted: Sat Dec 27, 2003 1:43 pm    Post subject: Reply with quote

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
View user's profile Send private message
fca
Guru
Guru


Joined: 22 Feb 2003
Posts: 345
Location: Netherlands

PostPosted: Sat Dec 27, 2003 2:41 pm    Post subject: Reply with quote

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
View user's profile Send private message
norvillebarnes
Tux's lil' helper
Tux's lil' helper


Joined: 28 Jun 2003
Posts: 116
Location: Sudbury, ON Canada

PostPosted: Sat Dec 27, 2003 5:39 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
This topic is locked: you cannot edit posts or make replies.    Gentoo Forums Forum Index Portage & Programming All times are GMT
Goto page Previous  1, 2, 3, ... 71, 72, 73  Next
Page 2 of 73

 
Jump to:  
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