View previous topic :: View next topic |
Author |
Message |
DualCpuUser n00b
Joined: 03 Mar 2005 Posts: 71
|
Posted: Tue Dec 12, 2006 5:31 am Post subject: 100% Core2Duo Gentoo happing here. AKA GCC-4.3.0 |
|
|
..Finally, but the whole system is compiled -march-core2 off of a mostly stable version of gcc-4.3.0
Took a long time to find the compiler switches that built a working compiler good enough to compile the whole system but 575 packages later.
Reply if you guys interested in the know-how, not to difficult now. _________________ -Ron
Last edited by DualCpuUser on Wed Dec 27, 2006 12:33 pm; edited 1 time in total |
|
Back to top |
|
|
jayricho n00b
Joined: 29 Nov 2006 Posts: 3 Location: JonxTown
|
Posted: Tue Dec 12, 2006 7:21 am Post subject: |
|
|
Cool!
Of course details are welcome.
Are you talking about a stage 3 'fresh' install or emerge -e system/world (and toolchains rebuilding)?
Thanks,
Jay |
|
Back to top |
|
|
remix l33t
Joined: 28 Apr 2004 Posts: 797 Location: hawaii
|
Posted: Tue Dec 12, 2006 8:09 am Post subject: |
|
|
stage3? what happened this past year, i know i'm not the only one who does stage1's anymore... or is that how to do it now, stage3, then emerge configure and compile your own kernel, change your cflags, and re-emerge system and world ?
anyway, i have core2duo.. i think i'm going to do -march=core2 also... please post details. gcc version, any extra packages you need? things to unmask? make.conf...
thanks. _________________ help the needy |
|
Back to top |
|
|
DualCpuUser n00b
Joined: 03 Mar 2005 Posts: 71
|
Posted: Tue Dec 12, 2006 9:08 am Post subject: |
|
|
Before I start typing this up for the interested few, you may want to make sure you enjoy a never perfect Gentoo. , aka, not the ~AMD64 timid crowed.
Before I get started whom has a binutils-2.18-1210.ebuild???? I would like to try fixes that went into the latest head. From bugzilla it looks like head is labeled 2.18.
** More to follow but this will get you started.
1) copy flag-o-matic.eclass to /usr/local/portage/eclass
2) add the directory to your portage overly env. var. in make.conf
3) add the flags you want to use. In 4.3 full core2 is supported, so SSSE3 is avail. This is the head of my flag-o-matic eclass
Code: |
setup-allowed-flags() {
if [[ -z ${ALLOWED_FLAGS} ]] ; then
export ALLOWED_FLAGS="-pipe"
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -O -O0 -O1 -O2 -O3 -mcpu -march -mtune"
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fstack-protector -fstack-protector-all"
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fbounds-checking -fno-bounds-checking"
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-PIE -fno-pie -fno-unit-at-a-time"
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -g -g0 -g1 -g2 -g3 -ggdb -ggdb0 -ggdb1 -ggdb2 -ggdb3"
export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-ident"
fi
#RDH Allow my C flags.
ALLOWED_FLAGS="${ALLOWED_FLAGS} -D -pipe -fomit-frame-pointer -mssse3 -msse3"
ALLOWED_FLAGS="${ALLOWED_FLAGS} -fweb -frename-registers -momit-leaf-frame-pointer"
ALLOWED_FLAGS="${ALLOWED_FLAGS} -funroll-loops -freorder-blocks -fprefetch-loop-arrays -ftracer"
ALLOWED_FLAGS="${ALLOWED_FLAGS} -fmodulo-sched -fgcse-lm -fgcse-sm -fgcse-las -fgcse-after-reload"
ALLOWED_FLAGS="${ALLOWED_FLAGS} -peel-loops"
ALLOWED_FLAGS="${ALLOWED_FLAGS} -ftree-loop-im -ftree-loop-linear -ftree-loop-ivcanon -ftree-vectorize"
ALLOWED_FLAGS="${ALLOWED_FLAGS} -fvariable-expansion-in-unroller -combine -save-temps"
# allow a bunch of flags that negate features / control ABI
ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-stack-protector -fno-stack-protector-all"
ALLOWED_FLAGS="${ALLOWED_FLAGS} -mregparm -mno-app-regs -mapp-regs \
-mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-3dnow \
-mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 \
|
4) SVN down yourself the correct 4.3.0 source tree. KDESVN works for this.
5) At this time, r119733 is currently what my emwrap.sh -S is built on plus glibc, binutils.
6) use 'export' in KDESVN to dump a gcc tree and I use 4.3.98.
7) *** IMPORTANT *** Don't forget: Change in GCC/BASE.VER the 4.3.0 to 4.3.98, then edit c-decl.c and change #define WANT_C99_INLINE_SEMANTICS to 0 from 1.
Unmask GCC, GlibC, Binutils.
9) Pal_gene has an ebuild for glibc-2.5-20051210 and I just used that tonight, and so far system running with it.
10) tar up the tree with "tar -cjf /gcc-4.3.98.tar.bz2 /gcc-4.3.98
11) throw the tar ball into distfiles.
12) cp Vipers 4.3.0-xxxxxx patch file and rename it 4.3.98
13) For now the patch set his ebuild uses doesn't appear to conflict with 4.3.0. A lot of code is being dumped in and I expect that to change.
These destructions will be edit in the morning after I read them, to tired ATM. So look for an "EDIT" if I change something. But this is enough to get started. _________________ -Ron |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
DualCpuUser n00b
Joined: 03 Mar 2005 Posts: 71
|
Posted: Wed Dec 13, 2006 2:00 am Post subject: |
|
|
My biggest pita ATM is modules-update, which calls generate-modprobe.conf. It get called OVER and OVER again, till all of swap space is consumed, but not every time.
Sometimes it will run, but most is: "generating module.conf by hand...." then off to lunch the system goes. Its like generate-modprobe.conf is being called recursively.
As for flag-o-matic I posed all of what I changed, I don't recall changing anything else. I also not sure if I need my mods inside or outside of the "-z" I guessed. _________________ -Ron |
|
Back to top |
|
|
DualCpuUser n00b
Joined: 03 Mar 2005 Posts: 71
|
Posted: Wed Dec 13, 2006 2:13 am Post subject: |
|
|
Ghostscript-gpl doesn't like to compile at first, but after the system is rebuild and re-emerge it, it just did here. There is probably a dependancy getting missed by portage and when it rebuilt, then it builds.
I typically don't build my systme with LDFLAGS, here are my CLFAGS/LDFLAGS/
BTW, you will see boat loads of new warnings from the compiler.
Code: |
LDFLAGS="-Wl,--sort-common -Wl,-zcombreloc -Wl,-znow"
# -DENABLE_CHECKING=1 for gcc builds
CFLAGS="-pipe -fomit-frame-pointer -g1"
#CFLAGS="${CFLAGS} -combine"
CXXFLAGS="${CFLAGS}"
#GCC setup:Note:x64 compiler defaults to -msse -msse2 -fpmath=sse
#CFLAGS="${CFLAGS} -march=nocona -msse3 -O2"
CFLAGS="${CFLAGS} -march=core2 -O2"
#CFLAGS="${CFLAGS} -mno-ssse3"
CFLAGS="${CFLAGS} -frename-registers"
CFLAGS="${CFLAGS} -fweb"
CFLAGS="${CFLAGS} -ftracer"
CFLAGS="${CFLAGS} -fmodulo-sched"
#CFLAGS="${CFLAGS} -freschedule-modulo-scheduled-loops"
CFLAGS="${CFLAGS} -fvariable-expansion-in-unroller"
CFLAGS="${CFLAGS} -fgcse-sm"
CFLAGS="${CFLAGS} -fgcse-las"
#CFLAGS="${CFLAGS} -fgcse-after-reload"
#CFLAGS="$(CFLAGS} -fnew-ra"
CFLAGS="${CFLAGS} -ftree-vectorize"
#CFLAGS="${CFLAGS} -ftree-loop-im"
#CFLAGS="${CFLAGS} -ftree-loop-linear"
#CFLAGS="${CFLAGS} -ftree-loop-ivcanon"
#CFLAGS="${CFLAGS} -frtl-abstract-sequences"
#CFLAGS="${CFLAGS} -fpeel-loops"
CXXFLAGS="${CFLAGS}"
#SEH not like rb&p below in C++ flags outputs nag warning.
CFLAGS="${CFLAGS} -freorder-blocks-and-partition"
|
Here is what didn't build from ./emwrap.sh -W -X system
Code: |
media-libs/libmad-0.15.1b-r2
media-gfx/povray-3.6.1-r1
media-libs/netpbm-10.36.0
media-libs/gle-3.1.0-r1
dev-util/kdesvn-0.11.0
www-client/mozilla-firefox-2.0-r2
|
_________________ -Ron |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
Posted: Sun Dec 17, 2006 3:27 pm Post subject: |
|
|
how did you manage to let gcc compile with WANT_C99_INLINE_SEMANTICS 0 at all ?
I tried several snapshots & also fresh from svn but always got:
Quote: | {standard input}: Assembler messages:
{standard input}:3064: Error: symbol `fstatat64' is already defined
{standard input}:3509: Error: symbol `fstat64' is already defined
{standard input}:3529: Error: symbol `lstat64' is already defined
{standard input}:3621: Error: symbol `stat64' is already defined
make[3]: *** [unix.lo] Error 1
make[3]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.3.98/work/build/i686-pc-linux-gnu/libgfortran'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.3.98/work/build/i686-pc-linux-gnu/libgfortran'
make[1]: *** [all-target-libgfortran] Error 2
make[1]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.3.98/work/build'
make: *** [profiledbootstrap] Error 2
!!! ERROR: sys-devel/gcc-4.3.98 failed.
Call stack:
ebuild.sh, line 1580: Called dyn_compile
ebuild.sh, line 945: Called src_compile
ebuild.sh, line 1269: Called toolchain_src_compile
toolchain.eclass, line 24: Called gcc_src_compile
toolchain.eclass, line 1536: Called gcc_do_make
toolchain.eclass, line 1410: Called die
!!! emake failed with profiledbootstrap
!!! If you need support, post the topmost build error, and the call stack if relevant.
|
_________________ https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa
Hardcore Gentoo Linux user since 2004 |
|
Back to top |
|
|
DualCpuUser n00b
Joined: 03 Mar 2005 Posts: 71
|
Posted: Mon Dec 18, 2006 9:47 pm Post subject: |
|
|
KOT,
I do it by exporting my gcc tree. 'svn export svn-dir export-dir'
Change the file, change base-ver also, for my ebuild, then tar it up, through it in distfiles. Digest, then test it, see what they are, and then install it or not. _________________ -Ron |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
DualCpuUser n00b
Joined: 03 Mar 2005 Posts: 71
|
Posted: Wed Dec 20, 2006 12:05 pm Post subject: |
|
|
The 4.3.0-alpha 0.2 patch file that was/is used in the 4.3.0-alpha ebuild, sorry for confusion, not 100% sure we should be using any patches, but as of yet, none conflict. _________________ -Ron |
|
Back to top |
|
|
Gentree Watchman
Joined: 01 Jul 2003 Posts: 5350 Location: France, Old Europe
|
Posted: Fri Dec 22, 2006 10:56 pm Post subject: |
|
|
Quote: | Before I get started whom has a binutils | That's who has, not whom has. Whom is for the object of a sentence : the man with whom I spoke yesterday.
Nice to see someone attempting to use correct grammar , so I just thought you might like to know. _________________ Linux, because I'd rather own a free OS than steal one that's not worth paying for.
Gentoo because I'm a masochist
AthlonXP-M on A7N8X. Portage ~x86 |
|
Back to top |
|
|
obsrv Apprentice
Joined: 19 Aug 2005 Posts: 167 Location: Panevėžys, Lithuania
|
Posted: Sat Dec 23, 2006 8:24 pm Post subject: |
|
|
How did you upgrade to GCC 4.3? |
|
Back to top |
|
|
Mousee Apprentice
Joined: 29 Mar 2004 Posts: 291 Location: Illinois, USA
|
Posted: Sat Dec 23, 2006 11:06 pm Post subject: |
|
|
obsrv wrote: | How did you upgrade to GCC 4.3? |
It was already explained in this thread. 4th post to be exact. |
|
Back to top |
|
|
Bornio Tux's lil' helper
Joined: 16 Dec 2002 Posts: 129
|
Posted: Sun Dec 24, 2006 12:21 am Post subject: |
|
|
What does the core2 tune do which is new? |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
DualCpuUser n00b
Joined: 03 Mar 2005 Posts: 71
|
Posted: Sun Dec 24, 2006 10:46 pm Post subject: |
|
|
I don't compile Fortran, so I don't know KOT. I am currently in XP when I got your msg, so I can't copy my use flags, but its a crap load, probably to many, but what the hey. I'll repost later.
PS. I should have said. 99% Core2Duo happening. _________________ -Ron |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
DualCpuUser n00b
Joined: 03 Mar 2005 Posts: 71
|
Posted: Wed Dec 27, 2006 9:15 pm Post subject: |
|
|
Fingers are crossed. _________________ -Ron |
|
Back to top |
|
|
Kate Monster Apprentice
Joined: 13 Jun 2006 Posts: 226 Location: Clarkston, Michigan
|
Posted: Sat Dec 30, 2006 5:52 am Post subject: |
|
|
Cool! j/c, when did the "core2" flag come about anyway? And if thats for the core2, what was the "nocona" flag we've been using until now? |
|
Back to top |
|
|
DualCpuUser n00b
Joined: 03 Mar 2005 Posts: 71
|
Posted: Sat Dec 30, 2006 6:01 am Post subject: |
|
|
Core 2 is for Core 2 Duo (Intel), Nocona was for the 31 stage version of the Pent 4 (D) versions if my memory servs.
Core2 was and is only in gcc 4.3. It did not get into 4.2, but -march=generic{32|64} did. I think it was 4.2 and not 4.1.X
I have a patch for 4.1.1 which works (I think) that adds the generic CPU timings. _________________ -Ron |
|
Back to top |
|
|
sonicbhoc Veteran
Joined: 24 Oct 2005 Posts: 1805 Location: In front of the computer screen
|
Posted: Sat Dec 30, 2006 2:03 pm Post subject: |
|
|
remix wrote: | stage3, then emerge configure and compile your own kernel, change your cflags, and re-emerge system and world ? |
That's how I do it, but I usually copy over my make.conf, remove X and tk from my use flags, emerge -e system and emerge -e world before I do anything else. After that I do the whole kernel thing and get a basic system up, reboot, add X and tk back to my flags, emerge xorg-x11 and then emerge the packages I want.
Isn't GCC 4.3 very experimental and unsafe right now? Just wondering. I didn't think it was ready for use yet...
Guess I'm behind the times again.
In any event, would there be any point in someone using a PentiumIII computer upgrading to GCC 4.3 other than saying "hey guyz I have the latest version I'm 1337 too lololo"? _________________ I'm too lazy to keep this stupid signature up to date, so here's something more interesting:
My friend Hetdegon can draw if you ask me.
Now using PClinuxOS on my laptop and Gentoo on my desktop and new laptop. |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
Posted: Sat Dec 30, 2006 7:01 pm Post subject: |
|
|
when I try to compile libstdc++-v3 I get the following in the middle of compilation:
Code: | make[2]: Leaving directory `/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc'
make[1]: Leaving directory `/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc'
Configuring in i686-pc-linux-gnu/libstdc++-v3
creating cache ../config.cache
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking build system type... i686-pc-linux-gnu
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for gawk... gawk
checking whether ln -s works... yes
checking for gcc... /var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include
checking whether we are using GNU C... yes
checking whether /var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include accepts -g... yes
checking for c++... /var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc/xgcc -shared-libgcc -B/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc/ -nostdinc++ -L/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/i686-pc-linux-gnu/libstdc++-v3/src -L/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include
checking whether we are using GNU C++... yes
checking whether /var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc/xgcc -shared-libgcc -B/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc/ -nostdinc++ -L/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/i686-pc-linux-gnu/libstdc++-v3/src -L/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include accepts -g... yes
checking for GCC version number... 3.3.6
checking for strerror in -lcposix... no
checking for as... as
checking for ar... ar
checking for ranlib... ranlib
checking for a BSD compatible install... /bin/install -c
checking whether to enable maintainer-specific portions of Makefiles... no
CPU config directory is cpu/i486
OS config directory is os/gnu-linux
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking for ld used by GCC... ld
checking if the linker (ld) is GNU ld... yes
checking for ld option to reload object files... -r
checking for BSD-compatible nm... nm
checking how to recognise dependant libraries... pass_all
checking for object suffix... configure: error: installation or configuration problem; compiler does not work
make: *** [configure-target-libstdc++-v3] Error 1
!!! ERROR: sys-libs/libstdc++-v3-3.3.6 failed.
Call stack:
ebuild.sh, line 1603: Called dyn_compile
ebuild.sh, line 961: Called src_compile
libstdc++-v3-3.3.6.ebuild, line 233: Called die
!!! (no error message)
!!! If you need support, post the topmost build error, and the call stack if relevant.
|
how did you solve that ?
update:
just wanted to say that I fixed this some time ago by commenting out some freaking cflags
Happy New Year @ all, 1 more hour to go from now on _________________ https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa
Hardcore Gentoo Linux user since 2004
Last edited by kernelOfTruth on Sun Dec 31, 2006 10:01 pm; edited 2 times in total |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
Gentree Watchman
Joined: 01 Jul 2003 Posts: 5350 Location: France, Old Europe
|
Posted: Mon Jan 01, 2007 11:19 am Post subject: |
|
|
well one reason may be gfortran which seems to be getting attention it missed when the main grunt was the c compiler. ( dont forget neither of the c's in gcc refer to the c language!)
That may be of limitted use to most ppl , but in the spirit of the question : " is there any reason" , yes that's one. My quick benchmarking has shown considerable performance increases in this area.
_________________ Linux, because I'd rather own a free OS than steal one that's not worth paying for.
Gentoo because I'm a masochist
AthlonXP-M on A7N8X. Portage ~x86 |
|
Back to top |
|
|
|