From d6c3cff581ad514c6bf8be9b9a65d4c97e91d82a Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Fri, 8 Mar 2019 21:08:26 -0600 Subject: [PATCH] debian: Don't install gcc g++ on debian. gmake assumes default CC is cc, CXX is g++ (not c++). In order to make this sane (c++), we check if the shell variable CXX was set and if so we honor it, else we set CXX to c++. --- GNUmakefile | 8 ++++++++ build.sh | 2 +- vm/Config.linux | 5 ++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index df11a97a66..2a779b4855 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -5,6 +5,14 @@ ifdef CONFIG DEBUG ?= 0 REPRODUCIBLE ?= 0 + # gmake's default CXX is g++, we prefer c++ + SHELL_CXX = $(shell printenv CXX) + ifeq ($(SHELL_CXX),) + CXX=c++ + else + CXX=$(SHELL_CXX) + endif + include $(CONFIG) CFLAGS = -Wall \ diff --git a/build.sh b/build.sh index 35f10176d0..f23dd16671 100755 --- a/build.sh +++ b/build.sh @@ -686,7 +686,7 @@ make_boot_image() { } install_deps_apt() { - sudo apt install --yes libc6-dev libpango1.0-dev libx11-dev xorg-dev libgtk2.0-dev gtk2-engines-pixbuf libgtkglext1-dev wget git git-doc rlwrap clang gcc make screen tmux libssl-dev g++ + sudo apt install --yes libc6-dev libpango1.0-dev libx11-dev xorg-dev libgtk2.0-dev gtk2-engines-pixbuf libgtkglext1-dev wget git git-doc rlwrap clang make screen tmux libssl-dev check_ret sudo } diff --git a/vm/Config.linux b/vm/Config.linux index aac32fa3c3..fae2cd4f0e 100644 --- a/vm/Config.linux +++ b/vm/Config.linux @@ -5,6 +5,9 @@ LIBS = -ldl -lm -lrt -lpthread -Wl,--export-dynamic # clang spams warnings if we use -Wl,--no-as-needed with -c # -Wl,--no-as-needed is a gcc optimization, not required -ifneq ($(CXX),clang++) +# we want to work with g++ aliased as c++ here, too +IS_GCC = $(shell $(CXX) --version | grep '(GCC)') + +ifdef ($(IS_GCC)) SITE_CFLAGS += -Wl,--no-as-needed endif -- 2.34.1