1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00
esp8266/tools/sdk/lib/eval_fix_sdks.sh
metarutaiga 93537f94a8
Added NONOS SDK 3.0.0 ~ 3.0.5 (again) (#8736)
* Added NONOS SDK 3.0.0 ~ 3.0.5

* Added user_pre_init

* rf_cal[0] !=0x05,is 0x00

* # Remove mem_manager.o from libmain.a to use custom heap implementation, and time.o to fix redefinition of time-related functions
# Rename `hostname` and `default_hostname` symbols

* user_rf_pre_init

* Add system_func1() called by system_restart_local()

* Add commit log text

* Fixed user_rf_pre_init

* Style

* pio sdks

Co-authored-by: TAiGA <>
Co-authored-by: Maxim Prokhorov <prokhorov.max@outlook.com>
2022-12-06 13:43:48 +03:00

124 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# set -e
add_path_ifexist() {
if [[ -d $1 ]]; then
export PATH=$( realpath $1 ):$PATH
return 0
fi
return 1
}
if ! which xtensa-lx106-elf-ar | grep "tools/xtensa-lx106-elf/bin" >>/dev/null; then
add_path_ifexist "../../../xtensa-lx106-elf/bin" || add_path_ifexist "../../xtensa-lx106-elf/bin"
fi
help_msg() {
cat <<EOF
Try:
eval_fix_sdks.sh --analyze
or
eval_fix_sdks.sh --patch
EOF
}
list_sdks() {
cat <<EOF
NONOSDK22x_190313
NONOSDK22x_190703
NONOSDK22x_191024
NONOSDK22x_191105
NONOSDK22x_191122
NONOSDK221
NONOSDK3V0
NONOSDK300
NONOSDK301
NONOSDK302
NONOSDK303
NONOSDK304
NONOSDK305
EOF
}
remove_ifexist() {
[[ -f $1 ]] && rm $1
}
cleanup() {
remove_ifexist old.txt
remove_ifexist old2.txt
remove_ifexist new.txt
for sdk in `list_sdks`; do
remove_ifexist $sdk/eap.o
done
}
unasm() {
xtensa-lx106-elf-objdump -d $*
}
analyze() {
cleanup
for sdk in `list_sdks`; do
pushd $sdk
xtensa-lx106-elf-ar x libwpa2.a eap.o
popd
done
echo ""
find . -name eap.o -exec md5sum {} \; | sort
echo ""
unset prev_sdk
for sdk in `list_sdks`; do
unasm -j ".text.eap_peer_config_deinit" ${sdk}/eap.o >new.txt
if [[ -f old.txt ]]; then
echo "eap_peer_config_deinit: diff $prev_sdk $sdk"
diff old.txt new.txt
echo ""
fi
mv new.txt old.txt
prev_sdk=${sdk}
done
unset prev_sdk
for sdk in `list_sdks`; do
unasm -j ".text.wpa2_sm_rx_eapol" ${sdk}/eap.o >new.txt
if [[ -f old2.txt ]]; then
echo "wpa2_sm_rx_eapol: diff $prev_sdk $sdk"
diff old2.txt new.txt
echo ""
fi
mv new.txt old2.txt
prev_sdk=${sdk}
done
# Find offsets for patching vPortFree with z2EapFree
for sdk in `list_sdks`; do
echo -en "\n${sdk}/eap.o:\n "
grep --byte-offset --only-matching --text vPortFree ${sdk}/eap.o
done
cleanup
}
patch_all() {
for sdk in `list_sdks`; do
pushd $sdk
../fix_sdk_libs.sh
popd
done
}
if [[ "${1}" == "--analyze" ]]; then
analyze
elif [[ "${1}" == "--patch" ]]; then
patch_all
else
help_msg
fi
exit 0