Skip to content

Commit

Permalink
Merge bitcoin/bitcoin#26070: build: Quiet warnings in symlinked heade…
Browse files Browse the repository at this point in the history
…rs installed from homebrew

b50a4b7 build: quiet warnings in system headers installed from homebrew (Cory Fields)

Pull request description:

  From the included comment:

  Homebrew may create symlinks in `/usr/local/include` for some packages. Because MacOS's clang internally adds `-I /usr/local/include` to its search paths, this will negate efforts to use `-isystem` for those packages, as they will be found first in `/usr/local`. Use the internal `-internal-isystem` option to system-ify all `/usr/local/include` paths without adding it to the list of search paths in case it's not already there.

  This fixes the issue explained here: bitcoin/bitcoin#26056 (comment)

  ~Also temporarily includes #26056 as a test. I will remove that commit if/when c-i is happy, and fanquake can rebase it post-merge.~
  I've removed this commit now that c-i succeeded with it.

ACKs for top commit:
  hebasto:
    ACK b50a4b7, tested as a part of bitcoin/bitcoin#26056 on macOS Monterey 12.6 (21G115, both Intel and Apple M1) + Apple clang 14.0.0:

Tree-SHA512: 163aa359d27c31d52b444252762e32dd8a11acc043cf1a2aa953f902d1dab77ece52e2dfedcce637e6a1dda47e4c566bfeb8d3b092f82bfc73923843b7bc619c
  • Loading branch information
fanquake committed Sep 13, 2022
2 parents c856883 + b50a4b7 commit 29d540b
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -746,6 +746,16 @@ case $host in
dnl It's safe to add these paths even if the functionality is disabled by
dnl the user (--without-wallet or --without-gui for example).

dnl Homebrew may create symlinks in /usr/local/include for some packages.
dnl Because MacOS's clang internally adds "-I /usr/local/include" to its search
dnl paths, this will negate efforts to use -isystem for those packages, as they
dnl will be found first in /usr/local. Use the internal "-internal-isystem"
dnl option to system-ify all /usr/local/include paths without adding it to the list
dnl of search paths in case it's not already there.
if test "$suppress_external_warnings" != "no"; then
AX_CHECK_PREPROC_FLAG([-Xclang -internal-isystem/usr/local/include], [CORE_CPPFLAGS="$CORE_CPPFLAGS -Xclang -internal-isystem/usr/local/include"], [], [$CXXFLAG_WERROR])
fi

if test "$use_bdb" != "no" && $BREW list --versions berkeley-db@4 >/dev/null && test "$BDB_CFLAGS" = "" && test "$BDB_LIBS" = ""; then
bdb_prefix=$($BREW --prefix berkeley-db@4 2>/dev/null)
dnl This must precede the call to BITCOIN_FIND_BDB48 below.
Expand Down

0 comments on commit 29d540b

Please sign in to comment.