u-boot/tools/scripts/make-asm-offsets
Wolfgang Denk e4691f5ed1 make-asm-offsets: fix sed script
When copying the "sed" script to generate the asm-offsets.h file from
the Linux Kbuild script into the make-asm-offsets file I missed the
fact that the former runs in a "make" context and thus uses double
"$$" to escape a single "$", while the latter is a shell script, where
this must not be done.  Unfortunately the problem did not show up
during the initial tests on Power Architecture systems, but on ARM the
generated asm-offsets.h was not correct.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Tested-by: Heiko Schocher <hs@denx.de>
Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
2010-10-27 20:16:52 +02:00

28 lines
689 B
Bash
Executable File

#!/bin/sh
# Adapted from Linux kernel's "Kbuild":
# commit 1cdf25d704f7951d02a04064c97db547d6021872
# Author: Christoph Lameter <clameter@sgi.com>
mkdir -p $(dirname $2)
# Default sed regexp - multiline due to syntax constraints
SED_CMD="/^->/{s:->#\(.*\):/* \1 */:; \
s:^->\([^ ]*\) [\$#]*\([-0-9]*\) \(.*\):#define \1 (\2) /* \3 */:; \
s:^->\([^ ]*\) [\$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
s:->::; p;}"
(set -e
echo "#ifndef __ASM_OFFSETS_H__"
echo "#define __ASM_OFFSETS_H__"
echo "/*"
echo " * DO NOT MODIFY."
echo " *"
echo " * This file was generated by $(basename $0)"
echo " *"
echo " */"
echo ""
sed -ne "${SED_CMD}" $1
echo ""
echo "#endif" ) > $2