Fix building and testing on FreeBSD; Add FreeBSD platform support #8193
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix building and testing on FreeBSD and add support for "FreeBSD" platform
Motivation:
Adding support for "FreeBSD" is swiftpm is necessary to get a usable toolchain building on FreeBSD.
Modifications:
Archiver
On FreeBSD, the
unzip
command is available in base but not thezip
command. Therefore; we use libarchive (viabsdtar
) to produce ZIP archive instead.The implementation is also based on
libarchive
which produces different error messages; Tests are updated accordinglycompile / link arguments
FreeBSD ships with libc++ by default hence should use
-lc++
. Like Linux,defsym
is also required to link targets with_main
symbol.FreeBSD native package manager (
pkgng
) support:FreeBSD uses
pkgng
as its package manager,Result:
Should be able to build swiftpm on FreeBSD. Testing on
x86_64 FreeBSD 14.2 RELEASE