Update to 9.0.

This commit is contained in:
Petr Spacek 2016-05-12 14:00:52 +02:00
parent efb9ff036e
commit b206cefa46
4 changed files with 10 additions and 78 deletions

2
.gitignore vendored
View File

@ -33,3 +33,5 @@ bind-dyndb-ldap-0.1.0b.tar.bz2
/bind-dyndb-ldap-7.0.tar.bz2.asc
/bind-dyndb-ldap-8.0.tar.bz2
/bind-dyndb-ldap-8.0.tar.bz2.asc
/bind-dyndb-ldap-9.0.tar.bz2
/bind-dyndb-ldap-9.0.tar.bz2.asc

View File

@ -1,72 +0,0 @@
From acd26eedac09749f82646ea1ac0a662109cca7a8 Mon Sep 17 00:00:00 2001
From: Petr Spacek <pspacek@redhat.com>
Date: Fri, 19 Feb 2016 13:39:27 +0100
Subject: [PATCH] Fix build with GCC 4.9+.
GCC 4.9+ is too aggressive when optimizing functions with nonnull
attributes. This removes most of asserts() in the plugin.
GCC 6 adds warnings for these cases.
We are disabling the unwanted condition pruning by adding
-fno-delete-null-pointer-checks argument.
BIND 9 did the same in its commit 603a78708343f063b44affb882ef93bb19a5142a.
Additionally we enable nonnull attribute only when the build is running under
Clang static analyzer or Coverity.
https://bugzilla.redhat.com/show_bug.cgi?id=1307346
---
configure.ac | 14 ++++++++++++++
src/util.h | 8 ++++++--
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index a06708b1a5ee64bb64c80272c10ed1a35670c8d0..48f5cb63c3bb5535fe1da56abe7583e15d4b5f92 100644
--- a/configure.ac
+++ b/configure.ac
@@ -39,6 +39,20 @@ AC_TRY_COMPILE([
[CFLAGS="$SAVED_CFLAGS"
AC_MSG_RESULT([no])])
+# Check if build chain supports -fno-delete-null-pointer-checks
+# this flag avoids too agressive optimizations which would remove some asserts
+# BIND 9 did the same in its commit 603a78708343f063b44affb882ef93bb19a5142a
+AC_MSG_CHECKING([for -fno-delete-null-pointer-checks compiler flag])
+SAVED_CFLAGS="$CFLAGS"
+CFLAGS="-fno-delete-null-pointer-checks -Werror"
+AC_TRY_COMPILE([
+ extern int fdef(void);
+],[],
+[AC_MSG_RESULT([yes])
+ CFLAGS="$SAVED_CFLAGS -fno-delete-null-pointer-checks"],
+[CFLAGS="$SAVED_CFLAGS"
+ AC_MSG_RESULT([no])])
+
# Get CFLAGS from isc-config.sh
AC_ARG_VAR([BIND9_CFLAGS],
[C compiler flags for bind9, overriding isc-config.sh])
diff --git a/src/util.h b/src/util.h
index 9849ff9b6c38ec1c6dd143440d5b5e584b2ecd51..402503c339a5ab6ca5273cae420e743b9fc252ab 100644
--- a/src/util.h
+++ b/src/util.h
@@ -103,11 +103,15 @@ extern isc_boolean_t verbose_checks; /* from settings.c */
/* If no argument index list is given to the nonnull attribute,
* all pointer arguments are marked as non-null. */
#define ATTR_NONNULLS ATTR_NONNULL()
-#ifdef __GNUC__
+#if defined(__COVERITY__) || defined(__clang_analyzer__)
#define ATTR_NONNULL(...) __attribute__((nonnull(__VA_ARGS__)))
-#define ATTR_CHECKRESULT __attribute__((warn_unused_result))
#else
#define ATTR_NONNULL(...)
+#endif
+
+#if defined(__GNUC__)
+#define ATTR_CHECKRESULT __attribute__((warn_unused_result))
+#else
#define ATTR_CHECKRESULT
#endif
--
2.5.0

View File

@ -1,8 +1,8 @@
%define VERSION %{version}
Name: bind-dyndb-ldap
Version: 8.0
Release: 6%{?dist}
Version: 9.0
Release: 1%{?dist}
Summary: LDAP back-end plug-in for BIND
Group: System Environment/Libraries
@ -10,7 +10,6 @@ License: GPLv2+
URL: https://fedorahosted.org/bind-dyndb-ldap
Source0: https://fedorahosted.org/released/%{name}/%{name}-%{VERSION}.tar.bz2
Source1: https://fedorahosted.org/released/%{name}/%{name}-%{VERSION}.tar.bz2.asc
Patch0001: 0001-Fix-build-with-GCC-4.9.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: bind-devel >= 32:9.9.0-1, bind-lite-devel >= 32:9.9.0-1
@ -29,7 +28,6 @@ off of your LDAP server.
%prep
%setup -q -n %{name}-%{VERSION}
%patch1 -p1 -b .0001-gcc49
%build
autoreconf -fiv
@ -78,6 +76,10 @@ rm -rf %{buildroot}
%changelog
* Thu May 12 2016 Petr Spacek <pspacek@redhat.com> - 9.0-1
- Update to 9.0
- Fix for GCC 4.9+ was merged upstream
* Fri Mar 04 2016 Petr Spacek <pspacek@redhat.com> - 8.0-6
- Fix builds with GCC 4.9+

View File

@ -1,2 +1,2 @@
93f6c2870aae5293a7aba96357cc9061 bind-dyndb-ldap-8.0.tar.bz2
82f3eb7d328c6d28737ef0550ddf9757 bind-dyndb-ldap-8.0.tar.bz2.asc
2c1bd7412a00055aec664c61f94e2f79 bind-dyndb-ldap-9.0.tar.bz2
32f3af77f0b0abfe1c6582da44f5bf25 bind-dyndb-ldap-9.0.tar.bz2.asc