From 580da08dc34061295b31d9aac5a4fcc9da271f07 Mon Sep 17 00:00:00 2001 From: Struma Date: Thu, 4 May 2023 20:27:05 -0400 Subject: [PATCH] Build Ruby with LTO enabled (#16) --- linux/Makefile | 5 ++++- macos/Dependencies/common.make | 5 ++++- windows/Makefile | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/linux/Makefile b/linux/Makefile index fd34255f..a13ed1a6 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -333,7 +333,10 @@ $(BUILD_PREFIX)/libruby.so.3.1: $(DOWNLOADS)/ruby/Makefile $(DOWNLOADS)/ruby/Makefile: $(DOWNLOADS)/ruby/configure cd $(DOWNLOADS)/ruby; \ - $(CONFIGURE) $(RUBY_CONFIGURE_ARGS) $(RUBY_FLAGS) + export $(CONFIGURE_ENV); \ + export CFLAGS="-flto=full $$CFLAGS"; \ + export LDFLAGS="-flto=full $$LDFLAGS"; \ + ./configure $(CONFIGURE_ARGS) $(RUBY_CONFIGURE_ARGS) $(RUBY_FLAGS) $(DOWNLOADS)/ruby/configure: $(DOWNLOADS)/ruby/*.c cd $(DOWNLOADS)/ruby; autoreconf -i diff --git a/macos/Dependencies/common.make b/macos/Dependencies/common.make index f4919ca1..f9a07193 100644 --- a/macos/Dependencies/common.make +++ b/macos/Dependencies/common.make @@ -311,7 +311,10 @@ $(LIBDIR)/libruby.3.1.dylib: $(DOWNLOADS)/ruby/Makefile $(DOWNLOADS)/ruby/Makefile: $(DOWNLOADS)/ruby/configure cd $(DOWNLOADS)/ruby; \ - $(CONFIGURE) $(RUBY_CONFIGURE_ARGS) $(RUBY_FLAGS) + export $(CONFIGURE_ENV); \ + export CFLAGS="-flto=full $$CFLAGS"; \ + export LDFLAGS="-flto=full $$LDFLAGS"; \ + ./configure $(CONFIGURE_ARGS) $(RUBY_CONFIGURE_ARGS) $(RUBY_FLAGS) $(DOWNLOADS)/ruby/configure: $(DOWNLOADS)/ruby/*.c cd $(DOWNLOADS)/ruby; autoreconf -i diff --git a/windows/Makefile b/windows/Makefile index a201c116..301b082c 100755 --- a/windows/Makefile +++ b/windows/Makefile @@ -320,7 +320,10 @@ $(BUILD_PREFIX)/$(RB_PREFIX)-ruby310.dll: $(DOWNLOADS)/ruby/Makefile $(DOWNLOADS)/ruby/Makefile: $(DOWNLOADS)/ruby/configure cd $(DOWNLOADS)/ruby; \ - $(CONFIGURE) $(RUBY_CONFIGURE_ARGS) $(RUBY_FLAGS) + export $(CONFIGURE_ENV); \ + export CFLAGS="-flto $$CFLAGS"; \ + export LDFLAGS="-flto $$LDFLAGS"; \ + ./configure $(CONFIGURE_ARGS) $(RUBY_CONFIGURE_ARGS) $(RUBY_FLAGS) $(DOWNLOADS)/ruby/configure: $(DOWNLOADS)/ruby/*.c cd $(DOWNLOADS)/ruby; autoreconf -i