Skip to content

Commit 2e5e136

Browse files
author
Raghuveer Devulapalli
authored
Merge pull request #95 from r-devulap/lib-ver
Add soversion to the lib
2 parents 3c9bf9a + 7af6e11 commit 2e5e136

File tree

4 files changed

+59
-6
lines changed

4 files changed

+59
-6
lines changed

.github/workflows/c-cpp.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,5 +161,9 @@ jobs:
161161
cd builddir
162162
ninja
163163
164+
- name: List exported symbols
165+
run: |
166+
nm --demangle --dynamic --defined-only --extern-only builddir/libx86simdsort.so
167+
164168
- name: Run test suite on SPR
165169
run: sde -spr -- ./builddir/testexe

lib/list-of-exported-symbols.txt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<double>(double*, unsigned long, unsigned long, bool)
2+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<float>(float*, unsigned long, unsigned long, bool)
3+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<int>(int*, unsigned long, unsigned long, bool)
4+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<long>(long*, unsigned long, unsigned long, bool)
5+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<short>(short*, unsigned long, unsigned long, bool)
6+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<unsigned int>(unsigned int*, unsigned long, unsigned long, bool)
7+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<unsigned long>(unsigned long*, unsigned long, unsigned long, bool)
8+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argselect<unsigned short>(unsigned short*, unsigned long, unsigned long, bool)
9+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<double>(double*, unsigned long, bool)
10+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<float>(float*, unsigned long, bool)
11+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<int>(int*, unsigned long, bool)
12+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<long>(long*, unsigned long, bool)
13+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<short>(short*, unsigned long, bool)
14+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<unsigned int>(unsigned int*, unsigned long, bool)
15+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<unsigned long>(unsigned long*, unsigned long, bool)
16+
std::vector<unsigned long, std::allocator<unsigned long> > x86simdsort::argsort<unsigned short>(unsigned short*, unsigned long, bool)
17+
void x86simdsort::partial_qsort<double>(double*, unsigned long, unsigned long, bool)
18+
void x86simdsort::partial_qsort<float>(float*, unsigned long, unsigned long, bool)
19+
void x86simdsort::partial_qsort<int>(int*, unsigned long, unsigned long, bool)
20+
void x86simdsort::partial_qsort<long>(long*, unsigned long, unsigned long, bool)
21+
void x86simdsort::partial_qsort<short>(short*, unsigned long, unsigned long, bool)
22+
void x86simdsort::partial_qsort<unsigned int>(unsigned int*, unsigned long, unsigned long, bool)
23+
void x86simdsort::partial_qsort<unsigned long>(unsigned long*, unsigned long, unsigned long, bool)
24+
void x86simdsort::partial_qsort<unsigned short>(unsigned short*, unsigned long, unsigned long, bool)
25+
void x86simdsort::qselect<double>(double*, unsigned long, unsigned long, bool)
26+
void x86simdsort::qselect<float>(float*, unsigned long, unsigned long, bool)
27+
void x86simdsort::qselect<int>(int*, unsigned long, unsigned long, bool)
28+
void x86simdsort::qselect<long>(long*, unsigned long, unsigned long, bool)
29+
void x86simdsort::qselect<short>(short*, unsigned long, unsigned long, bool)
30+
void x86simdsort::qselect<unsigned int>(unsigned int*, unsigned long, unsigned long, bool)
31+
void x86simdsort::qselect<unsigned long>(unsigned long*, unsigned long, unsigned long, bool)
32+
void x86simdsort::qselect<unsigned short>(unsigned short*, unsigned long, unsigned long, bool)
33+
void x86simdsort::qsort<double>(double*, unsigned long, bool)
34+
void x86simdsort::qsort<float>(float*, unsigned long, bool)
35+
void x86simdsort::qsort<int>(int*, unsigned long, bool)
36+
void x86simdsort::qsort<long>(long*, unsigned long, bool)
37+
void x86simdsort::qsort<short>(short*, unsigned long, bool)
38+
void x86simdsort::qsort<unsigned int>(unsigned int*, unsigned long, bool)
39+
void x86simdsort::qsort<unsigned long>(unsigned long*, unsigned long, bool)
40+
void x86simdsort::qsort<unsigned short>(unsigned short*, unsigned long, bool)
41+
_ZN11x86simdsort13partial_qsortIDF16_EEvPT_mmb
42+
_ZN11x86simdsort5qsortIDF16_EEvPT_mb
43+
_ZN11x86simdsort7argsortIDF16_EESt6vectorImSaImEEPT_mb
44+
_ZN11x86simdsort7qselectIDF16_EEvPT_mmb
45+
_ZN11x86simdsort9argselectIDF16_EESt6vectorImSaImEEPT_mmb

lib/meson.build

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ if cpp.has_argument('-march=haswell')
66
'x86simdsort-avx2.cpp',
77
),
88
include_directories : [src],
9-
cpp_args : ['-march=haswell', flags_hide_symbols],
9+
cpp_args : ['-march=haswell'],
10+
gnu_symbol_visibility : 'inlineshidden',
1011
)
1112
endif
1213

@@ -16,7 +17,8 @@ if cpp.has_argument('-march=skylake-avx512')
1617
'x86simdsort-skx.cpp',
1718
),
1819
include_directories : [src],
19-
cpp_args : ['-march=skylake-avx512', flags_hide_symbols],
20+
cpp_args : ['-march=skylake-avx512'],
21+
gnu_symbol_visibility : 'inlineshidden',
2022
)
2123
endif
2224

@@ -26,7 +28,8 @@ if cpp.has_argument('-march=icelake-client')
2628
'x86simdsort-icl.cpp',
2729
),
2830
include_directories : [src],
29-
cpp_args : ['-march=icelake-client', flags_hide_symbols],
31+
cpp_args : ['-march=icelake-client'],
32+
gnu_symbol_visibility : 'inlineshidden',
3033
)
3134
endif
3235

@@ -36,7 +39,8 @@ if cancompilefp16
3639
'x86simdsort-spr.cpp',
3740
),
3841
include_directories : [src],
39-
cpp_args : ['-march=sapphirerapids', flags_hide_symbols],
42+
cpp_args : ['-march=sapphirerapids'],
43+
gnu_symbol_visibility : 'inlineshidden',
4044
)
4145
endif
4246

meson.build

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ int main() {
1717
}
1818
'''
1919
cancompilefp16 = cpp.compiles(fp16code, args:'-march=sapphirerapids')
20-
flags_hide_symbols = ['-fvisibility=hidden', '-fvisibility-inlines-hidden']
2120

2221
subdir('lib')
2322
libsimdsort = shared_library('x86simdsort',
2423
'lib/x86simdsort.cpp',
2524
include_directories : [utils, lib],
2625
link_with : [libtargets],
27-
cpp_args : [flags_hide_symbols],
26+
gnu_symbol_visibility : 'inlineshidden',
2827
install : true,
28+
soversion : 0,
2929
)
3030

3131
pkg_mod = import('pkgconfig')

0 commit comments

Comments
 (0)