View previous topic :: View next topic |
Author |
Message |
hielvc Advocate
Joined: 19 Apr 2002 Posts: 2805 Location: Oceanside, Ca
|
|
Back to top |
|
|
badgers l33t
Joined: 04 Sep 2003 Posts: 680 Location: Madison, WI
|
Posted: Mon Apr 04, 2005 12:41 pm Post subject: |
|
|
I would like to say that I agree with the idea of generating a list of packages that use the as-needed option.
I think we could have the best of both worlds with that type of system. It may also allow some developers to rework their code to make it on the list.
It may not be simple, but I think it is one of the things that can really set a gentoo system apart from some of the more popular distributions out there. Everybody notices how fast a program takes to launch, from the new to the most experienced, nobody like waiting. _________________ Abit KD7-S
Athlon XP2500+
166mHz FSB
512 Meg PC3200 Ram running at 166mHz
LiteOn DVD dual Layer burner(hdc)
2.6.17 Suspend2 kernel with no scsi support |
|
Back to top |
|
|
fuoco Guru
Joined: 23 May 2004 Posts: 386 Location: Israel
|
Posted: Mon Apr 04, 2005 3:32 pm Post subject: |
|
|
Quote: | Everybody notices how fast a program takes to launch |
What do you mean? you notice lots of difference in startup times with --as-needed?
And if everybody who uses --as-needed sends a bug report or post on that package, maybe it will be fixed.
I for example couldn't compile libdv with --as-needed...[/quote] |
|
Back to top |
|
|
badgers l33t
Joined: 04 Sep 2003 Posts: 680 Location: Madison, WI
|
Posted: Mon Apr 04, 2005 4:01 pm Post subject: |
|
|
I am not sure what you mean?
I have never used as-needed.
when a user clicks on an icon they notice how long it takes to launch.
everybody who has ever used a computer notices that when you click on an icon it takes a certain amount of time for that program to launch. The amount of time seems shorter on some computers than others.
even my mother-in-law who uses a computer once a week noticed that when she got a new machine the "email goes much faster now"
If you used a program 10 times a day you will become intimatly aware of how fast it takes to launch(assuming you closed and launched it each time). Even a once a week user notices how fast it launches. It is just one of those basic things.
if you couldn't compile libdv with as-needed then most likely it shouldn't be on the compatible list
I don't know that I would say if as-needed doesn't work that it needs to be fixed. It seems some things will never really work with as-needed. That is what spawned the idea of a compatible list. The default would be to not use it. _________________ Abit KD7-S
Athlon XP2500+
166mHz FSB
512 Meg PC3200 Ram running at 166mHz
LiteOn DVD dual Layer burner(hdc)
2.6.17 Suspend2 kernel with no scsi support |
|
Back to top |
|
|
infirit l33t
Joined: 11 Jan 2003 Posts: 778 Location: Hoofddorp / The Netherlands
|
Posted: Mon Apr 04, 2005 5:56 pm Post subject: |
|
|
I can keep a list of aplications that work in my first post. Let me know if you have (un)succesfully compiled an app with --as-needed. _________________ EASY TO INSTALL = Difficult to install, but instruction manual has pictures.
Join the adopt an unanswered post initiative today |
|
Back to top |
|
|
fuoco Guru
Joined: 23 May 2004 Posts: 386 Location: Israel
|
Posted: Mon Apr 04, 2005 6:05 pm Post subject: |
|
|
Good idea. so far two failures:
media-libs/libdv-0.102 - ebuild fails to compile (or actually fails at the linking stage)
gnome-extra/gnome-media-2.10.0 - ebuild completes successfully but one binary, gnome-cd, has errors in the symbols and does not work.
Anyone compiled or started compiling his system with --as-needed? Anyone feels a change in stsartup times or anything else? |
|
Back to top |
|
|
Lowspirit Apprentice
Joined: 31 Jul 2002 Posts: 258 Location: Northern Sweden
|
Posted: Mon Apr 04, 2005 6:08 pm Post subject: |
|
|
Playing it safe so far I've only done :
x11-terms/gnome-terminal
x11-libs/vte
Both compiled succesfully, did it to get gnome-terminal to start faster but have seen no difference whatsoever, but they run just as before. _________________ Gentoo | AMD X2 3800+ 2GB RAM | Kernel 2.6.30 . ReiserFS . CFQ . GCC4.3.3 | Firefox 3.5 | Gnome 2.26 w/ Compiz-Fusion
"Penguins are the only fish that can fly" |
|
Back to top |
|
|
fuoco Guru
Joined: 23 May 2004 Posts: 386 Location: Israel
|
Posted: Mon Apr 04, 2005 6:48 pm Post subject: |
|
|
I just tried to compile a small hello world C program. I compiled it each time with different options and checked
Code: | ldd -u -r 'bin_name' |
to see what it's compiled against.
First time I compiled it with:
Code: | gcc -o hello_world hello_world.c |
and it was only linked against libc - as it should be.
Second time I compiled it with:
Code: | gcc -o hello_world hello_world.c -lX11 |
and it was linked against both libc and X11, even though it doesn't use or need X11.
Third time I compiled it with:
Code: | gcc -Wl,--as-needed -o hello_world hello_world.c -lX11 |
and it was again only linked against libc. So --as-needed found out it doesn't need X11 and didn't link against it.
If you'll check your system 'with ldd -u -r' you'll see that most binaries have unneeded links.
I don't really have a point in this, just letting you know. |
|
Back to top |
|
|
haven Tux's lil' helper
Joined: 19 Nov 2003 Posts: 141 Location: Belfast, Uk
|
Posted: Mon Apr 04, 2005 7:56 pm Post subject: |
|
|
Personally I feel this would be something to make ebuild maintainers aware of. If "safe" LDFLAGS could be included in the ebuild then it would mean a little extra effort for the maintainer to test as opposed to a whole lot of effort for everyone else to find out on their own.
That asside I think thebigslide's code is very good - it just needs another function with LDFLAGS adding and a corresponding file in /etc/portage. |
|
Back to top |
|
|
simondo42 n00b
Joined: 22 Nov 2004 Posts: 42 Location: Dunedin, New Zealand
|
Posted: Mon Apr 04, 2005 9:21 pm Post subject: |
|
|
In addition to the start-up benefits, has anyone else noticed that programs take less memory as well? I recompiled the kde 3.4 split ebuilds with the --as-needed flag and my starting memory consumption for booting into kde seems to have dropped by a good 10MB. Not to be sniffed at!
Also, I've found that the latest ~x86 ebuilds of torsmo and beep-media-player build but won't run with --as-needed. As someone else mentioned, I think anything with a plug-in architecture may have problems.
Cheers,
simondo |
|
Back to top |
|
|
ravageNG n00b
Joined: 29 Jul 2003 Posts: 46
|
Posted: Tue Apr 05, 2005 1:41 pm Post subject: |
|
|
Just noticed that kdevelop does _NOT_ work when compiled with -Wl,--as-needed.
But this seems so far the only app failed. |
|
Back to top |
|
|
infirit l33t
Joined: 11 Jan 2003 Posts: 778 Location: Hoofddorp / The Netherlands
|
Posted: Tue Apr 05, 2005 1:58 pm Post subject: |
|
|
ravageNG wrote: | Just noticed that kdevelop does _NOT_ work when compiled with -Wl,--as-needed.
But this seems so far the only app failed. | I have been keeping a list of packages that do and do not work. Which packages work correctly for you with --as-needed?
I added kdevelop to the not working list. _________________ EASY TO INSTALL = Difficult to install, but instruction manual has pictures.
Join the adopt an unanswered post initiative today |
|
Back to top |
|
|
fuoco Guru
Joined: 23 May 2004 Posts: 386 Location: Israel
|
Posted: Tue Apr 05, 2005 2:12 pm Post subject: |
|
|
I have many working packages - but I only keep track of non working:
1. libdv - fails in link stage
2. gnome-media - unresolved symbols in gnome-cd
3. dbus - unresolved symbols in dbus-glib-tool symbols
4. gnome-system-tools - unresolved symbols in network-admin and shares-admin
5. samba - unresolved symbols in rpcclient
That's so far - but I'm considering if it's worth using --as-needed at all, since it breaks quite a few stuff, and I don't seem to feel much change or improvement in startup times. Anyone else got imrovements in startup times from this? |
|
Back to top |
|
|
Sparker l33t
Joined: 28 Aug 2003 Posts: 992
|
Posted: Wed Apr 06, 2005 11:07 am Post subject: |
|
|
gtk-engines (2.6.2) doesn't configure. Can't find gtk+-1.2.10 |
|
Back to top |
|
|
ravageNG n00b
Joined: 29 Jul 2003 Posts: 46
|
Posted: Wed Apr 06, 2005 11:18 am Post subject: |
|
|
After compiling kdevelop without --as-needed in crashes when creating new projects.
Recompiling cervisia helps.
So cervisia does _NOT_ work with --as-needed.
PRELINK:
After using --as-needed for example to compile konsole and kdesktop (which are working) _AND_ running prelink -aR
--> prelink warns
--> konsole / kdesktop won't start (unresolved symbol)
So it seems you can't use prelink and --as-needed together!?!? |
|
Back to top |
|
|
infirit l33t
Joined: 11 Jan 2003 Posts: 778 Location: Hoofddorp / The Netherlands
|
Posted: Wed Apr 06, 2005 11:39 am Post subject: |
|
|
Thanks for the feedback, i have updated the original post. _________________ EASY TO INSTALL = Difficult to install, but instruction manual has pictures.
Join the adopt an unanswered post initiative today |
|
Back to top |
|
|
badgers l33t
Joined: 04 Sep 2003 Posts: 680 Location: Madison, WI
|
Posted: Wed Apr 06, 2005 12:48 pm Post subject: |
|
|
ravageNG wrote: | After compiling kdevelop without --as-needed in crashes when creating new projects.
Recompiling cervisia helps.
So cervisia does _NOT_ work with --as-needed.
PRELINK:
After using --as-needed for example to compile konsole and kdesktop (which are working) _AND_ running prelink -aR
--> prelink warns
--> konsole / kdesktop won't start (unresolved symbol)
So it seems you can't use prelink and --as-needed together!?!? |
is it possible that it could be a prelink bug rather then a true incompatibility? _________________ Abit KD7-S
Athlon XP2500+
166mHz FSB
512 Meg PC3200 Ram running at 166mHz
LiteOn DVD dual Layer burner(hdc)
2.6.17 Suspend2 kernel with no scsi support |
|
Back to top |
|
|
ikke Apprentice
Joined: 14 Jan 2005 Posts: 225 Location: Belgium
|
Posted: Wed Apr 06, 2005 1:34 pm Post subject: |
|
|
suka wrote: | Rapsey wrote: |
But it can cause problems for some programs apparently. I used it on programs that I find realy annoyingly slow to load: gedit, gnome-console, gaim, totem, rhythmbox. None of them have any problems.
So I guess we should not put it into make.conf. Can someone tell me how to set it, so that portage will only use it on specific programs? |
I got into problems with quite a few programs: Totem, Sound-Juicer, basically all the GStreamer stuff, also gnome-system-tools and evince. On the other hand it seems to really speed up startup of some other stuff... | This could be caused by the runtime-linking gstreamer uses (or something like that), to enable plugins etc. It is possible evolution wont work very well too because of some similar issue (you'll loose your calendar and todo list functionality).
I had this in my LDFLAGS some months ago and sometimes it was a real PITA. _________________ Working day and night to enhance your Linux Desktop experience
Blog |
|
Back to top |
|
|
kimchi_sg Advocate
Joined: 26 Nov 2004 Posts: 2968
|
Posted: Wed Apr 06, 2005 2:16 pm Post subject: |
|
|
haven wrote: | From what I read, those applications that have a plugin architecture are doomed to fail with this optimisation (i.e. apache) |
I've proven this remark partly wrong!
Just finished compiling apache-2.0.53 with LDFLAGS="-Wl,--as-needed": Code: | shrek@maximus ~ $ emerge --info | grep LDFLAGS
LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -Wl,--as-needed -s" |
But to prevent possible aborts or other errors, I static-ed all the modules into apache so it wouldn't have to look for any: Code: | maximus shrek # equery uses apache
[ Searching for packages matching apache... ]
[ Colour Code : set unset ]
[ Legend : Left column (U) - USE flags from make.conf ]
[ : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for net-www/apache-2.0.53 ]
U I
+ + apache2 : Chooses Apache2 support when a package supports both Apache1 and Apache2
- - debug : Tells configure and the makefiles to build for debugging. Effects vary across packages, but generally it will at least add -g to CFLAGS. Remember to set FEATURES=nostrip too
- - doc : Adds extra documentation (API, Javadoc, etc)
- - ldap : Adds LDAP support (Lightweight Directory Access Protocol)
- - mpm-leader : Adds support for the leader Apache MPM
- - mpm-peruser : Adds support for the peruser Apache MPM
- - mpm-prefork : Adds support for the prefork Apache MPM
- - mpm-threadpool : Adds support for the threadpool Apache MPM
- - mpm-worker : Adds support for the worker Apache MPM
- - no-suexec : Don't install suexec with apache
+ + ssl : Adds support for Secure Socket Layer connections
+ + static-modules : Build modules into apache instead of having them load at run time
+ + threads : Adds threads support for various packages. Usually pthreads |
I've noticed no differences in the way apache functions after re-compiling it.
Now embarking on Code: | emerge -e system && emerge -e system && emerge -e world | with this little optimisation. |
|
Back to top |
|
|
aethyr Veteran
Joined: 06 Apr 2003 Posts: 1085 Location: NYC
|
Posted: Wed Apr 06, 2005 2:38 pm Post subject: |
|
|
kimchi_sg wrote: | Now embarking on Code: | emerge -e system && emerge -e system && emerge -e world | with this little optimisation. :D |
I'm still not convinced it's an optimization in anything except # of linked packages that you see when you check with ldd. |
|
Back to top |
|
|
HardenCoonor n00b
Joined: 19 Feb 2004 Posts: 54
|
Posted: Fri Apr 08, 2005 1:50 pm Post subject: |
|
|
At first, thanks for . My kdebase-metas seem to start faster with it, and the numbers of libraries certain apps are linked against has decreased.
Meanwhile, using newer binutils may also have advantages. I use the newest in portage (94.2.2) on my ~x86, and they work just fine. I have recompiled glibc, gcc, binutils and other stuff (KDE-3.4 of course), and all worked.
It also seems that --relax now works on x86, at least there are no error messages.
See https://forums.gentoo.org/viewtopic-t-67777-highlight-relax.html
Prelinking also works with my computer.
Apps working with --as-needed (no stress test yet)
konsole, kicker, krusader and others, mainly from kdebase-meta. |
|
Back to top |
|
|
infirit l33t
Joined: 11 Jan 2003 Posts: 778 Location: Hoofddorp / The Netherlands
|
Posted: Fri Apr 08, 2005 8:49 pm Post subject: |
|
|
There is a easy way to strip -Wl,--as-needed from the LDFLAGS with the flag-o-matic eclass.
Add the following to the top of the ebuild below IUSE Code: | inherit flag-o-matic | and put Code: | # This LDFLAG breaks "bmp"
filter-ldflags "-Wl,--as-needed" | in src_compile
Now the flag can be set globaly in /etc/make.conf
Would devs add this to ebuilds for apps that break with -Wl,--as-needed if I submit bug reports for them? _________________ EASY TO INSTALL = Difficult to install, but instruction manual has pictures.
Join the adopt an unanswered post initiative today |
|
Back to top |
|
|
omnicloud Guru
Joined: 10 Mar 2005 Posts: 550 Location: California
|
Posted: Fri Apr 08, 2005 9:18 pm Post subject: |
|
|
This is kinda weird, Gnome-terminal was broken until I compiled it with these ldflags |
|
Back to top |
|
|
fifthcent n00b
Joined: 28 May 2002 Posts: 36
|
Posted: Fri Apr 08, 2005 11:58 pm Post subject: |
|
|
I was just about to post some info about how to fix ebuilds that break with -Wl,--as-needed, but infirit beat me to it. Although, it may be useful to also have
Code: | filter-flags "-Wl,--as-needed" |
just incase a user does have it in their CFLAGS as well.
If people find ebuilds that do break, it would be best to file bugs it. I just filed a bug about beep-media-player, so hopefully that will get fixed. |
|
Back to top |
|
|
rhill Retired Dev
Joined: 22 Oct 2004 Posts: 1629 Location: sk.ca
|
Posted: Sat Apr 09, 2005 12:42 am Post subject: |
|
|
please don't file bugs about things that break with experimental flags. they'll just get closed as invalid, and waste everybody's time. if you use experimental flags, you do it at your own risk. _________________ by design, by neglect
for a fact or just for effect |
|
Back to top |
|
|
|