On 16.07.2012 12:56, Aurelien Jarno wrote:
> Some messages strings are defined with ALIGN1 in libbb/messages.c
> to make sure strings are not aligned and thus to save some bytes. The
> corresponding declaration in include/libbb.h should also use ALIGN1,
> otherwise the compiler may assume they are aligned and generate wrong
> code to access them. This is the case on at least s390x.
> 
> Signed-off-by: Aurelien Jarno <[email protected]>
> ---
>  include/libbb.h |   36 ++++++++++++++++++------------------
>  1 file changed, 18 insertions(+), 18 deletions(-)
> 
> diff --git a/include/libbb.h b/include/libbb.h
> index 322a28c..f22e58e 100644
> --- a/include/libbb.h
> +++ b/include/libbb.h
> @@ -1612,8 +1612,8 @@ unsigned get_cpu_count(void) FAST_FUNC;
>  char *percent_decode_in_place(char *str, int strict) FAST_FUNC;
>  
>  
> -extern const char bb_uuenc_tbl_base64[];
> -extern const char bb_uuenc_tbl_std[];
> +extern const char bb_uuenc_tbl_base64[] ALIGN1;
> +extern const char bb_uuenc_tbl_std[] ALIGN1;

I wonder whenever changing all these from arrays to
pointers is a good idea?  Compiler should not assume
any alignments about pointer to char, unlike an array,
I think.

I mean,

-extern const char bb_uuenc_tbl_base64[];
+extern const char *bb_uuenc_tbl_base64;

Besides, this, and a few others (bb_hexdigits_upcase),
might be better without alignment.

Thanks,

/mjt
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to