On Wed 26/08/2020 15:17, Bjorn Ketelaars wrote:
> I have the diff below sitting in my tree for a couple of weeks:
>
> As sthen@ explained [0]: "COMPILER=base-clang ports-gcc" is needed by
> archiver/zstd because of -Wvla in a couple of Makefiles. Fortunate this
> is easily patched out. While here:
> - switch ALL_TARGET to 'default' as 'allmost' builds stuff that we do
> not package. This saves a couple of seconds while building;
> - No need for WANTLIB+=atomic/LDFLAGS+=-latomic (hppa only). There is
> nothing related to atomics in the stuff that is build (related to
> ALL_TARGET);
> - No need to set CXX* in MAKE_ENV as the build is C-only;
> - No need to set CFLAGS. Upstream's (GNU)Makefile properly amends CFLAGS
> on a per-target basis. We already provide CFLAGS through MAKE_ENV, let
> the Makefile do its job;
> - Update CPPFLAGS.
>
> Builds successfully using either clang or gcc4. All tests are OK.
>
> This diff needs to be tested on hppa. Unfortunately I have no access to
> this arch. Anyone willing to test?
>
> Comments/OK?
Ping...
Diff enclosed for your convenience:
diff --git Makefile Makefile
index 231f0a93d6c..782ee6b9655 100644
--- Makefile
+++ Makefile
@@ -3,6 +3,7 @@
COMMENT = zstandard fast real-time compression algorithm
V = 1.4.5
+REVISION = 0
DISTNAME = zstd-${V}
SHARED_LIBS = zstd 3.2 # 1.4.5
@@ -24,29 +25,19 @@ LIB_DEPENDS = archivers/lz4 \
archivers/xz
BUILD_DEPENDS = sysutils/ggrep
-COMPILER = base-clang ports-gcc
-
MAKE_ENV = CC="${CC}" \
- CFLAGS="${CFLAGS}" \
- CPPFLAGS="-I${WRKSRC}/lib -I${WRKSRC}/lib/common
-I${LOCALBASE}/include" \
- CXX="${CXX}" \
- CXXFLAGS="${CXXFLAGS}" \
+ CPPFLAGS="-I${LOCALBASE}/include" \
LDFLAGS="${LDFLAGS} -L${LOCALBASE}/lib"
MAKE_FLAGS = SHARED_EXT_VER="so.$(LIBzstd_VERSION)" \
SONAME_FLAGS= \
V=1
FAKE_FLAGS = PREFIX="${PREFIX}"
-.if ${MACHINE_ARCH:Mhppa}
-WANTLIB += atomic
-LDFLAGS += -latomic
-.endif
-
USE_GMAKE = Yes
DEBUG_PACKAGES = ${BUILD_PACKAGES}
-ALL_TARGET = allmost
+ALL_TARGET = default
TEST_TARGET = check
pre-build:
diff --git patches/patch-lib_Makefile patches/patch-lib_Makefile
index 48a5c2d802a..9d9f7f90115 100644
--- patches/patch-lib_Makefile
+++ patches/patch-lib_Makefile
@@ -1,8 +1,21 @@
$OpenBSD: patch-lib_Makefile,v 1.8 2020/05/28 19:31:56 bket Exp $
+- Some compilers don't have -Wvla
+- Don't set compiler optimisation level
+- Don't create symbolic links to SHARED_LIB
+
Index: lib/Makefile
--- lib/Makefile.orig
+++ lib/Makefile
+@@ -38,7 +38,7 @@ endif
+ DEBUGFLAGS= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
+ -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
+ -Wstrict-prototypes -Wundef -Wpointer-arith \
+- -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
++ -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
+ -Wredundant-decls -Wmissing-prototypes -Wc++-compat
+ CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
+ FLAGS = $(CPPFLAGS) $(CFLAGS)
@@ -81,7 +81,7 @@ ifneq ($(ZSTD_LIB_MINIFY), 0)
CFLAGS += -fno-stack-protector -fomit-frame-pointer -fno-ident \
-DDYNAMIC_BMI2=0 -DNDEBUG
diff --git patches/patch-programs_Makefile patches/patch-programs_Makefile
new file mode 100644
index 00000000000..d0dda7f7233
--- /dev/null
+++ patches/patch-programs_Makefile
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Some compilers don't have -Wvla
+
+Index: programs/Makefile
+--- programs/Makefile.orig
++++ programs/Makefile
+@@ -51,7 +51,7 @@ CFLAGS ?= -O3
+ DEBUGFLAGS+=-Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
+ -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
+ -Wstrict-prototypes -Wundef -Wpointer-arith \
+- -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
++ -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
+ -Wredundant-decls -Wmissing-prototypes -Wc++-compat
+ CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
+ FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
diff --git patches/patch-tests_Makefile patches/patch-tests_Makefile
new file mode 100644
index 00000000000..fe60f9fb452
--- /dev/null
+++ patches/patch-tests_Makefile
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Some compilers don't have -Wvla
+
+Index: tests/Makefile
+--- tests/Makefile.orig
++++ tests/Makefile
+@@ -35,7 +35,7 @@ CFLAGS ?= -O3
+ CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow
\
+ -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement
\
+ -Wstrict-prototypes -Wundef
\
+- -Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings
\
++ -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
+ -Wredundant-decls -Wmissing-prototypes
+ CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
+ FLAGS = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)