Page MenuHomeFreeBSD

cross-build: provide exterr.h and sys/exterrvar.h for non-FreeBSD hosts
ClosedPublic

Authored by kib on Jul 8 2025, 11:07 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Oct 12, 1:20 AM
Unknown Object (File)
Sat, Oct 11, 7:29 AM
Unknown Object (File)
Sat, Oct 11, 7:29 AM
Unknown Object (File)
Sat, Oct 11, 7:29 AM
Unknown Object (File)
Sat, Oct 11, 12:11 AM
Unknown Object (File)
Thu, Sep 18, 5:54 PM
Unknown Object (File)
Aug 28 2025, 10:16 PM
Unknown Object (File)
Aug 27 2025, 10:16 AM
Subscribers

Details

Summary

with enough glue to make libc/gen/err.c compilable.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kib requested review of this revision.Jul 8 2025, 11:07 PM

With these two files added, the cross-build on my m4 mac passes the initial phase, to die somewhere in sqlite (but I am not sure):

In file included from /Users/kostik/work/DEV/src/contrib/kyua/main.cpp:29:
In file included from /Users/kostik/work/DEV/src/contrib/kyua/cli/main.hpp:38:
In file included from /Users/kostik/work/DEV/src/contrib/kyua/cli/common.hpp:35:
In file included from /Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/c++/v1/memory:939:
In file included from /Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/c++/v1/__memory/align.h:13:
In file included from /Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/c++/v1/cstddef:40:
/Users/kostik/work/DEV/src/contrib/sqlite3/version:1:1: error: expected unqualified-id
    1 | 3.50.2
      | ^

Even more (un)interesting lines from the log:

In file included from /Users/kostik/work/DEV/src/contrib/kyua/cli/main.hpp:38:
In file included from /Users/kostik/work/DEV/src/contrib/kyua/cli/common.hpp:35:
In file included from /Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/c++/v1/memory:939:
In file included from /Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/c++/v1/__memory/align.h:13:
In file included from /Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/c++/v1/cstddef:42:
In file included from /Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/c++/v1/stddef.h:35:
In file included from /Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/stddef.h:36:
/Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/sys/_types.h:59:9: error: unknown type name '__int8_t'; did you mean '__uint8_t'?
   59 | typedef __int8_t        __int_least8_t;
      |         ^
/Users/kostik/work/DEV/obj/Users/kostik/work/DEV/src/amd64.amd64/tmp/usr/include/sys/_types.h:42:24: note: '__uint8_t' declared here
   42 | typedef unsigned char           __uint8_t;
      |                                 ^
This revision is now accepted and ready to land.Jul 10 2025, 7:52 PM

If this works, sure.

That build failure is sucky. macOS is case-insensitive so 17f0f75308f287efea825457364e2a4de2e107d4, which brought in contrib/sqlite3/VERSION (previously not present in the autoconf bundles, it seems), clashes with libcxx's <version> (a standard header). I don't know why we're reaching into contrib/sqlite3 for usr.bin/kyua rather than just using -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/private/sqlite3. Can you try that locally, as you've already got a build to hand?

(This isn't the first time I've seen this kind of issue... we independently discovered https://github.com/qemu/qemu/commit/75eebe0b1f15464d19a39c4186bfabf328ab601a)

If this works, sure.

That build failure is sucky. macOS is case-insensitive so 17f0f75308f287efea825457364e2a4de2e107d4, which brought in contrib/sqlite3/VERSION (previously not present in the autoconf bundles, it seems), clashes with libcxx's <version> (a standard header). I don't know why we're reaching into contrib/sqlite3 for usr.bin/kyua rather than just using -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/private/sqlite3. Can you try that locally, as you've already got a build to hand?

(This isn't the first time I've seen this kind of issue... we independently discovered https://github.com/qemu/qemu/commit/75eebe0b1f15464d19a39c4186bfabf328ab601a)

With the following change

diff --git a/usr.bin/kyua/Makefile b/usr.bin/kyua/Makefile
index d3a7b9b61f64..a4f95f1106d9 100644
--- a/usr.bin/kyua/Makefile
+++ b/usr.bin/kyua/Makefile
@@ -32,7 +32,7 @@ MAN=          kyua-about.1 \
 
 CFLAGS+=       -I${KYUA_SRCDIR} -I${.CURDIR}
 CFLAGS+=       -I${SRCTOP}/contrib/lutok/include
-CFLAGS+=       -I${SRCTOP}/contrib/sqlite3
+CFLAGS+=       -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/private/sqlite3
 CFLAGS+=       -DHAVE_CONFIG_H
 
 # We compile the kyua libraries as part of the main executable as this saves

on top of the main, the build succeeded.

In D51217#1169952, @kib wrote:

If this works, sure.

That build failure is sucky. macOS is case-insensitive so 17f0f75308f287efea825457364e2a4de2e107d4, which brought in contrib/sqlite3/VERSION (previously not present in the autoconf bundles, it seems), clashes with libcxx's <version> (a standard header). I don't know why we're reaching into contrib/sqlite3 for usr.bin/kyua rather than just using -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/private/sqlite3. Can you try that locally, as you've already got a build to hand?

(This isn't the first time I've seen this kind of issue... we independently discovered https://github.com/qemu/qemu/commit/75eebe0b1f15464d19a39c4186bfabf328ab601a)

With the following change

diff --git a/usr.bin/kyua/Makefile b/usr.bin/kyua/Makefile
index d3a7b9b61f64..a4f95f1106d9 100644
--- a/usr.bin/kyua/Makefile
+++ b/usr.bin/kyua/Makefile
@@ -32,7 +32,7 @@ MAN=          kyua-about.1 \
 
 CFLAGS+=       -I${KYUA_SRCDIR} -I${.CURDIR}
 CFLAGS+=       -I${SRCTOP}/contrib/lutok/include
-CFLAGS+=       -I${SRCTOP}/contrib/sqlite3
+CFLAGS+=       -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/private/sqlite3
 CFLAGS+=       -DHAVE_CONFIG_H
 
 # We compile the kyua libraries as part of the main executable as this saves

on top of the main, the build succeeded.

Reviewed by: jrtc27
Fixes: 17f0f75308f2 ("sqlite3: Vendor import of sqlite3 3.50.2")

? :)

Reviewed by: jrtc27
Fixes: 17f0f75308f2 ("sqlite3: Vendor import of sqlite3 3.50.2")

? :)

Almost. See 09d28419c646650a77721e168