From b7f9bc2a966d0f4a06165431414d0cf96d1c3f5f Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Sat, 12 Jun 2021 20:34:45 +0300 Subject: [PATCH] sync: support linking with libatomic with tcc on ubuntu aarch64 --- vlib/sync/atomic2/atomic.v | 28 ++++++++++++++++++++-------- vlib/sync/channels.v | 26 ++++++++++++++++++-------- 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/vlib/sync/atomic2/atomic.v b/vlib/sync/atomic2/atomic.v index 7b5d3f0379..e57bade962 100644 --- a/vlib/sync/atomic2/atomic.v +++ b/vlib/sync/atomic2/atomic.v @@ -11,21 +11,33 @@ for stdatomic that supports both nix, windows and c++. This implementations should be regarded as alpha stage and be further tested. */ + #flag windows -I @VEXEROOT/thirdparty/stdatomic/win #flag linux -I @VEXEROOT/thirdparty/stdatomic/nix #flag darwin -I @VEXEROOT/thirdparty/stdatomic/nix #flag freebsd -I @VEXEROOT/thirdparty/stdatomic/nix #flag solaris -I @VEXEROOT/thirdparty/stdatomic/nix + $if linux { $if tinyc { - // most Linux distributions have /usr/lib/libatomic.so, but Ubuntu uses gcc version specific dir - #flag -L/usr/lib/gcc/x86_64-linux-gnu/6 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/7 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/8 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/9 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/10 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/11 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/12 + $if amd64 { + // most Linux distributions have /usr/lib/libatomic.so, but Ubuntu uses gcc version specific dir + #flag -L/usr/lib/gcc/x86_64-linux-gnu/6 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/7 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/8 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/9 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/10 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/11 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/12 + } $else $if aarch64 { + #flag -L/usr/lib/gcc/aarch64-linux-gnu/6 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/7 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/8 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/9 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/10 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/11 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/12 + } #flag -latomic } } diff --git a/vlib/sync/channels.v b/vlib/sync/channels.v index 7802f84b0c..559acb7c89 100644 --- a/vlib/sync/channels.v +++ b/vlib/sync/channels.v @@ -11,14 +11,24 @@ $if windows { $if linux { $if tinyc { - // most Linux distributions have /usr/lib/libatomic.so, but Ubuntu uses gcc version specific dir - #flag -L/usr/lib/gcc/x86_64-linux-gnu/6 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/7 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/8 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/9 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/10 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/11 - #flag -L/usr/lib/gcc/x86_64-linux-gnu/12 + $if amd64 { + // most Linux distributions have /usr/lib/libatomic.so, but Ubuntu uses gcc version specific dir + #flag -L/usr/lib/gcc/x86_64-linux-gnu/6 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/7 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/8 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/9 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/10 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/11 + #flag -L/usr/lib/gcc/x86_64-linux-gnu/12 + } $else $if aarch64 { + #flag -L/usr/lib/gcc/aarch64-linux-gnu/6 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/7 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/8 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/9 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/10 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/11 + #flag -L/usr/lib/gcc/aarch64-linux-gnu/12 + } #flag -latomic } }