Opened 5 years ago

Closed 5 years ago

Last modified 4 years ago

#4006 closed defect (fixed)

Kea doesn't compile with Boost 1.59

Reported by: fdupont Owned by: fdupont
Priority: medium Milestone: Kea1.0-beta
Component: Unclassified Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DHCP Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no

Description

New Boost 1.59.0 breaks in src/lib/util/encode because the PFTO (partial function template ordering) macros were removed.
A temporary solution is to download and use the 1.58 version...

Subtickets

Change History (9)

comment:1 Changed 5 years ago by fdupont

  • Owner set to fdupont
  • Status changed from new to accepted

comment:2 Changed 5 years ago by fdupont

According to the boost serialization release notes:

Differences from Boost 1.58

Eliminated support for Borland compilers and Microsoft compilers prior to version 7.1.
Eliminated support for compilers which do not support Partial Function Template Ordering (pfto).
Added support for "visibility hidden" for GCC compilers. Shared libraries will only expose symbols actually needed rather than all sympols in the library. This should result in smaller shared libraries which are faster to load.

Note a quick grep on 1.58 sources shows there is no supported compiler with the pfto bug so we can simply remove the macros from our code.

comment:3 Changed 5 years ago by fdupont

  • Owner changed from fdupont to UnAssigned
  • Status changed from accepted to reviewing

Done. Took the occasion to cleanup some compiler dependent stuff.
Ready fro review.

comment:4 follow-up: Changed 5 years ago by stephen

  • Owner changed from UnAssigned to fdupont

I hit the problem after upgrading to Boost 1.59 on my Mac.

Reviewed commit 47f2e13646dc91c7c6fa8a248e81a2d324fe2278

All seems OK, although I only checked that it works with Boost 1.59. Have you checked that the code still works with earlier versions of the Boost libraries?

I think this does require a ChangeLog entry, something along the lines of:

Removed partial function template ordering macros to allow Kea to work with
Boost 1.59 and later.  Also removed some compiler-dependent code.

However, please don't merge this into master before the team have had a chance to discuss this at the weekly Kea meeting.

comment:5 in reply to: ↑ 4 Changed 5 years ago by fdupont

Replying to stephen:

I hit the problem after upgrading to Boost 1.59 on my Mac.

=> you were leas lucky than me (my Mac is still in 1.58, I got the issue with Visual Studio 2015 which is supported only by 1.59).

All seems OK, although I only checked that it works with Boost 1.59. Have you checked that the code still works with earlier versions of the Boost libraries?

=> yes, I checked this.

I think this does require a ChangeLog entry, something along the lines of:

Removed partial function template ordering macros to allow Kea to work with
Boost 1.59 and later.  Also removed some compiler-dependent code.

=> IMHO the ChangeLog will be mainly useful for people trying the 0.9.2 release with 1.59 so perhaps we should add something in the wiki too?

However, please don't merge this into master before the team have had a chance to discuss this at the weekly Kea meeting.

=> so someone from the team should take the ticket and reassign it to me when it will be OK.

comment:6 Changed 5 years ago by fdupont

BTW the workaround for Boost >= 1.59 is to add at the beginning of src/lib/util/encode/base_n.cc:

#define BOOST_PFTO_WRAPPER(T) T
#define BOOST_MAKE_PFTO_WRAPPER(t) t

or of course to apply changes from this branch (trac4006).

comment:7 Changed 5 years ago by stephen

  • Milestone changed from Kea-proposed to Kea1.0

If we can get rid of the macros, I'd prefer to simplify the code and get rid of them.

The change has been discussed at the Kea progress meeting, so please merge.

comment:8 Changed 5 years ago by fdupont

  • Resolution set to fixed
  • Status changed from reviewing to closed

Merged. Closing.

comment:9 Changed 4 years ago by tomek

  • Milestone changed from Kea1.0 to Kea1.0-beta

Milestone renamed

Note: See TracTickets for help on using tickets.