dash/depends/hosts/netbsd.mk
laanwj 685b7a7a1b
Merge bitcoin/bitcoin#23611: build: add LTO option to depends
094772656d71b3f5022ae292094e878da035de9e build: support LTO in depends (fanquake)

Pull request description:

  This adds an `LTO` option to depends, i.e `make -C depends LTO=1`, which passes `-flto` when building packages (not currently qt), and automatically configures with `--enable-lto` when doing a build using a `CONFIG_SITE`.

  The following tables comapres the size (in bytes) of the stripped `x86_64` Linux binaries produced with master and this PR (full depends build):

  | Binary | stripped master | stripped LTO=1 | saving |
  | -------- | ----------------: | -------------: | --------: |
  | bitcoin-cli | 1178632 | 469872 | 60% |
  | bitcoin-tx  | 2710584 | 1866504 | 31% |
  | bitcoin-util | 952880 | 240104 | 74% |
  | bitcoin-wallet | 7992888 | 5365984 | 32% |
  | bitcoind | 13421336 | 11868592 | 12% |
  | bitcoin-qt | 37680496 | 31640976 | 16% |

ACKs for top commit:
  laanwj:
    Tested ACK 094772656d71b3f5022ae292094e878da035de9e

Tree-SHA512: 6b8483ea490e57a153105ad8c38b25fb1af5d55b1af22db398c7c2573612aaf71b4d2b4cf09c18fd6331b1358dba01641eeaa03e5018a925392e1937118d984a
2024-09-27 12:52:15 -05:00

38 lines
798 B
Makefile

netbsd_CFLAGS=-pipe
ifneq ($(LTO),)
netbsd_CFLAGS += -flto
netbsd_LDFLAGS += -flto
endif
netbsd_CXXFLAGS=$(netbsd_CFLAGS)
netbsd_release_CFLAGS=-O2
netbsd_release_CXXFLAGS=$(netbsd_release_CFLAGS)
netbsd_debug_CFLAGS=-O1
netbsd_debug_CXXFLAGS=$(netbsd_debug_CFLAGS)
ifeq (86,$(findstring 86,$(build_arch)))
i686_netbsd_CC=gcc -m32
i686_netbsd_CXX=g++ -m32
i686_netbsd_AR=ar
i686_netbsd_RANLIB=ranlib
i686_netbsd_NM=nm
i686_netbsd_STRIP=strip
x86_64_netbsd_CC=gcc -m64
x86_64_netbsd_CXX=g++ -m64
x86_64_netbsd_AR=ar
x86_64_netbsd_RANLIB=ranlib
x86_64_netbsd_NM=nm
x86_64_netbsd_STRIP=strip
else
i686_netbsd_CC=$(default_host_CC) -m32
i686_netbsd_CXX=$(default_host_CXX) -m32
x86_64_netbsd_CC=$(default_host_CC) -m64
x86_64_netbsd_CXX=$(default_host_CXX) -m64
endif
netbsd_cmake_system=NetBSD