From 93e1aaa1c7e5ed6d2704262700ec28837bdfc9b7 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 21 Apr 2016 21:47:45 +0200 Subject: [PATCH] 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 --- libbb/common_bufsiz.c | 4 ++-- scripts/generate_BUFSIZ.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libbb/common_bufsiz.c b/libbb/common_bufsiz.c index 26faafcbb..1a3585169 100644 --- a/libbb/common_bufsiz.c +++ b/libbb/common_bufsiz.c @@ -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 diff --git a/scripts/generate_BUFSIZ.sh b/scripts/generate_BUFSIZ.sh index d54142597..1914fa0f5 100755 --- a/scripts/generate_BUFSIZ.sh +++ b/scripts/generate_BUFSIZ.sh @@ -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: