forked from u-boot/u-boot
-
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.
kbuild: sync with Linux Kernel v3.15-rc1
This commit imports Kbuild-related updates from v3.14 to v3.15-rc1. - commit 3d3d6b8474204b6819688c9800774d52d370a538 kbuild: LLVMLinux: Adapt warnings for compilation with clang - commit 61163efae02040f66a95c8ed17f4407951ba58fa kbuild: LLVMLinux: Add Kbuild support for building kernel with Clang - commit 79192ca8ebd9a25c583aa46024a250fef1e7766f scripts: objdiff: detect object code changes between two commits - commit 1c9e70a55b088d97a59241744fe459409d0c3582 kbuild: create a build directory automatically for out-of-tree build - commit a03fcb50e816a69acffb13b5e56db75063aeba8a kbuild: remove redundant '.*.cmd' pattern from make distclean - commit 13338935f1574a2dcd1c891461b0dcc42f8cff42 kbuild: move "quote" to Kbuild.include to be consistent - commit bfdfaeae500a3b194b73b01e92a8034791a58b7f kbuild: specify build_docproc as a phony target - commit f4d4ffc03efc864645b990e1d579bbe1b8e358a4 kbuild: dtbs_install: new make target - commit 1e64ff42ea3d8d2fc8aa71f9717b3c1cb6c2f893 Kbuild, lto: Disable LTO for asm-offsets.c - commit ccbef1674a1579842c7dbdf554efca85d2cd245a Kbuild, lto: add ld-version and ld-ifversion macros - commit ae63b2d7bdd9bd66b88843be0daf8e37d8f0b574 scripts/tags.sh: Ignore *.mod.c - commit e36aaea28972c57a32a3ba5365e61633739719b9 kbuild: Fix silent builds with make-4 Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
- Loading branch information
Showing
7 changed files
with
227 additions
and
13 deletions.
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
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
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
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,8 @@ | ||
#!/usr/bin/awk -f | ||
# extract linker version number from stdin and turn into single number | ||
{ | ||
gsub(".*)", ""); | ||
split($1,a, "."); | ||
print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5]; | ||
exit | ||
} |
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,141 @@ | ||
#!/bin/bash | ||
|
||
# objdiff - a small script for validating that a commit or series of commits | ||
# didn't change object code. | ||
# | ||
# Copyright 2014, Jason Cooper <jason@lakedaemon.net> | ||
# | ||
# Licensed under the terms of the GNU GPL version 2 | ||
|
||
# usage example: | ||
# | ||
# $ git checkout COMMIT_A | ||
# $ <your fancy build command here> | ||
# $ ./scripts/objdiff record path/to/*.o | ||
# | ||
# $ git checkout COMMIT_B | ||
# $ <your fancy build command here> | ||
# $ ./scripts/objdiff record path/to/*.o | ||
# | ||
# $ ./scripts/objdiff diff COMMIT_A COMMIT_B | ||
# $ | ||
|
||
# And to clean up (everything is in .tmp_objdiff/*) | ||
# $ ./scripts/objdiff clean all | ||
# | ||
# Note: 'make mrproper' will also remove .tmp_objdiff | ||
|
||
GIT_DIR="`git rev-parse --git-dir`" | ||
|
||
if [ -d "$GIT_DIR" ]; then | ||
TMPD="${GIT_DIR%git}tmp_objdiff" | ||
|
||
[ -d "$TMPD" ] || mkdir "$TMPD" | ||
else | ||
echo "ERROR: git directory not found." | ||
exit 1 | ||
fi | ||
|
||
usage() { | ||
echo "Usage: $0 <command> <args>" | ||
echo " record <list of object files>" | ||
echo " diff <commitA> <commitB>" | ||
echo " clean all | <commit>" | ||
exit 1 | ||
} | ||
|
||
dorecord() { | ||
[ $# -eq 0 ] && usage | ||
|
||
FILES="$*" | ||
|
||
CMT="`git rev-parse --short HEAD`" | ||
|
||
OBJDUMP="${CROSS_COMPILE}objdump" | ||
OBJDIFFD="$TMPD/$CMT" | ||
|
||
[ ! -d "$OBJDIFFD" ] && mkdir -p "$OBJDIFFD" | ||
|
||
for f in $FILES; do | ||
dn="${f%/*}" | ||
bn="${f##*/}" | ||
|
||
[ ! -d "$OBJDIFFD/$dn" ] && mkdir -p "$OBJDIFFD/$dn" | ||
|
||
# remove addresses for a more clear diff | ||
# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and | ||
$OBJDUMP -D "$f" | sed "s/^[[:space:]]\+[0-9a-f]\+//" \ | ||
>"$OBJDIFFD/$dn/$bn" | ||
done | ||
} | ||
|
||
dodiff() { | ||
[ $# -ne 2 ] && [ $# -ne 0 ] && usage | ||
|
||
if [ $# -eq 0 ]; then | ||
SRC="`git rev-parse --short HEAD^`" | ||
DST="`git rev-parse --short HEAD`" | ||
else | ||
SRC="`git rev-parse --short $1`" | ||
DST="`git rev-parse --short $2`" | ||
fi | ||
|
||
DIFF="`which colordiff`" | ||
|
||
if [ ${#DIFF} -eq 0 ] || [ ! -x "$DIFF" ]; then | ||
DIFF="`which diff`" | ||
fi | ||
|
||
SRCD="$TMPD/$SRC" | ||
DSTD="$TMPD/$DST" | ||
|
||
if [ ! -d "$SRCD" ]; then | ||
echo "ERROR: $SRCD doesn't exist" | ||
exit 1 | ||
fi | ||
|
||
if [ ! -d "$DSTD" ]; then | ||
echo "ERROR: $DSTD doesn't exist" | ||
exit 1 | ||
fi | ||
|
||
$DIFF -Nurd $SRCD $DSTD | ||
} | ||
|
||
doclean() { | ||
[ $# -eq 0 ] && usage | ||
[ $# -gt 1 ] && usage | ||
|
||
if [ "x$1" = "xall" ]; then | ||
rm -rf $TMPD/* | ||
else | ||
CMT="`git rev-parse --short $1`" | ||
|
||
if [ -d "$TMPD/$CMT" ]; then | ||
rm -rf $TMPD/$CMT | ||
else | ||
echo "$CMT not found" | ||
fi | ||
fi | ||
} | ||
|
||
[ $# -eq 0 ] && usage | ||
|
||
case "$1" in | ||
record) | ||
shift | ||
dorecord $* | ||
;; | ||
diff) | ||
shift | ||
dodiff $* | ||
;; | ||
clean) | ||
shift | ||
doclean $* | ||
;; | ||
*) | ||
echo "Unrecognized command '$1'" | ||
exit 1 | ||
;; | ||
esac |