libbb: extend "errno pointer" trick to other than __GLIBC__

Savings on musl:

function                                             old     new   delta
resume_main                                          582     614     +32
lbb_prepare                                            -      20     +20
seq_main                                             432     449     +17
fgetsetversion                                        74      88     +14
...
script_main                                         1207    1180     -27
close_silently                                        28       -     -28
shell_builtin_ulimit                                 655     626     -29
lineedit_read_key                                    280     247     -33
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 25/123 up/down: 182/-882)      Total: -700 bytes
   text	   data	    bss	    dec	    hex	filename
1005858	    551	   5676	1012085	  f7175	busybox_old
1005136	    551	   5680	1011367	  f6ea7	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2020-10-01 00:34:44 +02:00
parent 6561e07460
commit b1c7a66ca6
3 changed files with 7 additions and 6 deletions

View file

@ -14,7 +14,7 @@ struct globals;
* but here we make it live in R/W memory */
struct globals *ptr_to_globals;
#ifdef __GLIBC__
#ifdef errno
int *bb_errno;
#endif
@ -27,7 +27,7 @@ int *bb_errno;
* on weird architectures, compilers, linkers and so on */
struct globals *const ptr_to_globals __attribute__ ((section (".data")));
#ifdef __GLIBC__
#ifdef errno
int *const bb_errno __attribute__ ((section (".data")));
#endif