Skip to content

Commit 7834be1

Browse files
committed
added support for FreeBSD
Tested using 5.36.3 on FreeBSD 14, clang 16.0.6 Resolves #30.
1 parent 4d3b7a6 commit 7834be1

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

Changes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
0.3.8 2025-04-02 20:04:34+01:00 Europe/London
2+
- Added support for FreeBSD, using FreeBSD 14
3+
and clang version 16.0.6
4+
15
0.3.7 2022-05-14 20:04:34+01:00 Europe/London
26
- Fixing build that breaks when CNAME is a path to
37
gcc and not just "gcc" (or "cc")

lib/Alien/OpenMP.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use parent 'Alien::Base';
66
use Config ();
77
use Alien::OpenMP::configure ();
88

9-
our $VERSION = '0.3.7';
9+
our $VERSION = '0.3.8';
1010

1111
# "public" Alien::Base method implementations
1212

lib/Alien/OpenMP/configure.pm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ sub _update_supported {
144144
unshift @{$supported->{darwin}{libs}}, "-L/usr/local/lib", "-L/opt/homebrew/opt/libomp/lib";
145145
}
146146
}
147+
elsif ($OS eq 'freebsd') {
148+
$CCNAME = 'clang';
149+
}
147150
# covers case where "CCNAME" is "cc" but it's still "gcc"; the alternative is to add
148151
# 'cc' to the supported hash above, which seems to restrictive
149152
elsif ($CCNAME eq "cc") {

t/03-configure.t

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,22 @@ subtest 'gcc' => sub {
2424
is +Alien::OpenMP::configure->lddlflags, $omp_flag, q{Found expected OpenMP linker switch for gcc.};
2525
};
2626

27+
subtest 'FreeBSD clang/gcc' => sub {
28+
if ($^O eq 'MSWin32') {
29+
plan skip_all => 'Mocking does not work on MSWin32'
30+
}
31+
local $Alien::OpenMP::configure::CCNAME = 'gcc';
32+
local $Alien::OpenMP::configure::OS = 'freebsd';
33+
Alien::OpenMP::configure->_reset;
34+
is +Alien::OpenMP::configure->is_known, 1, q{known};
35+
like +Alien::OpenMP::configure->cflags, qr{-Xclang -fopenmp}, q{Found expected OpenMP compiler switch for gcc/clang.};
36+
like +Alien::OpenMP::configure->lddlflags, qr{-lomp}, q{Found expected OpenMP linker switch for gcc/clang.};
37+
};
38+
2739
subtest 'darwin clang/gcc homebrew' => sub {
28-
plan skip_all => 'Mocking does not work on MSWin32'
29-
if $^O eq 'MSWin32';
40+
if ($^O eq 'MSWin32') {
41+
plan skip_all => 'Mocking does not work on MSWin32'
42+
}
3043
local $Alien::OpenMP::configure::CCNAME = 'gcc';
3144
local $Alien::OpenMP::configure::OS = 'darwin';
3245
local $ENV{PATH} = "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin";

0 commit comments

Comments
 (0)