libbb: constify *bb_common_bufsiz1 (if it is compiled to be a pointer)

This lets gcc optimize much better:

   text	   data	    bss	    dec	    hex	filename
 922846	    910	  13056	 936812	  e4b6c	busybox_unstripped.nonconst
 920255	    910	  13056	 934221	  e414d	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2016-04-21 21:47:45 +02:00
parent f56fb5eb11
commit 93e1aaa1c7
2 changed files with 3 additions and 3 deletions

View File

@ -58,11 +58,11 @@ char bb_common_bufsiz1[COMMON_BUFSIZE] ALIGNED(sizeof(long long));
* It is not defined as a dummy macro.
* It means we have to provide this function.
*/
char* bb_common_bufsiz1;
char *const bb_common_bufsiz1 __attribute__ ((section (".data")));
void setup_common_bufsiz(void)
{
if (!bb_common_bufsiz1)
bb_common_bufsiz1 = xzalloc(COMMON_BUFSIZE);
*(char**)&bb_common_bufsiz1 = xzalloc(COMMON_BUFSIZE);
}
# else
# ifndef bb_common_bufsiz1

View File

@ -77,7 +77,7 @@ if test $REM -lt 1024; then
# users will need to malloc it.
{
echo "enum { COMMON_BUFSIZE = 1024 };"
echo "extern char *bb_common_bufsiz1;"
echo "extern char *const bb_common_bufsiz1;"
echo "void setup_common_bufsiz(void);"
} | regenerate "$common_bufsiz_h"
# Check that we aren't left with a buggy binary: