[Bug 209097] security/hpenc: Fix build with libc++ 3.8.0

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Apr 27 12:41:46 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209097

            Bug ID: 209097
           Summary: security/hpenc: Fix build with libc++ 3.8.0
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: vsevolod at FreeBSD.org
          Reporter: dim at FreeBSD.org
             Flags: maintainer-feedback?(vsevolod at FreeBSD.org)
          Assignee: vsevolod at FreeBSD.org

Created attachment 169757
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=169757&action=edit
Don't declare max_align_t if libc++'s stddef.h already did it

During the exp-run in bug 208158, it was found that security/hpenc gives errors
with libc++ 3.8.0 [1]:

In file included from aead.cc:29:
In file included from ./aead.h:29:
./common.h:37:3: error: typedef redefinition with different types ('struct
max_align_t' vs 'long double')
} max_align_t;
  ^
/usr/include/c++/v1/stddef.h:57:21: note: previous definition is here
typedef long double max_align_t;
                    ^

If __CLANG_MAX_ALIGN_T_DEFINED is not defined, libc++'s new stddef.h also
declares max_align_t, and this conflicts with the max_align_t declaration in
common.h.  There is already an "Ugly, ugly hack" part in common.h, which
unfortunately must now be made even uglier, as in the attached patch.  This
adds a !defined(_LIBCPP_STDDEF_H) to detect whether libc++'s stddef.h was
included.

[1]
http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-03-22_18h30m05s/logs/errors/hpenc-2.0_1.log

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list