View previous topic :: View next topic |
Author |
Message |
weaksauce Apprentice
Joined: 17 Nov 2005 Posts: 204 Location: NYC
|
Posted: Mon Oct 27, 2008 7:01 pm Post subject: current state of ldflags |
|
|
I'm just curious with the most recent version of binutils, what are safe ldflags to be used with gentoo? The only ldflags threads on the forums seem to be quite old, especially in relation to newer binutils / gcc etc. The wiki had a little bit of info on ldflags (but now it's down) but I'm just wondering what's safe / useful and which (if any) are now included by default...
Thanks |
|
Back to top |
|
|
button n00b
Joined: 24 Dec 2007 Posts: 65 Location: Croatia
|
Posted: Mon Oct 27, 2008 7:41 pm Post subject: |
|
|
My LDFLAGS are "-Wl,-O1". I recall getting them from some thread at these forums some time ago. I am sure they are safe because I have never had a single problem with them, however I am not sure if they are useful at all. |
|
Back to top |
|
|
weaksauce Apprentice
Joined: 17 Nov 2005 Posts: 204 Location: NYC
|
Posted: Mon Oct 27, 2008 8:30 pm Post subject: |
|
|
Right, I've seen that too. It's not that they aren't useful, but I am curious as to whether they are default now or not (I thought I saw something on an email list about that once) I am fairly confident that the gnu hashstyle is default now... |
|
Back to top |
|
|
notHerbert Advocate
Joined: 11 Mar 2008 Posts: 2228 Location: 45N 73W
|
Posted: Mon Oct 27, 2008 9:09 pm Post subject: |
|
|
Code: | grep LDFLAGS /usr/portage/profiles/default/linux/make.defaults
# Adding LDFLAGS="-Wl,-O1 for all Linux profiles by default
# direction with how LDFLAGS will be set by default, this entry
LDFLAGS="-Wl,-O1" |
|
|
Back to top |
|
|
weaksauce Apprentice
Joined: 17 Nov 2005 Posts: 204 Location: NYC
|
Posted: Mon Oct 27, 2008 9:25 pm Post subject: |
|
|
Thanks for the response! Now, is this file always used, independent of your profile selected, i.e. the output of
Code: |
eselect profile list
|
and the make.defaults file it points to? In my case, I have default/linux/x86/2008.0/desktop which points to
Code: |
# cat /usr/portage/profiles/default/linux/x86/2008.0/desktop/parent
../../../../../targets/desktop
|
which is
Code: |
/usr/portage/profiles/targets/desktop/make.defaults
|
it seems these are additive not exclusive, but I'm just making sure. Also, is there a way, perhaps using readelf, to check which binaries were compiled with these LDFLAGS? I know to check for gnustyle you can grep the output of readelf -a, but what about for these guys? |
|
Back to top |
|
|
notHerbert Advocate
Joined: 11 Mar 2008 Posts: 2228 Location: 45N 73W
|
Posted: Mon Oct 27, 2008 9:53 pm Post subject: |
|
|
Ya, that seems complicated. Well, I commented out my LDFLAGS in /etc/make.conf then Code: | emerge --info | grep LDFLAGS
LDFLAGS="-Wl,-O1" |
This is a default/linux/x86/2008.0/desktop profile. |
|
Back to top |
|
|
notHerbert Advocate
Joined: 11 Mar 2008 Posts: 2228 Location: 45N 73W
|
Posted: Fri Oct 31, 2008 5:59 pm Post subject: |
|
|
weaksauce wrote: | I know to check for gnustyle you can grep the output of readelf -a, but what about for these guys? |
I think that the gnustyle ldflag is not supported. |
|
Back to top |
|
|
weaksauce Apprentice
Joined: 17 Nov 2005 Posts: 204 Location: NYC
|
Posted: Fri Oct 31, 2008 7:07 pm Post subject: |
|
|
so, actually, it seems like --hash-style=gnu the devs would like to include as a default, but they don't because MIPS doesn't support it.
http://www.nabble.com/LDFLAGS%3D-Wl,--hash-style%3Dgnu-td18473155.html
so, can we add this LDFLAG? Is it already there?
[EDIT] or actually, the question should be, is adding Code: | -Wl,--hash-style=both | helpful/safe? |
|
Back to top |
|
|
notHerbert Advocate
Joined: 11 Mar 2008 Posts: 2228 Location: 45N 73W
|
Posted: Fri Oct 31, 2008 7:36 pm Post subject: |
|
|
weaksauce wrote: | is adding Code: | -Wl,--hash-style=both | helpful/safe? |
My understanding is that this is not supported. My experience is that it is not necessarily unsafe, but I never emerged and tested every single ebuild. Is it helpful? If it's not supported then probably not. At any rate when I discovered that it's not supported I took mine out.
Besides there are several nice supported ldflags, so why bother with unsupported ones anyway!
|
|
Back to top |
|
|
weaksauce Apprentice
Joined: 17 Nov 2005 Posts: 204 Location: NYC
|
Posted: Fri Oct 31, 2008 8:03 pm Post subject: |
|
|
So, to which list / set of LDFLAGS are you referring to when you say supported? Supported by whom? I'm not afraid to have a bit of an 'unstable' system (I've always run ~ and I use some stuff from sunrise and kde-testing) but I don't want stuff not to work. I'm just trying to sift through mailing lists like the one posted above, the gist of which seemed to me, 'we would include --hash-style=both if a) it was supported on MIPS and b) it didn't require a specific version of binutils'
In a case like that, I know I don't have MIPS and have the latest binutils, and would want to use it. Are there other LDFLAGS in a similar situation? If so, I'd like to be using them! |
|
Back to top |
|
|
zyko l33t
Joined: 01 Jun 2008 Posts: 620 Location: Munich, Germany
|
Posted: Sat Nov 01, 2008 11:13 am Post subject: |
|
|
Quote: | I'm just curious with the most recent version of binutils, what are safe ldflags to be used with gentoo? |
By now, -O1, --sort-common and --as-needed are more or less accepted to be safe in general.
If you listen in to the discussions, some people believe --as-needed to be deeply flawed in principle. It still seems to do some (very minor) good in practice.
Quote: | So, to which list / set of LDFLAGS are you referring to when you say supported? Supported by whom? |
Exactly
"Officially supported" seems to be an empty phrase in general, even on distributions that actually offer official support. I've no idea why people still fall for this. |
|
Back to top |
|
|
notHerbert Advocate
Joined: 11 Mar 2008 Posts: 2228 Location: 45N 73W
|
Posted: Sat Nov 01, 2008 3:55 pm Post subject: |
|
|
Here is the output of ps awx | grep 'make -j' during a gcc build Code: | 17688 tty1 S+ 0:00 make -j1 -j1 LDFLAGS=-Wl,-O1 -Bdirect -Wl,-z,now -Wl,-z,relro -Wl,--sort-common -Wl,--as-needed STAGE1_CFLAGS=-O LIBPATH=/usr/lib/gcc/i686-pc-linux-gnu/4.3.2 BOOT_CFLAGS= -march=native -O2 -pipe profiledbootstrap |
BTW: The easiest way to know if an ldflag is unsupported is when emerge complains. |
|
Back to top |
|
|
Arfrever Bodhisattva
Joined: 29 Apr 2006 Posts: 2463 Location: 異世界
|
Posted: Sat Nov 01, 2008 8:27 pm Post subject: |
|
|
notHerbert wrote: | weaksauce wrote: | is adding Code: | -Wl,--hash-style=both | helpful/safe? |
My understanding is that this is not supported. My experience is that it is not necessarily unsafe, but I never emerged and tested every single ebuild. Is it helpful? If it's not supported then probably not. At any rate when I discovered that it's not supported I took mine out. |
-Wl,--hash-style=both is enabled by default by a patch for sys-devel/binutils when USE="-vanilla".
Explicitly specifying -Wl,--hash-style=gnu in LDFLAGS would override default -Wl,--hash-style=both and enable the QA check in Portage for respecting LDFLAGS. |
|
Back to top |
|
|
weaksauce Apprentice
Joined: 17 Nov 2005 Posts: 204 Location: NYC
|
Posted: Sat Nov 01, 2008 9:58 pm Post subject: |
|
|
So, I'm not particularly sure of the inner workings of LDFLAGS. If that flag gets applied to binutils, does that automatically mean everything gets the optimizations? Also, are there any LDFLAGS that are usefull that aren't default that are useful that are only not included because of arch/binutils version or other easily recognizable/fixable problems?
Thanks everyone for your help. It's not that I'm really itching for another 1.1% of performance, I'm just trying to figure out exactly what's going on with them, since on the CFLAGS front the -march=native was such a cool little creation, just looking for other gems. |
|
Back to top |
|
|
d2_racing Bodhisattva
Joined: 25 Apr 2005 Posts: 13047 Location: Ste-Foy,Canada
|
Posted: Sat Nov 01, 2008 10:30 pm Post subject: |
|
|
In fact, it's pretty awesome
Also, if you want to add some speed on your box, there a bunch of people that are testing ramdisk for tmpfs.
It seems to boost a lot of stuff. |
|
Back to top |
|
|
|