Opened 5 years ago
Closed 5 years ago
#59563 closed defect (fixed)
mariadb-10.2: configure.cxxflags-append -std=c++11 # plus `port bump`
Reported by: | vike2000 | Owned by: | michaelld (Michael Dickens) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.2 |
Keywords: | haspatch | Cc: | vike2000 |
Port: | mariadb-10.2 |
Description
Adding
configure.cxxflags-append \ -std=c++11
(after configure.args-append
but Portfile is basically declarative, right),
solving build warnings like
-
deleted function definitions are a C++11 extension [-Wc++11-extensions]
, - but most important
/opt/local/include/libxml2/unicode/localpointer.h:224:34: warning: rvalue references are a C++11 extension [-Wc++11-extensions] LocalPointer(LocalPointer<T> &&src) U_NOEXCEPT : LocalPointerBase<T>(src.ptr) { ^
resulting in build errors like/opt/local/include/libxml2/unicode/localpointer.h:224:40: error: expected ';' at end of declaration list LocalPointer(LocalPointer<T> &&src) U_NOEXCEPT : LocalPointerBase<T>(src.ptr) { ^
Notes
- I have force-updated xcode between this ticket and previous working
port install mariadb-10.2-server
. - I was actually working with either of
port {} mariadb-10.2{,-server}
.
Attachments (1)
Change History (9)
Changed 5 years ago by vike2000
Attachment: | Portfile-mariadb-10.2.diff added |
---|
comment:1 Changed 5 years ago by vike2000
Cc: | vike2000 added |
---|
comment:2 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | haspatch added |
---|---|
Summary: | configure.cxxflags-append -std=c++11 # plus `port bump` → mariadb-10.2: configure.cxxflags-append -std=c++11 # plus `port bump` |
comment:3 follow-up: 5 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | michaelld removed |
---|---|
Owner: | set to michaelld |
Status: | new → assigned |
Version: | → 2.6.2 |
Your patch also changes the checksums, which does not seem related to this ticket.
comment:4 Changed 5 years ago by michaelld (Michael Dickens)
@ryandesign : I can certainly move the MariadB ports to use C++11 ... not the worst idea overall & simple to change.
But it's just 1 port & there are tons of ports that are effected by this update / issue.
Hence, wondering for advice on how to proceed ... Do you know the status of us trying to fix the meta-issue (libxml2 chaining ICU through its API and thus ABI required as per the libxml2 pkgconfig file) : #59499 ?
comment:5 Changed 5 years ago by vike2000
Replying to ryandesign:
Your patch also changes the checksums, which does not seem related to this ticket.
Without bumping checksums it wouldn't build regardless of the other patch hunk.
Cause this port is ahead of its main non-version-named port mariadb (latest sync @5.5.65
),
I sort of assumed this port had some implicit unstable dev/beta status. However bad a defense,
this is not the first time i've had to bump checksums (non-semver-ish upstream updates a reason?),
albeit in so blindly trusting any sources...
Filing the ticket I mainly looked at https://guide.macports.org/#project.contributing.updates,
but also …#development.patches.portfile,
and reading on under the next subheading …#development.patches.portfile,
I remember the point that one “should create one patch file for each logical change that needs to be applied”.
Am I amiss still considering this a border case?
Would you suggest to make two different patch files in future similar cases?
comment:6 Changed 5 years ago by michaelld (Michael Dickens)
I fixed this port over the weekend after being alerted by a user of the issue. Hopefully it takes care of the checksum issues.
comment:7 Changed 5 years ago by michaelld (Michael Dickens)
MariaDB 10.2 core itself does not formally require C++11, but, as with many projects, we can build it using C++11 ... which can be advantageous such as for this issue.
We need to change the Portfile, both to tell MP to use a C++ 2011 compliant compiler as well as to set the CMAKE_CXX_STANDARD
to 11 & then let CMake determine how to do that in the build (rather than changing a CXX variable such as suggested; this might work, but letting CMake do the work is more reliable).
comment:8 Changed 5 years ago by michaelld (Michael Dickens)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Yes, we've seen this with other ports too. Anything that uses libxml2 (or at least, uses specific libxml2 headers; I don't know which ones.) See for example #59565. It would also need
compiler.cxx_standard 2011
.