28 lines
548 B
Bash
28 lines
548 B
Bash
|
#!/bin/bash
|
||
|
# syntax: add_rodata_ld.sh /path/to/esp32.project.ld /path/to/snippet_file
|
||
|
set -eu
|
||
|
ldfile="$1"
|
||
|
partial="$2"
|
||
|
out="${ldfile}.new"
|
||
|
IFS='
|
||
|
'
|
||
|
msg="/* NodeMCU patched */"
|
||
|
if [[ $(head -n 1 "$ldfile") =~ "$msg" ]]
|
||
|
then
|
||
|
echo "NodeMCU rodata already patched into $(basename $ldfile)"
|
||
|
exit 0
|
||
|
else
|
||
|
echo "Patching in NodeMCU rodata into $(basename $ldfile)"
|
||
|
echo "$msg" > "$out"
|
||
|
fi
|
||
|
|
||
|
cat "$ldfile" | while read line
|
||
|
do
|
||
|
if [[ $line =~ "drom0_0_seg" ]]
|
||
|
then
|
||
|
cat "$partial" >> "$out"
|
||
|
fi
|
||
|
echo $line >> "$out"
|
||
|
done
|
||
|
mv "$out" "$ldfile"
|