-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Michael Ellerman
authored and
Paul Mackerras
committed
Apr 24, 2008
1 parent
c40397f
commit 468ebec
Showing
3 changed files
with
68 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: d9e9d82c24e55b8a0fcc89032fdf9f58f1fb56d7 | ||
refs/heads/master: 5c02cd2fb83bd4a11270eeb6682e507f04897837 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright © 2008 IBM Corporation | ||
# | ||
# This program is free software; you can redistribute it and/or | ||
# modify it under the terms of the GNU General Public License | ||
# as published by the Free Software Foundation; either version | ||
# 2 of the License, or (at your option) any later version. | ||
|
||
# This script checks prom_init.o to see what external symbols it | ||
# is using, if it finds symbols not in the whitelist it returns | ||
# an error. The point of this is to discourage people from | ||
# intentionally or accidentally adding new code to prom_init.c | ||
# which has side effects on other parts of the kernel. | ||
|
||
# If you really need to reference something from prom_init.o add | ||
# it to the list below: | ||
|
||
WHITELIST="add_reloc_offset __bss_start __bss_stop copy_and_flush | ||
_end enter_prom memcpy memset reloc_offset __secondary_hold | ||
__secondary_hold_acknowledge __secondary_hold_spinloop __start | ||
strcmp strcpy strlcpy strlen strncmp strstr logo_linux_clut224 | ||
reloc_got2" | ||
|
||
NM="$1" | ||
OBJ="$2" | ||
|
||
ERROR=0 | ||
|
||
for UNDEF in $($NM -u $OBJ | awk '{print $2}') | ||
do | ||
# On 64-bit nm gives us the function descriptors, which have | ||
# a leading . on the name, so strip it off here. | ||
UNDEF="${UNDEF#.}" | ||
|
||
if [ $KBUILD_VERBOSE ]; then | ||
if [ $KBUILD_VERBOSE -ne 0 ]; then | ||
echo "Checking prom_init.o symbol '$UNDEF'" | ||
fi | ||
fi | ||
|
||
OK=0 | ||
for WHITE in $WHITELIST | ||
do | ||
if [ "$UNDEF" = "$WHITE" ]; then | ||
OK=1 | ||
break | ||
fi | ||
done | ||
|
||
if [ $OK -eq 0 ]; then | ||
ERROR=1 | ||
echo "Error: External symbol '$UNDEF' referenced" \ | ||
"from prom_init.c" >&2 | ||
fi | ||
done | ||
|
||
exit $ERROR |