From 45b67cca332cf46c5867b107a3e9c8f9dd28fbcd Mon Sep 17 00:00:00 2001 From: Morten Stevens Date: Fri, 23 Jun 2017 23:00:01 +0200 Subject: [PATCH] Fix building on aarch64 --- pdns-fix-aarch64.patch | 162 +++++++++++++++++++++++++++++++++++++++++ pdns.spec | 9 +++ 2 files changed, 171 insertions(+) create mode 100644 pdns-fix-aarch64.patch diff --git a/pdns-fix-aarch64.patch b/pdns-fix-aarch64.patch new file mode 100644 index 0000000..b1dfad8 --- /dev/null +++ b/pdns-fix-aarch64.patch @@ -0,0 +1,162 @@ +From 7b48974d019625314e37ed80159e0e37c3bcf6f3 Mon Sep 17 00:00:00 2001 +From: Peter van Dijk +Date: Thu, 15 Jun 2017 09:36:57 +0200 +Subject: [PATCH] unbreak quoting; fixes #5401 + +--- + m4/pdns_check_os.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/m4/pdns_check_os.m4 b/m4/pdns_check_os.m4 +index 315fef4f32..2afdbb6bd4 100644 +--- a/m4/pdns_check_os.m4 ++++ b/m4/pdns_check_os.m4 +@@ -39,7 +39,7 @@ AC_DEFUN([PDNS_CHECK_OS],[ + mips* | powerpc* ) + AX_CHECK_LINK_FLAG([-latomic], + [ : ], +- AC_MSG_ERROR([Unable to link against libatomic, cannot continue]) ++ [ AC_MSG_ERROR([Unable to link against libatomic, cannot continue]) ] + ) + LDFLAGS="-latomic $LDFLAGS" + ;; + +From 03571f7ac3d5bebb4879849b094e2e03f019cd10 Mon Sep 17 00:00:00 2001 +From: Pieter Lexis +Date: Mon, 2 Jan 2017 12:23:05 +0100 +Subject: [PATCH] Check if we can link against libatomic if needed + +Also move the OS detection to the top +--- + configure.ac | 3 +- + m4/ax_check_link_flag.m4 | 74 ++++++++++++++++++++++++++++++ + m4/pdns_check_os.m4 | 9 ++-- + pdns/dnsdistdist/m4/ax_check_link_flag.m4 | 1 + + pdns/recursordist/m4/ax_check_link_flag.m4 | 1 + + 5 files changed, 83 insertions(+), 5 deletions(-) + create mode 100644 m4/ax_check_link_flag.m4 + create mode 120000 pdns/dnsdistdist/m4/ax_check_link_flag.m4 + create mode 120000 pdns/recursordist/m4/ax_check_link_flag.m4 + +diff --git a/configure.ac b/configure.ac +index 14a6fa4cb8..a43086bbcf 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -41,6 +41,8 @@ AC_DEFINE([_GNU_SOURCE], [1], + # Warn when pkg.m4 is missing + m4_pattern_forbid([^_?PKG_[A-Z_]+$], [*** pkg.m4 missing, please install pkg-config]) + ++PDNS_CHECK_OS ++ + PDNS_WITH_LUAJIT + AS_IF([test "x$with_luajit" = "xno"], [ + PDNS_WITH_LUA +@@ -131,7 +133,6 @@ AS_IF([test "x$lt_cv_dlopen" = "xno"], + + AC_SUBST([LIBDL], [$lt_cv_dlopen_libs]) + +-PDNS_CHECK_OS + PDNS_ENABLE_VERBOSE_LOGGING + PDNS_ENABLE_PKCS11 + PDNS_ENABLE_GSS_TSIG +diff --git a/m4/ax_check_link_flag.m4 b/m4/ax_check_link_flag.m4 +new file mode 100644 +index 0000000000..eb01a6ce13 +--- /dev/null ++++ b/m4/ax_check_link_flag.m4 +@@ -0,0 +1,74 @@ ++# =========================================================================== ++# http://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) ++# ++# DESCRIPTION ++# ++# Check whether the given FLAG works with the linker or gives an error. ++# (Warnings, however, are ignored) ++# ++# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on ++# success/failure. ++# ++# If EXTRA-FLAGS is defined, it is added to the linker's default flags ++# when the check is done. The check is thus made with the flags: "LDFLAGS ++# EXTRA-FLAGS FLAG". This can for example be used to force the linker to ++# issue an error when a bad flag is given. ++# ++# INPUT gives an alternative input source to AC_LINK_IFELSE. ++# ++# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this ++# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Guido U. Draheim ++# Copyright (c) 2011 Maarten Bosmans ++# ++# This program is free software: you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation, either version 3 of the License, or (at your ++# option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++# Public License for more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with this program. If not, see . ++# ++# As a special exception, the respective Autoconf Macro's copyright owner ++# gives unlimited permission to copy, distribute and modify the configure ++# scripts that are the output of Autoconf when processing the Macro. You ++# need not follow the terms of the GNU General Public License when using ++# or distributing such scripts, even though portions of the text of the ++# Macro appear in them. The GNU General Public License (GPL) does govern ++# all other use of the material that constitutes the Autoconf Macro. ++# ++# This special exception to the GPL applies to versions of the Autoconf ++# Macro released by the Autoconf Archive. When you make and distribute a ++# modified version of the Autoconf Macro, you may extend this special ++# exception to the GPL to apply to your modified version as well. ++ ++#serial 4 ++ ++AC_DEFUN([AX_CHECK_LINK_FLAG], ++[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF ++AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl ++AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [ ++ ax_check_save_flags=$LDFLAGS ++ LDFLAGS="$LDFLAGS $4 $1" ++ AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], ++ [AS_VAR_SET(CACHEVAR,[yes])], ++ [AS_VAR_SET(CACHEVAR,[no])]) ++ LDFLAGS=$ax_check_save_flags]) ++AS_VAR_IF(CACHEVAR,yes, ++ [m4_default([$2], :)], ++ [m4_default([$3], :)]) ++AS_VAR_POPDEF([CACHEVAR])dnl ++])dnl AX_CHECK_LINK_FLAGS +diff --git a/m4/pdns_check_os.m4 b/m4/pdns_check_os.m4 +index 883f85fb75..315fef4f32 100644 +--- a/m4/pdns_check_os.m4 ++++ b/m4/pdns_check_os.m4 +@@ -36,10 +36,11 @@ AC_DEFUN([PDNS_CHECK_OS],[ + AM_CONDITIONAL([HAVE_SOLARIS], [test "x$have_solaris" = "xyes"]) + + case "$host" in +- mips*) +- LDFLAGS="-latomic $LDFLAGS" +- ;; +- powerpc*) ++ mips* | powerpc* ) ++ AX_CHECK_LINK_FLAG([-latomic], ++ [ : ], ++ AC_MSG_ERROR([Unable to link against libatomic, cannot continue]) ++ ) + LDFLAGS="-latomic $LDFLAGS" + ;; + esac + diff --git a/pdns.spec b/pdns.spec index b744e63..bdf2929 100644 --- a/pdns.spec +++ b/pdns.spec @@ -11,6 +11,7 @@ URL: http://powerdns.com Source0: http://downloads.powerdns.com/releases/%{name}-%{version}.tar.bz2 Source1: pdns.service Patch0: pdns-disable-secpoll.patch +Patch1: pdns-fix-aarch64.patch Requires(pre): shadow-utils Requires(post): systemd-units @@ -26,6 +27,9 @@ BuildRequires: zeromq-devel BuildRequires: openssl-devel BuildRequires: protobuf-devel BuildRequires: protobuf-compiler +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool Provides: powerdns = %{version}-%{release} %global backends %{backends} bind @@ -152,8 +156,10 @@ This package contains the TinyDNS backend for %{name} %prep %setup -q %patch0 -p1 -b .disable-secpoll +%patch1 -p1 -R -b .fix-aarch64 %build +autoreconf -v -f -i export CPPFLAGS="-DLDAP_DEPRECATED" %configure \ @@ -313,6 +319,9 @@ exit 0 %{_libdir}/%{name}/libtinydnsbackend.so %changelog +* Fri Jun 23 2017 Morten Stevens - 4.0.4-2 +- Fix building on aarch64 + * Fri Jun 23 2017 Morten Stevens - 4.0.4-1 - Update to 4.0.4