elf: sort tunables list from ld.so
DJ Delorie
dj@redhat.com
Fri Jun 7 21:22:26 GMT 2024
sort output from "ld.so --list-tunables"
diff --git a/elf/dl-tunables.c b/elf/dl-tunables.c
index 147cc4cf23..f79fa0827e 100644
--- a/elf/dl-tunables.c
+++ b/elf/dl-tunables.c
@@ -357,9 +357,28 @@ __tunables_init (char **envp)
void
__tunables_print (void)
{
- for (int i = 0; i < array_length (tunable_list); i++)
+ int i, j;
+ int sortmap [array_length (tunable_list)];
+
+ for (i = 0; i < array_length (tunable_list); i++)
+ sortmap [i] = i;
+ /* Quick bubble sort is sufficient. */
+ for (i = 0; i < array_length (tunable_list) - 1; i++)
+ for (j = i+1; j < array_length (tunable_list); j++)
+ {
+ const char *ni = tunable_list[sortmap[i]].name;
+ const char *nj = tunable_list[sortmap[j]].name;
+ if (strcmp (ni, nj) > 0)
+ {
+ int t = sortmap[i];
+ sortmap[i] = sortmap[j];
+ sortmap[j] = t;
+ }
+ }
+
+ for (i = 0; i < array_length (tunable_list); i++)
{
- const tunable_t *cur = &tunable_list[i];
+ const tunable_t *cur = &tunable_list[sortmap[i]];
if (cur->type.type_code == TUNABLE_TYPE_STRING
&& cur->val.strval.str == NULL)
_dl_printf ("%s:\n", cur->name);
More information about the Libc-alpha
mailing list