From 8ae8147f7c99331951e65598efccbdc2b3aed6d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Sok=C3=B3=C5=82?= Date: Thu, 1 Aug 2024 15:51:34 +0200 Subject: [PATCH] BLD: Add support for Darwin system --- .../{meson_linux.yml => meson_linux_darwin.yml} | 4 ++-- driver/level2/meson.build | 4 ++-- driver/level3/meson.build | 4 ++-- driver/others/meson.build | 12 ++++++------ interface/meson.build | 12 ++++++------ kernel/meson.build | 4 ++-- meson.build | 10 +++++++++- 7 files changed, 29 insertions(+), 21 deletions(-) rename .github/workflows/{meson_linux.yml => meson_linux_darwin.yml} (94%) diff --git a/.github/workflows/meson_linux.yml b/.github/workflows/meson_linux_darwin.yml similarity index 94% rename from .github/workflows/meson_linux.yml rename to .github/workflows/meson_linux_darwin.yml index d6c8b6b23..4a0ea7e0d 100644 --- a/.github/workflows/meson_linux.yml +++ b/.github/workflows/meson_linux_darwin.yml @@ -1,6 +1,5 @@ name: meson build -#on: [push, pull_request] on: push: branches: @@ -21,11 +20,12 @@ permissions: jobs: build: if: "github.repository == 'HaoZeke/OpenBLAS'" - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: + os: [ubuntu-latest, macos-latest] build: [meson] fortran: [gfortran] openmp: [0] diff --git a/driver/level2/meson.build b/driver/level2/meson.build index bbc1c859d..78e25b3fd 100644 --- a/driver/level2/meson.build +++ b/driver/level2/meson.build @@ -513,8 +513,8 @@ foreach _kop : driver_kops # Add standard flags for naming conventions _ext_cargs += [ - f'-DASMNAME=@sym_name@', - f'-DASMFNAME=@sym_underscored@', + f'-DASMNAME=@asm_name_prefix@@sym_name@', + f'-DASMFNAME=@asm_name_prefix@@sym_underscored@', f'-DNAME=@sym_underscored@', f'-DCNAME=@sym_name@', f'-DCHAR_NAME="@sym_underscored@"', diff --git a/driver/level3/meson.build b/driver/level3/meson.build index 2a1c22eac..fca6407cf 100644 --- a/driver/level3/meson.build +++ b/driver/level3/meson.build @@ -438,8 +438,8 @@ foreach _kop : driver_kops # Add standard flags for naming conventions _ext_cargs += [ - f'-DASMNAME=@sym_name@', - f'-DASMFNAME=@sym_underscored@', + f'-DASMNAME=@asm_name_prefix@@sym_name@', + f'-DASMFNAME=@asm_name_prefix@@sym_underscored@', f'-DNAME=@sym_underscored@', f'-DCNAME=@sym_name@', f'-DCHAR_NAME="@sym_underscored@"', diff --git a/driver/others/meson.build b/driver/others/meson.build index 127c12a25..c1a2e681f 100644 --- a/driver/others/meson.build +++ b/driver/others/meson.build @@ -52,12 +52,12 @@ foreach op : others_ops # Add standard flags for naming conventions c_args += [ - '-DASMNAME=@0@'.format(sym_name), - '-DASMFNAME=@0@_'.format(sym_name), - '-DNAME=@0@_'.format(sym_name), - '-DCNAME=@0@'.format(sym_name), - '-DCHAR_NAME="@0@_"'.format(sym_name), - '-DCHAR_CNAME="@0@"'.format(sym_name) + f'-DASMNAME=@asm_name_prefix@@sym_name@', + f'-DASMFNAME=@asm_name_prefix@@sym_name@_', + f'-DNAME=@sym_name@_', + f'-DCNAME=@sym_name@', + f'-DCHAR_NAME="@sym_name@_"', + f'-DCHAR_CNAME="@sym_name@"', ] # Append the current configuration diff --git a/interface/meson.build b/interface/meson.build index 5ac098573..ff19535da 100644 --- a/interface/meson.build +++ b/interface/meson.build @@ -626,12 +626,12 @@ foreach conf : _blas_roots sources: [conf['fname'], config_h], include_directories: _inc, c_args: compiler_args + [ - f'-DASMNAME=@sym_name@', - f'-DASMFNAME=@sym_underscored@', + f'-DASMNAME=@asm_name_prefix@@sym_name@', + f'-DASMFNAME=@asm_name_prefix@@sym_underscored@', f'-DNAME=@sym_underscored@', f'-DCNAME=@sym_name@', f'-DCHAR_NAME="@sym_underscored@"', - f'-DCHAR_CNAME="@sym_name@"' + f'-DCHAR_CNAME="@sym_name@"', ] ) _interface_libs += lib @@ -649,12 +649,12 @@ foreach conf : _blas_roots include_directories: _inc, c_args: compiler_args + [ '-DCBLAS', - f'-DASMNAME=@cblas_sym_name@', - f'-DASMFNAME=@cblas_sym_underscored@', + f'-DASMNAME=@asm_name_prefix@@cblas_sym_name@', + f'-DASMFNAME=@asm_name_prefix@@cblas_sym_underscored@', f'-DNAME=@cblas_sym_underscored@', f'-DCNAME=@cblas_sym_name@', f'-DCHAR_NAME="@cblas_sym_underscored@"', - f'-DCHAR_CNAME="@cblas_sym_name@"' + f'-DCHAR_CNAME="@cblas_sym_name@"', ] ) _interface_libs += cblas_lib diff --git a/kernel/meson.build b/kernel/meson.build index 06cec1049..b04cae6d1 100644 --- a/kernel/meson.build +++ b/kernel/meson.build @@ -1486,8 +1486,8 @@ foreach _kop : base_kops sym_name = base.replace('?', mode) + ext sym_underscored = f'@sym_name@_' _ext_cargs += [ - f'-DASMNAME=@sym_name@', - f'-DASMFNAME=@sym_underscored@', + f'-DASMNAME=@asm_name_prefix@@sym_name@', + f'-DASMFNAME=@asm_name_prefix@@sym_underscored@', f'-DNAME=@sym_underscored@', f'-DCNAME=@sym_name@', f'-DCHAR_NAME="@sym_underscored@"', diff --git a/meson.build b/meson.build index 90148b945..f990e297e 100644 --- a/meson.build +++ b/meson.build @@ -67,10 +67,18 @@ max_stack_alloc = get_option('max_stack_alloc') quad_prec = get_option('quad_precision') exprecision = get_option('exprecision') -if host_machine.system() == 'linux' +is_linux = host_machine.system() == 'linux' +is_darwin = host_machine.system() == 'darwin' + +if is_linux no_affinity = true + asm_name_prefix = '' +elif is_darwin + no_affinity = true + asm_name_prefix = '_' else no_affinity = false + asm_name_prefix = '' endif _check_prefix = []