Re: Investigation of the F23 mass rebuild

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2015-07-02 at 16:24 +0100, Jonathan Underwood wrote:
> On 2 July 2015 at 15:49, Adam Jackson <ajax@xxxxxxxxxx> wrote:
> > Following up on the hardened cflags change in F23, I wanted to gather
> > some statistics on the actual impact: what the most impacted packages
> > and apps are, what the typical overhead is like, etc. The results
> > are... unpleasant,
> 
> [snip]
> 
> Impressive data mining.. for those following along for educational
> purposes, care to share the scripts you used for this someplace?

I didn't really write down the shell pipelines I used as scripts up
front. But it was something along the lines of:

# grab stuff from rawhide
% koji -q list-tagged-pkgs f23 | awk '{ print $1 }' | \
>     xargs -n1 -P4 koji download-build --arch x86_64

# unpack
% echo *.rpm | xargs -n1 -P4 rpmdev-extract

# grind away everything that isn't an elf file
% cat > elf-p
#!/bin/sh
file -b "$1" | grep -q ELF
^D
% chmod u+x elf-p
% find . -type f \( -exec elf-p {} \; -o -delete \)

# nuke everything that's not a dynamic ELF object
% find . -name \*.o -delete

# Check if a binary was not linked with -z now
% find . -type f | while read i ; do
>    eu-readelf -d "$i" | grep -q BIND_NOW || echo $i
> done

# Find the ten packages with the most non-now objects
% !! | cut -f1 -d/ | sort | uniq -c | sort -nk1 | tail -10

etc.  I'm getting the details wrong there regarding paths containing
spaces, but it turns out there are any elf files in such paths.  Also
this is probably a lot faster if you trim each package as you unpack it
rather than force it all out to disk.

What I _am_ going to need to really write is some tools to inspect
entire loaded object trees for relocation cost and useless linkage, at
which point shell is clearly the wrong language to be using.

- ajax

-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux