2015-11-27 09:11:47

by Riku Voipio

[permalink] [raw]
Subject: [PATCH] uselib: default depending if libc5 was used

uselib hasn't been used since libc5; glibc does not use it.
Deprecate uselib a bit more, by making the default y only
if libc5 was widely used on the plaform.

This makes arm64 kernel built with defconfig slighly smaller

bloat-o-meter:
add/remove: 0/3 grow/shrink: 0/2 up/down: 0/-1390 (-1390)
function old new delta
kernel_config_data 18164 18162 -2
uselib_flags 20 - -20
padzero 216 192 -24
sys_uselib 380 - -380
load_elf_library 964 - -964

Signed-off-by: Riku Voipio <[email protected]>
Cc: Josh Triplett <[email protected]>
---
init/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/init/Kconfig b/init/Kconfig
index c24b6f7..bef326d 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -285,7 +285,7 @@ config FHANDLE

config USELIB
bool "uselib syscall"
- default y
+ def_bool ALPHA || M68K || SPARC || X86
help
This option enables the uselib syscall, a system call used in the
dynamic linker from libc5 and earlier. glibc does not use this
--
2.6.2


2015-11-27 09:33:24

by Josh Triplett

[permalink] [raw]
Subject: Re: [PATCH] uselib: default depending if libc5 was used

On Fri, Nov 27, 2015 at 11:11:26AM +0200, Riku Voipio wrote:
> uselib hasn't been used since libc5; glibc does not use it.
> Deprecate uselib a bit more, by making the default y only
> if libc5 was widely used on the plaform.
>
> This makes arm64 kernel built with defconfig slighly smaller
>
> bloat-o-meter:
> add/remove: 0/3 grow/shrink: 0/2 up/down: 0/-1390 (-1390)
> function old new delta
> kernel_config_data 18164 18162 -2
> uselib_flags 20 - -20
> padzero 216 192 -24
> sys_uselib 380 - -380
> load_elf_library 964 - -964
>
> Signed-off-by: Riku Voipio <[email protected]>
> Cc: Josh Triplett <[email protected]>

Seems sensible. Can you also make it only "default y" on 32-bit x86,
not 64-bit x86, since the latter never had libc5?

With that change:
Reviewed-by: Josh Triplett <[email protected]>

> init/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/init/Kconfig b/init/Kconfig
> index c24b6f7..bef326d 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -285,7 +285,7 @@ config FHANDLE
>
> config USELIB
> bool "uselib syscall"
> - default y
> + def_bool ALPHA || M68K || SPARC || X86
> help
> This option enables the uselib syscall, a system call used in the
> dynamic linker from libc5 and earlier. glibc does not use this
> --
> 2.6.2
>

2015-11-27 10:48:32

by Riku Voipio

[permalink] [raw]
Subject: Re: [PATCH] uselib: default depending if libc5 was used

On 27 November 2015 at 11:33, Josh Triplett <[email protected]> wrote:
> On Fri, Nov 27, 2015 at 11:11:26AM +0200, Riku Voipio wrote:
>> uselib hasn't been used since libc5; glibc does not use it.
>> Deprecate uselib a bit more, by making the default y only
>> if libc5 was widely used on the plaform.
>>
>> This makes arm64 kernel built with defconfig slighly smaller
>>
>> bloat-o-meter:
>> add/remove: 0/3 grow/shrink: 0/2 up/down: 0/-1390 (-1390)
>> function old new delta
>> kernel_config_data 18164 18162 -2
>> uselib_flags 20 - -20
>> padzero 216 192 -24
>> sys_uselib 380 - -380
>> load_elf_library 964 - -964
>>
>> Signed-off-by: Riku Voipio <[email protected]>
>> Cc: Josh Triplett <[email protected]>
>
> Seems sensible. Can you also make it only "default y" on 32-bit x86,
> not 64-bit x86, since the latter never had libc5?

but running 32bit libc5 apps is possible with X86_64 kernel, so the
check would become:

|| X86_32 || (X86_64 && IA32_EMULATION)

> With that change:
> Reviewed-by: Josh Triplett <[email protected]>
>
>> init/Kconfig | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/init/Kconfig b/init/Kconfig
>> index c24b6f7..bef326d 100644
>> --- a/init/Kconfig
>> +++ b/init/Kconfig
>> @@ -285,7 +285,7 @@ config FHANDLE
>>
>> config USELIB
>> bool "uselib syscall"
>> - default y
>> + def_bool ALPHA || M68K || SPARC || X86
>> help
>> This option enables the uselib syscall, a system call used in the
>> dynamic linker from libc5 and earlier. glibc does not use this
>> --
>> 2.6.2
>>

2015-11-27 20:05:10

by Josh Triplett

[permalink] [raw]
Subject: Re: [PATCH] uselib: default depending if libc5 was used

On Fri, Nov 27, 2015 at 12:48:29PM +0200, Riku Voipio wrote:
> On 27 November 2015 at 11:33, Josh Triplett <[email protected]> wrote:
> > On Fri, Nov 27, 2015 at 11:11:26AM +0200, Riku Voipio wrote:
> >> uselib hasn't been used since libc5; glibc does not use it.
> >> Deprecate uselib a bit more, by making the default y only
> >> if libc5 was widely used on the plaform.
> >>
> >> This makes arm64 kernel built with defconfig slighly smaller
> >>
> >> bloat-o-meter:
> >> add/remove: 0/3 grow/shrink: 0/2 up/down: 0/-1390 (-1390)
> >> function old new delta
> >> kernel_config_data 18164 18162 -2
> >> uselib_flags 20 - -20
> >> padzero 216 192 -24
> >> sys_uselib 380 - -380
> >> load_elf_library 964 - -964
> >>
> >> Signed-off-by: Riku Voipio <[email protected]>
> >> Cc: Josh Triplett <[email protected]>
> >
> > Seems sensible. Can you also make it only "default y" on 32-bit x86,
> > not 64-bit x86, since the latter never had libc5?
>
> but running 32bit libc5 apps is possible with X86_64 kernel, so the
> check would become:
>
> || X86_32 || (X86_64 && IA32_EMULATION)

Fair point. Seems unlikely that anyone would do so, but certainly possible.

> > With that change:
> > Reviewed-by: Josh Triplett <[email protected]>
> >
> >> init/Kconfig | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/init/Kconfig b/init/Kconfig
> >> index c24b6f7..bef326d 100644
> >> --- a/init/Kconfig
> >> +++ b/init/Kconfig
> >> @@ -285,7 +285,7 @@ config FHANDLE
> >>
> >> config USELIB
> >> bool "uselib syscall"
> >> - default y
> >> + def_bool ALPHA || M68K || SPARC || X86
> >> help
> >> This option enables the uselib syscall, a system call used in the
> >> dynamic linker from libc5 and earlier. glibc does not use this
> >> --
> >> 2.6.2
> >>