PHP 8.5.2
Preview: objdiff Size: 2.83 KB
//lib/modules/6.8.0-90-generic/build/scripts/objdiff

#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-only

# 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>
#

# 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 .objdiff/*)
# $ ./scripts/objdiff clean all
#
# Note: 'make mrproper' will also remove .objdiff

SRCTREE=$(cd $(git rev-parse --show-toplevel 2>/dev/null); pwd)

if [ -z "$SRCTREE" ]; then
	echo >&2 "ERROR: Not a git repository."
	exit 1
fi

TMPD=$SRCTREE/.objdiff

usage() {
	echo >&2 "Usage: $0 <command> <args>"
	echo >&2 "  record    <list of object files or directories>"
	echo >&2 "  diff      <commitA> <commitB>"
	echo >&2 "  clean     all | <commit>"
	exit 1
}

get_output_dir() {
	dir=${1%/*}

	if [ "$dir" = "$1" ]; then
		dir=.
	fi

	dir=$(cd $dir; pwd)

	echo $TMPD/$CMT${dir#$SRCTREE}
}

do_objdump() {
	dir=$(get_output_dir $1)
	base=${1##*/}
	stripped=$dir/${base%.o}.stripped
	dis=$dir/${base%.o}.dis

	[ ! -d "$dir" ] && mkdir -p $dir

	# remove addresses for a cleaner diff
	# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
	$STRIP -g $1 -R __bug_table -R .note -R .comment -o $stripped
	$OBJDUMP -D $stripped | sed -e "s/^[[:space:]]\+[0-9a-f]\+//" -e "s:^$stripped:$1:" > $dis
}

dorecord() {
	[ $# -eq 0 ] && usage

	FILES="$*"

	CMT="`git rev-parse --short HEAD`"

	STRIP="${CROSS_COMPILE}strip"
	OBJDUMP="${CROSS_COMPILE}objdump"

	for d in $FILES; do
		if [ -d "$d" ]; then
			for f in $(find $d -name '*.o')
			do
				do_objdump $f
			done
		else
			do_objdump $d
		fi
	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 >&2 "ERROR: $SRCD doesn't exist"
		exit 1
	fi

	if [ ! -d "$DSTD" ]; then
		echo >&2 "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 >&2 "$CMT not found"
		fi
	fi
}

[ $# -eq 0 ] &&	usage

case "$1" in
	record)
		shift
		dorecord $*
		;;
	diff)
		shift
		dodiff $*
		;;
	clean)
		shift
		doclean $*
		;;
	*)
		echo >&2 "Unrecognized command '$1'"
		exit 1
		;;
esac

Directory Contents

Dirs: 15 × Files: 153

Name Size Perms Modified Actions
atomic DIR
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
basic DIR
- drwxr-xr-x 2026-01-08 12:55:49
Edit Download
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
dtc DIR
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
gdb DIR
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
genksyms DIR
- drwxr-xr-x 2026-01-08 12:55:49
Edit Download
kconfig DIR
- drwxr-xr-x 2026-01-08 12:55:49
Edit Download
ksymoops DIR
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
mod DIR
- drwxr-xr-x 2026-01-08 12:55:49
Edit Download
package DIR
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
selinux DIR
- drwxr-xr-x 2026-01-08 12:55:49
Edit Download
tracing DIR
- drwxr-xr-x 2026-01-08 12:55:47
Edit Download
2.03 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
34.30 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
35.32 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
3.77 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
5.64 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
31.73 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
166 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.36 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
298 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
3.66 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
15.05 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.10 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.94 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
15.75 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
233.78 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
5.96 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
7.51 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
2.16 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
4.93 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
3.46 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
5.06 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
7.90 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
4.67 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.40 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
4.86 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
7.58 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
697 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
6.07 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
4.12 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
5.67 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
4.50 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
1.74 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
3.66 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
3.75 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.66 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
44.62 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
8.63 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
86 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.27 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
405 B lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
195 B lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
228 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
5.95 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
5.54 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
509.15 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
5.58 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
25.36 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
24.54 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
14.61 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
67.63 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
2.08 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
564 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
1.36 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
3.50 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
2.76 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
21.59 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
13.08 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
986 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
2.56 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
21.71 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
17.75 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
10.10 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
2.65 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
77.13 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
1.82 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
12.84 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
502 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
7.66 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
1.87 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
1.82 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
638 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
17.20 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
1.61 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
1.87 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
2.74 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
1.12 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
1.04 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
1.03 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
7.13 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
2.59 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
2.88 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
5.91 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
2.45 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
333 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
1004 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
208 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
21.08 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
2.63 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
4.02 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
4.69 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
8.73 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
511 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
779 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
1.59 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
1.15 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
1.48 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
3.27 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
808 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
7.92 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
630 B lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
509 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
642 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
2.08 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
414 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
615 B lrw-r--r-- 2025-11-18 11:26:33
Edit Download
1.43 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
443 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.63 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
2.83 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
848 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
316 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
269 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
4.54 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
9.95 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
414 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
912 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
17.51 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
19.37 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
17.34 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
717 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.29 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
3.25 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
9.48 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
9.48 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
91 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
17.70 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
5.18 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
3.04 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
25.84 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
9.93 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
21.30 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
7.68 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
12.99 KB lrw-r--r-- 2025-11-18 11:26:33
Edit Download
284 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
15.23 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
417 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
34.18 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
25.07 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
604 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.84 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
794 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
647 B lrw-r--r-- 2024-03-10 20:38:09
Edit Download
1.89 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.45 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
1.82 KB lrwxr-xr-x 2025-11-18 11:26:33
Edit Download
10.73 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
376 B lrw-r--r-- 2025-11-18 11:26:33
Edit Download
2.23 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
726 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
34.80 KB lrw-r--r-- 2024-03-10 20:38:09
Edit Download
2.59 KB lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
386 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download
516 B lrwxr-xr-x 2024-03-10 20:38:09
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).