aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2016-04-21 21:47:45 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2016-04-21 21:47:45 +0200
commit93e1aaa1c7e5ed6d2704262700ec28837bdfc9b7 (patch)
treeff6196f459e660dcce943bf0e1f79a46cf09e6fc
parentf56fb5eb1120a92bdfb6d0ce64b3430b42a2efa0 (diff)
downloadbusybox-w32-93e1aaa1c7e5ed6d2704262700ec28837bdfc9b7.tar.gz
busybox-w32-93e1aaa1c7e5ed6d2704262700ec28837bdfc9b7.tar.bz2
busybox-w32-93e1aaa1c7e5ed6d2704262700ec28837bdfc9b7.zip
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>
-rw-r--r--libbb/common_bufsiz.c4
-rwxr-xr-xscripts/generate_BUFSIZ.sh2
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));
58 * It is not defined as a dummy macro. 58 * It is not defined as a dummy macro.
59 * It means we have to provide this function. 59 * It means we have to provide this function.
60 */ 60 */
61char* bb_common_bufsiz1; 61char *const bb_common_bufsiz1 __attribute__ ((section (".data")));
62void setup_common_bufsiz(void) 62void setup_common_bufsiz(void)
63{ 63{
64 if (!bb_common_bufsiz1) 64 if (!bb_common_bufsiz1)
65 bb_common_bufsiz1 = xzalloc(COMMON_BUFSIZE); 65 *(char**)&bb_common_bufsiz1 = xzalloc(COMMON_BUFSIZE);
66} 66}
67# else 67# else
68# ifndef bb_common_bufsiz1 68# 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
77 # users will need to malloc it. 77 # users will need to malloc it.
78 { 78 {
79 echo "enum { COMMON_BUFSIZE = 1024 };" 79 echo "enum { COMMON_BUFSIZE = 1024 };"
80 echo "extern char *bb_common_bufsiz1;" 80 echo "extern char *const bb_common_bufsiz1;"
81 echo "void setup_common_bufsiz(void);" 81 echo "void setup_common_bufsiz(void);"
82 } | regenerate "$common_bufsiz_h" 82 } | regenerate "$common_bufsiz_h"
83 # Check that we aren't left with a buggy binary: 83 # Check that we aren't left with a buggy binary: