Skip to content

Commit ac29327

Browse files
committed
support for FreeBSD os
1 parent d4207ce commit ac29327

File tree

14 files changed

+39
-34
lines changed

14 files changed

+39
-34
lines changed

SConscript

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ import codecs
3333
import platform
3434
import SCons
3535

36-
VERSION = "v0.0-unreleased"
37-
LIBRARY_VERSION_MAJOR = 38
38-
LIBRARY_VERSION_MINOR = 0
39-
LIBRARY_VERSION_PATCH = 0
36+
VERSION = "v52.6.0"
37+
LIBRARY_VERSION_MAJOR = 52
38+
LIBRARY_VERSION_MINOR = 6
39+
LIBRARY_VERSION_PATCH = 0
4040
SONAME_VERSION = str(LIBRARY_VERSION_MAJOR) + "." + str(LIBRARY_VERSION_MINOR) + "." + str(LIBRARY_VERSION_PATCH)
4141

4242
Import('env')
@@ -399,7 +399,7 @@ arm_compute_env = env.Clone()
399399
version_file = arm_compute_env.Command("src/core/arm_compute_version.embed", "", action=create_version_file)
400400
arm_compute_env.AlwaysBuild(version_file)
401401

402-
default_cpp_compiler = 'g++' if env['os'] not in ['android', 'macos', 'openbsd'] else 'clang++'
402+
default_cpp_compiler = 'g++' if env['os'] not in ['android', 'macos', 'openbsd', 'freebsd' 'freebsd'] else 'clang++'
403403
cpp_compiler = os.environ.get('CXX', default_cpp_compiler)
404404

405405
# Generate embed files

SConstruct

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ vars.AddVariables(
103103
allowed_values=("armv7a", "armv7a-hf", "arm64-v8a", "arm64-v8.2-a", "arm64-v8.2-a-sve", "arm64-v8.2-a-sve2", "x86_32", "x86_64",
104104
"armv8a", "armv8.2-a", "armv8.2-a-sve", "armv8.6-a", "armv8.6-a-sve", "armv8.6-a-sve2", "armv8.6-a-sve2-sme2", "armv8r64", "x86")),
105105
EnumVariable("estate", "Execution State", "auto", allowed_values=("auto", "32", "64")),
106-
EnumVariable("os", "Target OS. With bare metal selected, only Arm® Neon™ (not OpenCL) can be used, static libraries get built and Neon™'s multi-threading support is disabled.", "linux", allowed_values=("linux", "android", "tizen", "macos", "bare_metal", "openbsd","windows", "qnx")),
106+
EnumVariable("os", "Target OS. With bare metal selected, only Arm® Neon™ (not OpenCL) can be used, static libraries get built and Neon™'s multi-threading support is disabled.", "linux", allowed_values=("linux", "android", "tizen", "macos", "bare_metal", "openbsd", "freebsd","windows", "qnx")),
107107
EnumVariable("build", "Either build directly on your device (native) or cross compile from your desktop machine (cross-compile). In both cases make sure the compiler is available in your path.", "cross_compile", allowed_values=("native", "cross_compile", "embed_only")),
108108
BoolVariable("examples", "Build example programs", True),
109109
BoolVariable("gemm_tuner", "Build gemm_tuner programs", True),
@@ -282,11 +282,11 @@ if env['profile']:
282282

283283
cpp_tool = {'linux': 'g++', 'android' : 'clang++',
284284
'tizen': 'g++', 'macos':'clang++',
285-
'bare_metal':'g++', 'openbsd':'g++','windows':'clang-cl', 'qnx':'qcc -Vgcc_ntoaarch64le'}
285+
'bare_metal':'g++', 'openbsd':'g++', 'freebsd':'clang++', 'windows':'clang-cl', 'qnx':'qcc -Vgcc_ntoaarch64le'}
286286

287287
c_tool = {'linux':'gcc', 'android': 'clang', 'tizen':'gcc',
288288
'macos':'clang','bare_metal':'gcc',
289-
'openbsd':'gcc','windows':'clang-cl', 'qnx':'qcc -Vgcc_ntoaarch64le'}
289+
'openbsd':'gcc', 'freebsd':'clang++', 'windows':'clang-cl', 'qnx':'qcc -Vgcc_ntoaarch64le'}
290290

291291
default_cpp_compiler = cpp_tool[env['os']]
292292
default_c_compiler = c_tool[env['os']]
@@ -567,7 +567,7 @@ if env['opencl']:
567567
if env["os"] not in ["windows","android", "bare_metal", "qnx"] and (env['opencl'] or env['cppthreads']):
568568
env.Append(LIBS = ['pthread'])
569569

570-
if env['os'] == 'openbsd':
570+
if env['os'] == 'openbsd' or 'frebsd':
571571
env.Append(LIBS = ['c'])
572572
env.Append(CCFLAGS = ['-fPIC'])
573573

arm_compute/core/utils/misc/Utility.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include <limits>
3737
#include <numeric>
3838
#include <vector>
39+
#include <cstdint>
3940

4041
namespace arm_compute
4142
{

src/common/cpuinfo/CpuInfo.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131

3232
#include <map>
3333
#include <sstream>
34+
#include <sys/types.h>
35+
#include <sys/sysctl.h>
3436

3537
#if !defined(BARE_METAL)
3638
#include <algorithm>
@@ -52,15 +54,15 @@
5254
#endif /* !defined(BARE_METAL) */
5355

5456
#if !defined(_WIN64)
55-
#if !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__QNX__) && \
57+
#if !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__QNX__) && \
5658
(defined(__arm__) || defined(__aarch64__))
5759
#include <asm/hwcap.h> /* Get HWCAP bits from asm/hwcap.h */
5860
#include <sys/auxv.h>
59-
#elif (defined(__OpenBSD__) || defined(__APPLE__)) && defined(__aarch64__)
61+
#elif (defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__APPLE__)) && defined(__aarch64__)
6062
#include <sys/sysctl.h>
6163
#include <sys/types.h>
6264
#endif /* defined(__APPLE__) && defined(__aarch64__)) */
63-
#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__QNX__) && (defined(__arm__) || defined(__aarch64__)) */
65+
#endif /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) !defined(__FreeBSD__) && !defined(__QNX__) && (defined(__arm__) || defined(__aarch64__)) */
6466

6567
#define ARM_COMPUTE_CPU_FEATURE_HWCAP_CPUID (1 << 11)
6668
#define ARM_COMPUTE_GET_FEATURE_REG(var, freg) __asm __volatile("MRS %0, " #freg : "=r"(var))
@@ -70,7 +72,7 @@ namespace cpuinfo
7072
{
7173
namespace
7274
{
73-
#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__QNX__) && \
75+
#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__QNX__) && \
7476
(defined(__arm__) || defined(__aarch64__))
7577
/** Extract MIDR using CPUID information that are exposed to user-space
7678
*
@@ -352,7 +354,7 @@ CpuInfo::CpuInfo(CpuIsaInfo isa, std::vector<CpuModel> cpus) : _isa(std::move(is
352354

353355
CpuInfo CpuInfo::build()
354356
{
355-
#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__QNX__) && \
357+
#if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__QNX__) && \
356358
(defined(__arm__) || defined(__aarch64__))
357359
const uint32_t hwcaps = getauxval(AT_HWCAP);
358360
const uint32_t hwcaps2 = getauxval(AT_HWCAP2);
@@ -383,7 +385,7 @@ CpuInfo CpuInfo::build()
383385

384386
CpuInfo info(isa, cpus_model);
385387
return info;
386-
#elif defined(__OpenBSD__)
388+
#elif defined(__OpenBSD__) || defined(__FreeBSD__)
387389
int mib[2] = {0, 0};
388390
int ncpu = {1};
389391
size_t len = sizeof(ncpu);
@@ -420,7 +422,7 @@ CpuInfo CpuInfo::build()
420422
CpuInfo info(isa, cpus_model);
421423
return info;
422424
#elif defined(__aarch64__) && \
423-
(defined(__OpenBSD__) || defined(__APPLE__)) /* #elif(BARE_METAL) && defined(__aarch64__) */
425+
(defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__APPLE__)) /* #elif(BARE_METAL) && defined(__aarch64__) */
424426
int ncpus = get_hw_capability("hw.perflevel0.logicalcpu");
425427
CpuIsaInfo isainfo;
426428
std::vector<CpuModel> cpus_model(ncpus);
@@ -466,7 +468,7 @@ CpuModel CpuInfo::cpu_model(uint32_t cpuid) const
466468

467469
CpuModel CpuInfo::cpu_model() const
468470
{
469-
#if defined(_WIN64) || defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__QNX__) || \
471+
#if defined(_WIN64) || defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__QNX__) || \
470472
(!defined(__arm__) && !defined(__aarch64__))
471473
return cpu_model(0);
472474
#else /* defined(BARE_METAL) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__QNX__) || (!defined(__arm__) && !defined(__aarch64__)) */

src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
#include "depthfirst_driver.hpp"
2828
#include "src/core/NEON/kernels/arm_conv/addressing.hpp"
2929
#include "utils.hpp"
30-
#if !defined(_WIN64) && !defined(__OpenBSD__)
30+
#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
3131
#include <alloca.h>
32-
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */
32+
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */
3333
#include <limits>
3434

3535
namespace arm_conv {

src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst_generic.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626

2727
#include "depthfirst_driver.hpp"
2828
#include "utils.hpp"
29-
#if !defined(_WIN64) && !defined(__OpenBSD__)
29+
#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
3030
#include <alloca.h>
31-
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */
31+
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(FreeBSD) */
3232

3333
namespace arm_conv {
3434
namespace pooling {

src/core/NEON/kernels/arm_gemm/gemm_hybrid_indirect.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
*/
2424
#pragma once
2525

26-
#if !defined(_WIN64) && !defined(__OpenBSD__)
26+
#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
2727
#include <alloca.h>
28-
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */
28+
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */
2929

3030
#include <algorithm>
3131
#include <cassert>

src/core/NEON/kernels/arm_gemm/interleave-8way.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525

2626
#include <arm_neon.h>
2727

28-
#if !defined(_WIN64) && !defined(__OpenBSD__)
28+
#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
2929
#include <alloca.h>
30-
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */
30+
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */
3131

3232
#include <cstring>
3333

src/core/NEON/kernels/arm_gemm/interleave_indirect.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
#include "interleave_indirect.hpp"
2929
#include "bfloat.hpp"
3030

31-
#if !defined(_WIN64) && !defined(__OpenBSD__)
31+
#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
3232
#include <alloca.h>
33-
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */
33+
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */
3434

3535
#include <algorithm>
3636
#include <cstddef>

src/core/NEON/kernels/arm_gemm/transform-bf16.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
#include "src/core/NEON/wrapper/intrinsics/intrinsics.h"
2727
#include "bfloat.hpp"
2828

29-
#if !defined(_WIN64) && !defined(__OpenBSD__)
29+
#if !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
3030
#include <alloca.h>
31-
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) */
31+
#endif /* !defined(_WIN64) && !defined(__OpenBSD__) && !defined(__FreeBSD__) */
3232

3333
namespace arm_gemm {
3434

0 commit comments

Comments
 (0)