HomeFreeBSD

databases/mysql80-server databases/mysql81-server: fix build with libc++ 18 on…

Description

databases/mysql80-server databases/mysql81-server: fix build with libc++ 18 on i386

When building against libc++ 18, several iostream classes now get
inlined into C++ binaries for efficiency. But because the mysql ports
use -malign-double on non-powerpc architectures, this causes an ABI
problem with libc++.so, which has not been built with that flag, at
least on i386. This can cause segfaults during the build of the port.

If it is not the architecture default, as it is on amd64, -malign-double
should not be used without recompiling basically the entire userspace
runtime. Quoting the gcc docs:

Warning: if you use the -malign-double switch, structures containing
the above types are aligned differently than the published application
binary interface specifications for the x86-32 and are not binary
compatible with structures in code compiled without that switch.

Hence, remove -malign-double from CXXFLAGS for these ports.

PR: 277896
Approved by: maintainer timeout (2 weeks)
MFH: 2024Q1

(cherry picked from commit b49518c5c7c16418d7da0a5ce786da139b905bb1)

Details

Provenance
dimAuthored on Mar 22 2024, 8:49 PM
Parents
R11:07eb689e5440: net-im/dissent: update to 0.0.23
Branches
Unknown
Tags
Unknown