25 lines
574 B
Bash
25 lines
574 B
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "=== Build WITHOUT LTO ==="
|
|
g++ -std=c++17 -O2 -c foo.cpp -o foo.o
|
|
g++ -std=c++17 -O2 -c main.cpp -o main.o
|
|
g++ -O2 foo.o main.o -o app_nolto -lm
|
|
echo "Created app_nolto"
|
|
|
|
echo ""
|
|
echo "=== Build WITH LTO ==="
|
|
g++ -std=c++17 -O2 -flto -c foo.cpp -o foo_lto.o
|
|
g++ -std=c++17 -O2 -flto -c main.cpp -o main_lto.o
|
|
g++ -O2 -flto foo_lto.o main_lto.o -o app_lto -lm
|
|
echo "Created app_lto"
|
|
|
|
echo ""
|
|
echo "=== Compare binary sizes ==="
|
|
ls -l app_nolto app_lto
|
|
|
|
echo ""
|
|
echo "=== Run both ==="
|
|
echo -n "no-lto: "; ./app_nolto
|
|
echo -n "lto: "; ./app_lto
|