View previous topic :: View next topic |
Author |
Message |
rhill Retired Dev
Joined: 22 Oct 2004 Posts: 1629 Location: sk.ca
|
Posted: Wed May 12, 2010 2:40 am Post subject: |
|
|
Colt45 wrote: | binutils is failing the same way. For some reason it feels the need to strip my -mno-movbe out of CFLAGS. Any ideas how to force it to take that CFLAG? |
This should work now, I added the new -mno-* flags to the strip-flags exception list last weekish.
I haven't tried LTO yet. I'm waiting for proper libtool support. Any success stories? _________________ by design, by neglect
for a fact or just for effect |
|
Back to top |
|
|
Genewb Apprentice
Joined: 09 Jan 2007 Posts: 165
|
Posted: Wed May 12, 2010 2:24 pm Post subject: |
|
|
cruzki123 wrote: | What problems will I have with -lto enable build? Have anyone a list of "problematic" packages?
[...] |
There are relatively few packages that fail. The list I gave earlier in the thread was based on appending -flto to LDFLAGS, which isn't necessary (this results in error to the effect of 'invalid lto mode').
Two other types of error are ${path}/${name}.lto.o not found (Makefile error?) and some sort of wrong-order problem (to the effect of 'future versions of POSIX will require...').
libtool doesn't fail as such, but for some reason gnome-panel uses a symbol in libtool which is for some reason removed by lto.
Most packages are fine with whole-program, ipa-matrix-reorg and ipa-struct-reorg too. whole-program is ignored for shared libraries.
An example of a package which doesn't like whole-program is gnome-settings-daemon (modules require symbols from the main programme), which doesn't run after compilation.
Build failures caused by whole-program end with a barrage of 'undefined' errors. _________________ I don't give a darn about "experience", just functional copyleft software. |
|
Back to top |
|
|
ComaWhite Tux's lil' helper
Joined: 07 Oct 2008 Posts: 125
|
Posted: Fri May 14, 2010 6:10 am Post subject: |
|
|
I've ran in to some issues. So far for me what breaks is
* mysql 5.1.46 fails to compile
* qt-core 4.7.9999 |
|
Back to top |
|
|
PuckPoltergeist Apprentice
Joined: 28 Jul 2004 Posts: 189
|
Posted: Fri May 14, 2010 10:40 am Post subject: |
|
|
On compiling krita I get an ICE:
Code: |
[ 70%] Building CXX object krita/plugins/extensions/tonemapping/CMakeFiles/kritatonemapping.dir/operators/trilateral/tmo_trilateral.o
[ 70%] Built target kritadefaultdockers
In file included from /var/tmp/portage/app-office/krita-2.1.2/work/krita-2.1.2/krita/plugins/extensions/tonemapping/operators/trilateral/tmo_trilateral.cpp:54:0:
/var/tmp/portage/app-office/krita-2.1.2/work/krita-2.1.2/krita/plugins/extensions/tonemapping/operators/trilateral/memory.h: In function 'double build_stack(double**, double**, double***, double***, int, double)':
/var/tmp/portage/app-office/krita-2.1.2/work/krita-2.1.2/krita/plugins/extensions/tonemapping/operators/trilateral/memory.h:100:8: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.gentoo.org/> for instructions.
make[2]: *** [krita/plugins/extensions/tonemapping/CMakeFiles/kritatonemapping.dir/operators/trilateral/tmo_trilateral.o] Error 1
make[1]: *** [krita/plugins/extensions/tonemapping/CMakeFiles/kritatonemapping.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Scanning dependencies of target kritasmallcolorselector
[ 70%] Building CXX object krita/plugins/extensions/dockers/smallcolorselector/CMakeFiles/kritasmallcolorselector.dir/kritasmallcolorselector_automoc.o
[ 70%] Building CXX object krita/plugins/extensions/dockers/smallcolorselector/CMakeFiles/kritasmallcolorselector.dir/smallcolorselector.o
[ 70%] Building CXX object krita/plugins/extensions/dockers/smallcolorselector/CMakeFiles/kritasmallcolorselector.dir/smallcolorselector_dock.o
[ 70%] Building CXX object krita/plugins/extensions/dockers/smallcolorselector/CMakeFiles/kritasmallcolorselector.dir/kis_small_color_widget.o
Linking CXX shared module ../../../../../lib/kritasmallcolorselector.so
[ 70%] Built target kritasmallcolorselector
make: *** [all] Error 2
|
Will try if this is CFLAGS-related. I'm using a very heavy mixture here:
Code: |
CFLAGS="-O2 -march=atom -mfpmath=sse -fweb -ftracer -funswitch-loops -fpredictive-commoning -fgcse-after-reload -ftree-vectorize -fomit-frame-pointer -fgraphite-identity -ftree-loop-distribution -ftree-loop-im -fvect-cost-model -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,-z,combreloc"
|
_________________ printk(KERN_CRIT "Whee.. Swapped out page in kernel page table\n");
linux-2.6.6/mm/vmalloc.c |
|
Back to top |
|
|
Genewb Apprentice
Joined: 09 Jan 2007 Posts: 165
|
Posted: Sun May 16, 2010 1:12 pm Post subject: |
|
|
PuckPoltergeist wrote: | On compiling krita I get an ICE:
Will try if this is CFLAGS-related. I'm using a very heavy mixture here:
Code: |
CFLAGS="-O2 -march=atom -mfpmath=sse -fweb -ftracer -funswitch-loops -fpredictive-commoning -fgcse-after-reload -ftree-vectorize -fomit-frame-pointer -fgraphite-identity -ftree-loop-distribution -ftree-loop-im -fvect-cost-model -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,-z,combreloc"
|
|
vect-cost-model is enabled by default and IIRC, combreloc is too. _________________ I don't give a darn about "experience", just functional copyleft software. |
|
Back to top |
|
|
Genewb Apprentice
Joined: 09 Jan 2007 Posts: 165
|
Posted: Sun May 16, 2010 4:02 pm Post subject: |
|
|
cruzki123 wrote: | EDIT: Don't try to compile a kernel with gcc-4.5. Compile fine, but when udev it is trying to do it's magic you obtain a nice kernel panic.
|
I've hit this with 2.6.34 (but not 2.6.33). init segfaults, kernel tries to kill init and oopses.
Compiling with O2 instead of Os stops init from segfaulting, but sh fails to allocate memory when compiling anything and segfaults, which makes it sort of useless.
Here's the relevant tracker ticket, I think. _________________ I don't give a darn about "experience", just functional copyleft software. |
|
Back to top |
|
|
PuckPoltergeist Apprentice
Joined: 28 Jul 2004 Posts: 189
|
Posted: Sun May 16, 2010 8:42 pm Post subject: |
|
|
Genewb wrote: | PuckPoltergeist wrote: | On compiling krita I get an ICE:
Will try if this is CFLAGS-related. I'm using a very heavy mixture here:
Code: |
CFLAGS="-O2 -march=atom -mfpmath=sse -fweb -ftracer -funswitch-loops -fpredictive-commoning -fgcse-after-reload -ftree-vectorize -fomit-frame-pointer -fgraphite-identity -ftree-loop-distribution -ftree-loop-im -fvect-cost-model -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,-z,combreloc"
|
|
vect-cost-model is enabled by default and IIRC, combreloc is too. |
By Gentoo or by gcc? At least the first one isn't mentioned this way in the docs. _________________ printk(KERN_CRIT "Whee.. Swapped out page in kernel page table\n");
linux-2.6.6/mm/vmalloc.c |
|
Back to top |
|
|
PuckPoltergeist Apprentice
Joined: 28 Jul 2004 Posts: 189
|
Posted: Sun May 16, 2010 8:43 pm Post subject: |
|
|
Genewb wrote: | cruzki123 wrote: | EDIT: Don't try to compile a kernel with gcc-4.5. Compile fine, but when udev it is trying to do it's magic you obtain a nice kernel panic.
|
I've hit this with 2.6.34 (but not 2.6.33). init segfaults, kernel tries to kill init and oopses.
Compiling with O2 instead of Os stops init from segfaulting, but sh fails to allocate memory when compiling anything and segfaults, which makes it sort of useless.
Here's the relevant tracker ticket, I think. |
Can't confirm this. I'm using 2.6.34-rc7 with gcc-4.5 and CPU type atom here with no problems. _________________ printk(KERN_CRIT "Whee.. Swapped out page in kernel page table\n");
linux-2.6.6/mm/vmalloc.c |
|
Back to top |
|
|
Genewb Apprentice
Joined: 09 Jan 2007 Posts: 165
|
Posted: Sun May 16, 2010 9:11 pm Post subject: |
|
|
PuckPoltergeist wrote: |
By Gentoo or by gcc? At least the first one isn't mentioned this way in the docs. |
by gcc. The docs aren't always up to date.
Code: |
cc -O2 -Q --help=optimizers | grep cost
-fvect-cost-model [enabled]
|
_________________ I don't give a darn about "experience", just functional copyleft software. |
|
Back to top |
|
|
Genewb Apprentice
Joined: 09 Jan 2007 Posts: 165
|
Posted: Sun May 16, 2010 9:46 pm Post subject: |
|
|
PuckPoltergeist wrote: |
Can't confirm this. I'm using 2.6.34-rc7 with gcc-4.5 and CPU type atom here with no problems. |
64 or 32 bit and have you compiled system world with 4.5? _________________ I don't give a darn about "experience", just functional copyleft software. |
|
Back to top |
|
|
rhill Retired Dev
Joined: 22 Oct 2004 Posts: 1629 Location: sk.ca
|
Posted: Sun May 16, 2010 10:03 pm Post subject: |
|
|
Are you using -Os? (CONFIG_CC_OPTIMIZE_FOR_SIZE) _________________ by design, by neglect
for a fact or just for effect |
|
Back to top |
|
|
Genewb Apprentice
Joined: 09 Jan 2007 Posts: 165
|
Posted: Sun May 16, 2010 10:11 pm Post subject: |
|
|
dirtyepic wrote: | Are you using -Os? (CONFIG_CC_OPTIMIZE_FOR_SIZE) |
In case you're asking me, I've tried with and without. Last time I tested, no.
This is what happens when trying to build something:
Code: |
>>> Compiling source in /var/tmp/portage/x11-libs/cairo-1.8.8-r1/work/cairo-1.8.8 ...
make -j6
/bin/sh: xmalloc: hashlib.c:264: cannot allocate 32 bytes (98304 bytes allocated)
make: *** [config.h] Segmentation
|
_________________ I don't give a darn about "experience", just functional copyleft software. |
|
Back to top |
|
|
PuckPoltergeist Apprentice
Joined: 28 Jul 2004 Posts: 189
|
Posted: Sun May 16, 2010 11:27 pm Post subject: |
|
|
dirtyepic wrote: | Are you using -Os? (CONFIG_CC_OPTIMIZE_FOR_SIZE) |
Yes I do so, but I've didn't compiled "world" with gcc-4.5.0 _________________ printk(KERN_CRIT "Whee.. Swapped out page in kernel page table\n");
linux-2.6.6/mm/vmalloc.c |
|
Back to top |
|
|
PuckPoltergeist Apprentice
Joined: 28 Jul 2004 Posts: 189
|
Posted: Sun May 16, 2010 11:31 pm Post subject: |
|
|
Genewb wrote: | PuckPoltergeist wrote: |
By Gentoo or by gcc? At least the first one isn't mentioned this way in the docs. |
by gcc. The docs aren't always up to date.
Code: |
cc -O2 -Q --help=optimizers | grep cost
-fvect-cost-model [enabled]
|
|
Thanks, I wasn't aware of this. _________________ printk(KERN_CRIT "Whee.. Swapped out page in kernel page table\n");
linux-2.6.6/mm/vmalloc.c |
|
Back to top |
|
|
mack1 Guru
Joined: 18 Mar 2006 Posts: 315
|
Posted: Mon May 17, 2010 12:29 pm Post subject: |
|
|
What is the right way to enable lto globally?
It is suitable to rebuild "world"?
Cheers |
|
Back to top |
|
|
Shining Arcanine Veteran
Joined: 24 Sep 2009 Posts: 1110
|
Posted: Mon May 17, 2010 12:57 pm Post subject: |
|
|
mack1 wrote: | What is the right way to enable lto globally?
It is suitable to rebuild "world"?
Cheers |
emerge --jobs --keep-going -ave world |
|
Back to top |
|
|
tranquilcool Veteran
Joined: 25 Mar 2005 Posts: 1179
|
Posted: Mon May 17, 2010 2:11 pm Post subject: |
|
|
Shining Arcanine wrote: | mack1 wrote: | What is the right way to enable lto globally?
It is suitable to rebuild "world"?
Cheers |
emerge --jobs --keep-going -ave world |
i think the question was if lto could be used globally. _________________ this is a strange strange world. |
|
Back to top |
|
|
mack1 Guru
Joined: 18 Mar 2006 Posts: 315
|
Posted: Mon May 17, 2010 3:05 pm Post subject: |
|
|
@tranquilcool yes, you are right !
Thanks |
|
Back to top |
|
|
tranquilcool Veteran
Joined: 25 Mar 2005 Posts: 1179
|
Posted: Mon May 17, 2010 3:07 pm Post subject: |
|
|
mack1 wrote: | @tranquilcool yes, you are right !
Thanks |
i tried it but too many packages failed to build. i think
we have to wait. _________________ this is a strange strange world. |
|
Back to top |
|
|
mack1 Guru
Joined: 18 Mar 2006 Posts: 315
|
Posted: Mon May 17, 2010 3:20 pm Post subject: |
|
|
Ok, thanks for the information! |
|
Back to top |
|
|
PuckPoltergeist Apprentice
Joined: 28 Jul 2004 Posts: 189
|
Posted: Mon May 17, 2010 8:52 pm Post subject: |
|
|
PuckPoltergeist wrote: | On compiling krita I get an ICE:
Code: |
[ 70%] Building CXX object krita/plugins/extensions/tonemapping/CMakeFiles/kritatonemapping.dir/operators/trilateral/tmo_trilateral.o
[ 70%] Built target kritadefaultdockers
In file included from /var/tmp/portage/app-office/krita-2.1.2/work/krita-2.1.2/krita/plugins/extensions/tonemapping/operators/trilateral/tmo_trilateral.cpp:54:0:
/var/tmp/portage/app-office/krita-2.1.2/work/krita-2.1.2/krita/plugins/extensions/tonemapping/operators/trilateral/memory.h: In function 'double build_stack(double**, double**, double***, double***, int, double)':
/var/tmp/portage/app-office/krita-2.1.2/work/krita-2.1.2/krita/plugins/extensions/tonemapping/operators/trilateral/memory.h:100:8: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.gentoo.org/> for instructions.
make[2]: *** [krita/plugins/extensions/tonemapping/CMakeFiles/kritatonemapping.dir/operators/trilateral/tmo_trilateral.o] Error 1
make[1]: *** [krita/plugins/extensions/tonemapping/CMakeFiles/kritatonemapping.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Scanning dependencies of target kritasmallcolorselector
[ 70%] Building CXX object krita/plugins/extensions/dockers/smallcolorselector/CMakeFiles/kritasmallcolorselector.dir/kritasmallcolorselector_automoc.o
[ 70%] Building CXX object krita/plugins/extensions/dockers/smallcolorselector/CMakeFiles/kritasmallcolorselector.dir/smallcolorselector.o
[ 70%] Building CXX object krita/plugins/extensions/dockers/smallcolorselector/CMakeFiles/kritasmallcolorselector.dir/smallcolorselector_dock.o
[ 70%] Building CXX object krita/plugins/extensions/dockers/smallcolorselector/CMakeFiles/kritasmallcolorselector.dir/kis_small_color_widget.o
Linking CXX shared module ../../../../../lib/kritasmallcolorselector.so
[ 70%] Built target kritasmallcolorselector
make: *** [all] Error 2
|
Will try if this is CFLAGS-related. I'm using a very heavy mixture here:
Code: |
CFLAGS="-O2 -march=atom -mfpmath=sse -fweb -ftracer -funswitch-loops -fpredictive-commoning -fgcse-after-reload -ftree-vectorize -fomit-frame-pointer -fgraphite-identity -ftree-loop-distribution -ftree-loop-im -fvect-cost-model -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,-z,combreloc"
|
|
Yes it is CFLAGS-related. -fgraphite-identit is the one that causes the segfault. _________________ printk(KERN_CRIT "Whee.. Swapped out page in kernel page table\n");
linux-2.6.6/mm/vmalloc.c |
|
Back to top |
|
|
PuckPoltergeist Apprentice
Joined: 28 Jul 2004 Posts: 189
|
Posted: Fri May 21, 2010 9:52 pm Post subject: |
|
|
Compiling OpenOffice with gcc-4.5 gives also an ICE. And again -fgraphite-identity is responsible. Seems it is still not mature enough. _________________ printk(KERN_CRIT "Whee.. Swapped out page in kernel page table\n");
linux-2.6.6/mm/vmalloc.c |
|
Back to top |
|
|
Da Fox Guru
Joined: 06 Jul 2005 Posts: 341
|
Posted: Tue Jun 01, 2010 8:05 pm Post subject: |
|
|
I'm also trying out the new link time optimization, but I'm having some trouble.
In particular I want to try to compile ffmpeg & mplayer with lto. It seems some
people have managed to compile ffmpeg (Genewb), while others report that it
fails to compile (cruzki123).
So my question is, did anyone (and if so, how?) manage to compile ffmpeg?
What I have done is to create a file like such: /etc/portage/env/media-video/ffmpeg: | CFLAGS="${CFLAGS} -flto -flto-report"
LDFLAGS="${CFLAGS} -Wl,-flto,--as-needed" | and then attempt to emerge ffmpeg.
However this fails with lots of undefined references. However compiling media-libs/x264
using the same approach does work as expected.
One thing I am not sure about is setting CFLAGS as LDFLAGS (the second line of
/etc/portage/env/media-video/ffmpeg), however without this the compilation aborts
at link time with 'error: invalid LTO mode'.
Is this the proper way to set LDFLAGS for link time optimization?
Also, can anyone please explain how to use -fwhopr? Is it just a matter of replacing
'lto' with 'whopr' everywhere? I.e. does it need to be specified at the linking stage also,
or do I then use only lto? Or do you always need to specify both -flto and -fwhopr? _________________ "Man fears the darkness, and so he scrapes away at the edges of it with fire."
- Rei Ayanami
JGBE, a Java based GameBoy Emulator |
|
Back to top |
|
|
Genewb Apprentice
Joined: 09 Jan 2007 Posts: 165
|
Posted: Tue Jun 01, 2010 9:58 pm Post subject: |
|
|
Da Fox wrote: |
One thing I am not sure about is setting CFLAGS as LDFLAGS (the second line of
/etc/portage/env/media-video/ffmpeg), however without this the compilation aborts
at link time with 'error: invalid LTO mode'.
Is this the proper way to set LDFLAGS for link time optimization? |
No, no LDFLAGS are required for lto.
Da Fox wrote: |
Also, can anyone please explain how to use -fwhopr? Is it just a matter of replacing
'lto' with 'whopr' everywhere? I.e. does it need to be specified at the linking stage also,
or do I then use only lto? Or do you always need to specify both -flto and -fwhopr? |
Just -fwhopr. _________________ I don't give a darn about "experience", just functional copyleft software. |
|
Back to top |
|
|
cruzki123 Apprentice
Joined: 16 May 2008 Posts: 262
|
Posted: Wed Jun 02, 2010 6:34 am Post subject: |
|
|
/etc/portage/env/media-video/ffmpeg: | CFLAGS="${CFLAGS} -flto -flto-report"
LDFLAGS="${CFLAGS} -Wl,-flto,--as-needed" |
I think that you have a typo here. Is LDFLAGS="${_LD_FLAGS} -Wl,-flto,--as-needed" (without _) |
|
Back to top |
|
|
|