From 68fa3dadb03a0bdfcccc07520409c35ac8dd9aa4 Mon Sep 17 00:00:00 2001 From: Aofei Sheng Date: Tue, 30 Jul 2024 08:43:51 +0800 Subject: [PATCH] build: replicate macOS `-dead_strip` optimization on Linux Added `-fdata-sections` and `-ffunction-sections` compiler flags to work with `--gc-sections` on Linux. This combination achieves similar dead code elimination as macOS's `-dead_strip`, reducing binary size and resolving undefined symbol issues. Ensures consistent optimization across macOS and Linux builds. --- internal/build/build.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/build/build.go b/internal/build/build.go index ce75c02a..0d9d546d 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -361,6 +361,8 @@ func linkMainPkg(ctx *context, pkg *packages.Package, pkgs []*aPackage, llFiles args, "-rpath", "$ORIGIN", "-rpath", "$ORIGIN/../lib", + "-fdata-sections", + "-ffunction-sections", "-Xlinker", "--gc-sections", "-lm", "-latomic",