build.zig: update for 3.8.2

Something that I completely do not understand happened here, and I also
can't figure out how it broke. The previous two versions have included
the installed copy of the architecture conf header with no problems.
However, the 3.8.2 build fails, complaining it can't find
openssl/opensslconf.h, and there's no obvious reason why, since the
includes appear to happen the same way in the source as before. I've
temporarily worked around this issue by making the build system
manually copy the platform header around inside the source tree, but
this really shouldn't be necessary. There must be something else in
the include machinery that changed, but this was a patch release with
very minor changes to the portability layer. There were no build
system changes I can see that would cause this. It's possible the
cause may be revealed by looking at the BSD source differences, but
this is truly baffling to me because it seems like it should be 100% a
build system issue. The source tree should not mysteriously be able to
break the compiler's include path!

Of course, it's also entirely possible that the previous versions don't
work at all the way I thought they did. But let's actually pretend I'm
perfect and that's not possible.
This commit is contained in:
torque 2023-11-06 23:20:48 -08:00
parent c06f268a16
commit 213b9d18be
Signed by: torque
SSH Key Fingerprint: SHA256:nCrXefBNo6EbjNSQhv0nXmEg/VuNq3sMF5b8zETw3Tk

View File

@ -243,6 +243,13 @@ pub fn libresslBuild(
else => @panic("unsupported target CPU arch"),
};
try b.build_root.handle.copyFile(
conf_header,
b.build_root.handle,
source_header_prefix ++ "openssl/opensslconf.h",
.{},
);
libressl_libs.libcrypto.installHeader(conf_header, "openssl/opensslconf.h");
libressl_libs.libssl.installHeader(conf_header, "openssl/opensslconf.h");
libressl_libs.libtls.installHeader(conf_header, "openssl/opensslconf.h");
@ -311,34 +318,6 @@ pub fn build(b: *std.Build) !void {
_ = try libresslBuild(b, .{ .target = target, .optimize = optimize });
}
// libressl_libs.defineCMacro("HAVE_ASPRINTF", null);
// libressl_libs.defineCMacro("HAVE_REALLOCARRAY", null);
// libressl_libs.defineCMacro("HAVE_STRCASECMP", null);
// libressl_libs.defineCMacro("HAVE_STRLCAT", null);
// libressl_libs.defineCMacro("HAVE_STRLCPY", null);
// libressl_libs.defineCMacro("HAVE_STRNDUP", null);
// libressl_libs.defineCMacro("HAVE_STRNLEN", null);
// libressl_libs.defineCMacro("HAVE_STRSEP", null);
// libressl_libs.defineCMacro("HAVE_STRTONUM", null);
// libressl_libs.defineCMacro("HAVE_TIMEGM", null);
// libressl_libs.defineCMacro("HAVE_ARC4RANDOM_BUF", null);
// libressl_libs.defineCMacro("HAVE_ARC4RANDOM_UNIFORM", null);
// libressl_libs.defineCMacro("HAVE_EXPLICIT_BZERO", null);
// libressl_libs.defineCMacro("HAVE_GETAUXVAL", null);
// libressl_libs.defineCMacro("HAVE_GETENTROPY", null);
// libressl_libs.defineCMacro("HAVE_GETPAGESIZE", null);
// libressl_libs.defineCMacro("HAVE_GETPROGNAME", null);
// libressl_libs.defineCMacro("HAVE_SYSLOG_R", null);
// libressl_libs.defineCMacro("HAVE_SYSLOG", null);
// libressl_libs.defineCMacro("HAVE_TIMESPECSUB", null);
// libressl_libs.defineCMacro("HAVE_TIMINGSAFE_BCMP", null);
// libressl_libs.defineCMacro("HAVE_MEMCMP", null);
// libressl_libs.defineCMacro("HAVE_MEMMEM", null);
// libressl_libs.defineCMacro("HAVE_ENDIAN_H", null);
// libressl_libs.defineCMacro("HAVE_MACHINE_ENDIAN_H", null);
// libressl_libs.defineCMacro("HAVE_ERR_H", null);
// libressl_libs.defineCMacro("HAVE_NETINET_IP_H", null);
const SkipSpec = union(enum) {
starts_with: []const u8,
ends_with: []const u8,