Files
unshell/build.sh
T

61 lines
1.4 KiB
Bash
Raw Normal View History

2026-01-30 14:05:07 -07:00
# # -Cpanic=immediate-abort
# RUSTFLAGS="-Zunstable-options -Zlocation-detail=none -Zfmt-debug=none" \
# cargo +nightly build \
# -Z build-std=std,panic_abort \
# -Z build-std-features= \
# --profile minimize -p unshell-payload -- $@
cargo build --profile minimize -p ush-payload $@
2026-01-30 14:05:07 -07:00
export BINARY=./target/minimize/ush-payload
2026-01-30 14:05:07 -07:00
declare -a headers=(
".gnu_debuglink" # - Debug information link
".comment" #- Compiler version info
".shstrtab" #- Section header string table (only needed by tools like readelf)
".note.gnu.bu" ".note.gnu.build-id" # - Build ID note
".eh_frame" ".eh_frame_hdr" # Exception handling info (can break C++ exceptions if removed)
#".gnu.version" ".gnu.version_r" # Symbol versioning (may be needed for some shared libraries)
".gnu.hash" # Hash table for symbol lookup optimization
# .shstrtab
# .interp
# .note.ABI-tag
# .dynsym
# .dynstr
# .rela.dyn
# .rodata
# .text
# .init
# .fini
# .tbss
# .fini_array
# .init_array
# .data.rel.ro
# .dynamic
# .got
# .got.plt
# .relro_padding
# .tm_clone_table
# .data
# .bss
)
# TODO: Implement FAKE section header comments and information
# Shuffle order of headers??
for section in "${headers[@]}"
do
strip --remove-section="$section" $BINARY
echo "Removed section header $section"
done
echo "## STARTING "
$BINARY