On Fri, Feb 11, 2022 at 09:40:12PM -0700, Kurt Mosiejczuk wrote: > http://build-failures.rhaalovely.net/sparc64/2022-02-09/emulators/openmsx.log
> eg++: error: unrecognized command line option '-fconstexpr-steps=2000000'; > did you mean '-fconstexpr-depth='? > gmake: *** [build/main.mk:500: derived/sparc-openbsd-opt/obj/Autofire.cc.o] > Error 1 main.mk looks at CXX to decide whether it is clang or gcc, which does not work since we (always?) pass CXX=c++ which is then the usual symlink in ${WRKDIR}/bin/ to CHOSEN_COMPILER. So to fix this, just pass our choice and use that to decide. I've verified that on amd64 this takes the base-clang path which uses `-fconstexpr-steps=2000000' while on sparc64 the ports-gcc path is used with avoids that flag. We set `COMPILER=base-clang ports-gcc' so other cases cannot happen, thus drop the old hunk that merely set the standard to C++11. amd64 builds fine, no PLIST change. sparc64 now also builds fine, no PLIST change. Zap default python version while here. Feedback? Objections? OK? Index: Makefile =================================================================== RCS file: /home/cvs/ports/emulators/openmsx/Makefile,v retrieving revision 1.31 diff -u -p -r1.31 Makefile --- Makefile 6 Aug 2021 08:02:10 -0000 1.31 +++ Makefile 12 Feb 2022 12:19:25 -0000 @@ -7,6 +7,7 @@ BROKEN-alpha = OOM when building src/cpu COMMENT = MSX home computer emulator V = 17.0 +REVISION = 0 DISTNAME = openmsx-$V CATEGORIES = emulators @@ -41,7 +42,6 @@ NO_TEST = Yes MODULES = lang/python \ lang/tcl -MODPY_VERSION = ${MODPY_DEFAULT_VERSION_3} MODPY_RUNDEP = No MAKE_FILE = GNUmakefile @@ -51,6 +51,7 @@ MAKE_FLAGS = CC="${CC}" \ CXX="${CXX}" \ CFLAGS="${CFLAGS}" \ CXXFLAGS="${CXXFLAGS}" \ + CHOSEN_COMPILER=${CHOSEN_COMPILER} \ OPENMSX_STRIP=false \ V=1 Index: patches/patch-build_main_mk =================================================================== RCS file: /home/cvs/ports/emulators/openmsx/patches/patch-build_main_mk,v retrieving revision 1.4 diff -u -p -r1.4 patch-build_main_mk --- patches/patch-build_main_mk 6 Aug 2021 08:02:10 -0000 1.4 +++ patches/patch-build_main_mk 12 Feb 2022 12:14:04 -0000 @@ -1,4 +1,8 @@ $OpenBSD: patch-build_main_mk,v 1.4 2021/08/06 08:02:10 mestre Exp $ + +Fix compiler detection by using CHOSEN_COMPILER not CXX +(ports-gcc does not know `-fconstexpr-steps`) + Index: build/main.mk --- build/main.mk.orig +++ build/main.mk @@ -7,16 +11,16 @@ Index: build/main.mk WINDRES?=windres DEPEND_FLAGS:= -ifneq ($(filter %clang++,$(CXX))$(filter clang++%,$(CXX)),) -+ifneq ($(filter %clang++,$(CXX))$(filter clang++%,$(CXX))$(filter c++,$(CXX)),) ++ifeq ($(CHOSEN_COMPILER),base-clang) # Enable C++17 (for the most part supported since clang-5) COMPILE_FLAGS+=-std=c++17 -fconstexpr-steps=2000000 COMPILE_FLAGS+=-Wall -Wextra -Wundef -Wno-invalid-offsetof -Wunused-macros -Wdouble-promotion -Wmissing-declarations -Wshadow -Wold-style-cast -Wzero-as-null-pointer-constant -@@ -361,6 +361,8 @@ else - else - $(warning Unsupported compiler: $(CXX), please update Makefile) - endif -+ # Enable C++11 -+ COMPILE_FLAGS+=-std=c++11 - endif - endif - +@@ -344,7 +344,7 @@ ifneq ($(filter %clang++,$(CXX))$(filter clang++%,$(CX + CC:=$(subst clang++,clang,$(CXX)) + DEPEND_FLAGS+=-MP + else +-ifneq ($(filter %g++,$(CXX))$(filter g++%,$(CXX))$(findstring /g++-,$(CXX)),) ++ifeq ($(CHOSEN_COMPILER),ports-gcc) + # Generic compilation flags. + COMPILE_FLAGS+=-pipe + # Enable C++17 (almost fully supported since gcc-7)