|
From: Bruce S. <bw...@ar...> - 2003-06-22 20:27:07
|
> > We could find out for sure if there was some way to determine what arch > > a pre-compiled binary was compiled for. (I could check my i686 compiled > > DL and see). Except I don't know of any way to tell. Does anyone know > > of a way to tell? > > I thought that using readelf would do it but it's displaying the same > machine info for DL compiled binaries for a 486 and binaries compiled on > my Mandrake which is compiled for i586. > > If you do a readelf -a <binary name> you'll see at the very top of the > listing elf header information. One of the lines has. > > "Machine : Intel 80386" > > I would assume that this is where the -march=???? should go but doesn't > appear to. It's always 80386. Yes, that doesn't work. I tried it on the same program I compiled two different ways. It displays the same for both. I suppose we could specifically compile one with -march=i686 and again without any -march options, and compare the two binaries. > > For some applications it would make no difference. But it can make a > > big difference for some packages. For example almost all programs use > > glibc extensively, so it will help a lot there. And it can help > > stand-alone programs which are CPU intensive, like OpenSSL. > > > > We could go through and modify the few packages it would help and forget > > the rest (like Redhat does on their distribution). Or do everything. > > > I agree that it would affect some applications. If we do some packages > then when lets keep in mind that one day all of them would be done too.. > Obviously starting with the packages that would have the most affect, > can you think of any others packages other then glibc and openssl? I used those two as examples because Redhat supplies multiple arch's for those RPM's. I suppose anything that does encryption or a lot of math could use it. OpenSSH, all the VPN packages, gnupg, ... - BS |