mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-11-03 14:33:37 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
# released to public domain
 | 
						|
 | 
						|
help()
 | 
						|
{
 | 
						|
	cat << eof
 | 
						|
 | 
						|
usage: $1 [-v] <esp-open-sdk path>
 | 
						|
 | 
						|
For each binary-only library file from ESP-NONOS-SDK, this script searches for
 | 
						|
the exact commits and reports matching versions and commit urls.
 | 
						|
 | 
						|
The argument must be the ESP-NONOS-SDK git-cloned directory.  It is left
 | 
						|
unmodified, and is locally cloned to work with.  The local copy is then
 | 
						|
removed.
 | 
						|
 | 
						|
Because of libmain.a local tweaks, comparison is done for each .a file by
 | 
						|
extracting object files, removing the potentially modified ones
 | 
						|
(mem_manager.o time.o user_interface.o eagle_lwip_if.o) and doing a md5
 | 
						|
check against the core files.
 | 
						|
 | 
						|
eof
 | 
						|
	exit 1
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
verbose=false
 | 
						|
[ "$1" = "-v" ] && { shift; verbose=true; }
 | 
						|
sdk="$1"
 | 
						|
me="$0"
 | 
						|
core=$(cd ${me%/*}/../../../..; pwd)
 | 
						|
 | 
						|
 | 
						|
[ -r "$sdk/lib/libnet80211.a" ] || help "$0"
 | 
						|
[ -r "$core/tools/xtensa-lx106-elf/bin" ] || help "$0"
 | 
						|
 | 
						|
tmp=$(pwd)/NONOSDK.deleteme
 | 
						|
 | 
						|
cat << eof
 | 
						|
 | 
						|
nonos-sdk                 = '$sdk'
 | 
						|
core root directory       = '$core'
 | 
						|
temporary nonos-sdk clone = '$tmp'
 | 
						|
 | 
						|
If libmain.a is not found, it should be the one around the same libpp.a's commit
 | 
						|
 | 
						|
eof
 | 
						|
 | 
						|
md5()
 | 
						|
{
 | 
						|
	mkdir temp
 | 
						|
	cd temp
 | 
						|
	PATH="$core/tools/xtensa-lx106-elf/bin:$PATH" xtensa-lx106-elf-ar x "$1"
 | 
						|
	rm -f mem_manager.o time.o user_interface.o eagle_lwip_if.o
 | 
						|
	cat *.o | md5sum
 | 
						|
	cd ..
 | 
						|
	rm -rf temp
 | 
						|
}
 | 
						|
 | 
						|
search()
 | 
						|
{
 | 
						|
	rm -rf "$tmp"
 | 
						|
	git clone $sdk "$tmp" 1>&2
 | 
						|
	cd "$tmp"
 | 
						|
	git reset --hard 1>&2
 | 
						|
 | 
						|
	corelibs=$(cd "$core/tools/sdk/lib"; ls *.a)
 | 
						|
	commits=$(git log|grep ^commit\  | tac | sed 's,commit ,,')
 | 
						|
 | 
						|
	for f in $corelibs; do
 | 
						|
		
 | 
						|
		git checkout master 1>&2 # needed
 | 
						|
 | 
						|
		if [ -r "$tmp/lib/$f" ]; then
 | 
						|
 | 
						|
			coremd5=$(md5 "$core/tools/sdk/lib/$f")
 | 
						|
			found=false
 | 
						|
 | 
						|
			for i in $commits; do
 | 
						|
				git reset --hard 1>&2
 | 
						|
				git checkout $i 1>&2
 | 
						|
				
 | 
						|
				[ -d "$tmp/lib" ] || continue
 | 
						|
 | 
						|
				espmd5=$(md5 "$tmp/lib/$f")
 | 
						|
				if [ "$espmd5" = "$coremd5" ]; then
 | 
						|
					tag=$(git describe --tag)
 | 
						|
					echo "$tag - https://github.com/espressif/ESP8266_NONOS_SDK/commit/$i - $f"
 | 
						|
					found=true
 | 
						|
					break
 | 
						|
				fi
 | 
						|
			done
 | 
						|
 | 
						|
			$found || echo "NOTFOUND - $f"
 | 
						|
		fi
 | 
						|
		
 | 
						|
	done
 | 
						|
	
 | 
						|
	cd ..
 | 
						|
	rm -rf "$tmp"
 | 
						|
}
 | 
						|
 | 
						|
$verbose && search
 | 
						|
$verbose || search 2>/dev/null
 | 
						|
 | 
						|
echo "all done"
 |