From: Jonathan Nieder <jrnie...@gmail.com>

OLD_ICONV has long been needed by FreeBSD so config.mak.uname defines
it unconditionally. However, recent versions do not need it, and its
presence results in compilation warnings. Resolve this issue by defining
OLD_ICONV only for older FreeBSD versions.

Specifically, revision r281550[1], which is part of FreeBSD 11, removed
the need for OLD_ICONV, and r282275[2] back-ported that change to 10.2.
Versions prior to 10.2 do need it.

[1] 
https://github.com/freebsd/freebsd/commit/b0813ee288f64f677a2cebf7815754b027a8215b
[2] 
https://github.com/freebsd/freebsd/commit/b709ec868adb5170d09bc5a66b18d0e0d5987ab6

[es: commit message; tweak version check to distinguish 10.x versions]

Signed-off-by: Jonathan Nieder <jrnie...@gmail.com>
Signed-off-by: Eric Sunshine <sunsh...@sunshineco.com>
---

This is a follow-up to [1] which encapsulates Jonathan's proposed change
as a proper patch. I made Jonathan as the author since he did all the
hard research and formulated the core of the change (whereas I only
reported the issue and extended the version check to correctly handle
FreeBSD 10.0 and 10.1). Jonathan's sign-off comes from [1].

[1]: 
https://public-inbox.org/git/20180805075736.gf44...@aiede.svl.corp.google.com/

 config.mak.uname | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/config.mak.uname b/config.mak.uname
index 2be2f19811..e47af72e01 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -192,7 +192,17 @@ ifeq ($(uname_O),Cygwin)
 endif
 ifeq ($(uname_S),FreeBSD)
        NEEDS_LIBICONV = YesPlease
-       OLD_ICONV = YesPlease
+       # Versions up to 10.1 require OLD_ICONV; 10.2 and beyond don't.
+       # A typical version string looks like "10.2-RELEASE".
+       ifeq ($(shell expr "$(uname_R)" : '[1-9]\.'),2)
+               OLD_ICONV = YesPlease
+       endif
+       ifeq ($(firstword $(subst -, ,$(uname_R))),10.0)
+               OLD_ICONV = YesPlease
+       endif
+       ifeq ($(firstword $(subst -, ,$(uname_R))),10.1)
+               OLD_ICONV = YesPlease
+       endif
        NO_MEMMEM = YesPlease
        BASIC_CFLAGS += -I/usr/local/include
        BASIC_LDFLAGS += -L/usr/local/lib
-- 
2.19.0.rc1.352.gb1634b371d

Reply via email to