On Sun, 2008-03-30 at 16:27 -0400, Mike Frysinger wrote:
> The envcrc.c does sizeof(unsigned long) when calculating the crc, but this
> is done with the build toolchain instead of the target toolchain, so if
> the build is a 64bit system but the target is 32bits, the size will
> obviously be wrong.  This introduces a sizeof.sh script to calculate the
> required sizeof() value of any type with any compiler.
> 
> Signed-off-by: Mike Frysinger <[EMAIL PROTECTED]>

[SNIP]

> diff --git a/tools/sizeof.sh b/tools/sizeof.sh
> new file mode 100755
> index 0000000..e17596c
> --- /dev/null
> +++ b/tools/sizeof.sh
> @@ -0,0 +1,35 @@
> +#!/bin/sh
> +# Get the sizeof(type) for a compiler
> +
> +type="$*"
> +CC=${CC:-gcc}
> +
> +if [ -z "$type" ] ; then
> +     echo "Usage: sizeof.sh <type>" 1>&2
> +     exit 1
> +fi
> +
> +test_size() {
> +     cat <<-EOF > sizeof.c
> +     typedef $type ac__type_sizeof_;
> +     int main() {
> +             static int test_array [1 - 2 * !(((long int) (sizeof 
> (ac__type_sizeof_))) <= $size)];
> +             test_array [0] = 0;
> +             return 0;
> +     }
> +     EOF
> +     ${CC} -c sizeof.c >/dev/null 2>&1
> +     ret=$?
> +     rm -f sizeof.[co]
> +     return $ret
> +}
> +
> +size=0
> +while [ ${size} -lt 64 ] ; do
> +     if test_size ${size} ; then
> +             echo ${size}
> +             exit 0
> +     fi
> +     ((size+=1))
> +done
> +exit 1

Cool script, which reminds me about something: Is it possible to
define a script that can output if the cpu is Big Endian or 
Little Endian?

If one ever wanted to port the optimised crc32 from linux to u-boot one
needs to know the endian of the CPU.

 Jocke

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to