This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] sysd-rules: Cut down the number of rtld-% pattern rules
- From: Carlos O'Donell <carlos at redhat dot com>
- To: Florian Weimer <fweimer at redhat dot com>, libc-alpha at sourceware dot org
- Date: Wed, 14 Sep 2016 13:09:46 -0400
- Subject: Re: [PATCH] sysd-rules: Cut down the number of rtld-% pattern rules
- Authentication-results: sourceware.org; auth=none
- References: <20160914152151.17744439929AA@oldenburg.str.redhat.com>
On 09/14/2016 11:21 AM, Florian Weimer wrote:
> rtld only needs shared objects, so the other patterns are pointless and
> significantly increase the work make has to perform while identifying
> which pattern rule to apply.
Wow, that's 520 rules we could remove? If it works, it would be a great
reduction in the total rule count (~30% of the ~1500 rules).
> 2016-09-14 Florian Weimer <fweimer@redhat.com>
>
> * scripts/sysd-rules.awk (BEGIN): Only generate rtld patterns for
> .os objects.
>
> diff --git a/scripts/sysd-rules.awk b/scripts/sysd-rules.awk
> index 69af400..c82e8fd 100644
> --- a/scripts/sysd-rules.awk
> +++ b/scripts/sysd-rules.awk
> @@ -50,6 +50,10 @@ BEGIN {
> split(pattern, td, ":");
> target_pattern = td[1];
> dep_pattern = td[2];
> + # rtld objects are always PIC.
> + if (target_pattern ~ /^rtld/ && o != ".os") {
> + continue;
> + }
> if (target_pattern == "%") {
> command_suffix = "";
> } else {
>
This looks good to me, all the *.os objects going into rtld-libc.a
are shared PIC objects involved in the final link of ld.so.
Everything that needs to be non-PIC is compiled as s*.o and placed
directly into libc.a.
Therefore if you test the above on i686 and x86_64 and it shows no
ABI/API differences then I'd say just commit it.
This would be a really great improvement in compilation times. The
sysd-rules are really one of the limiting factor in
--
Cheers,
Carlos.