powerpc: Check prom_init for disallowed sections
prom_init.c must not modify the kernel image outside of the .bss.prominit section. Thus make sure that prom_init.o doesn't have anything in any of these: .data .bss .init.data Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
5f69e38885
commit
2c51d97ee8
|
@ -28,6 +28,18 @@ OBJ="$2"
|
|||
|
||||
ERROR=0
|
||||
|
||||
function check_section()
|
||||
{
|
||||
file=$1
|
||||
section=$2
|
||||
size=$(objdump -h -j $section $file 2>/dev/null | awk "\$2 == \"$section\" {print \$3}")
|
||||
size=${size:-0}
|
||||
if [ $size -ne 0 ]; then
|
||||
ERROR=1
|
||||
echo "Error: Section $section not empty in prom_init.c" >&2
|
||||
fi
|
||||
}
|
||||
|
||||
for UNDEF in $($NM -u $OBJ | awk '{print $2}')
|
||||
do
|
||||
# On 64-bit nm gives us the function descriptors, which have
|
||||
|
@ -66,4 +78,8 @@ do
|
|||
fi
|
||||
done
|
||||
|
||||
check_section $OBJ .data
|
||||
check_section $OBJ .bss
|
||||
check_section $OBJ .init.data
|
||||
|
||||
exit $ERROR
|
||||
|
|
Loading…
Reference in New Issue