|
1
|
+--- a/meson.build
|
|
2
|
++++ b/meson.build
|
|
3
|
+@@ -39,6 +39,9 @@ prog_py = import('python').find_installa
|
|
4
|
+ files_symbols_check = files('bin/symbols-check.py')
|
|
5
|
+ prog_nm = find_program('nm')
|
|
6
|
+
|
|
7
|
++message('Host CPU family: @0@'.format(host_machine.cpu_family()))
|
|
8
|
++message('Host CPU: @0@'.format(host_machine.cpu()))
|
|
9
|
++
|
|
10
|
+ with_asm = get_option('asm')
|
|
11
|
+ use_asm = false
|
|
12
|
+ if not with_asm.disabled()
|
|
13
|
+@@ -52,7 +55,28 @@ if not with_asm.disabled()
|
|
14
|
+ 'netbsd'].contains(host_machine.system()))
|
|
15
|
+ add_project_arguments('-DUSE_X86_64_ASM', language : 'c')
|
|
16
|
+ elif host_machine.cpu_family() == 'arm'
|
|
17
|
+- add_project_arguments('-DUSE_ARMV7_ASM', language : 'c')
|
|
18
|
++ # Try to figure out if we're targeting an ARMv7 or something older like
|
|
19
|
++ # armel. Note that host_machine.cpu() won't help here -- it might still
|
|
20
|
++ # return "armv7l" or "armv8l". Instead, try checking for compiler macros.
|
|
21
|
++ if ['gcc', 'clang'].contains(cc.get_id())
|
|
22
|
++ is_armv7 = cc.compiles('''
|
|
23
|
++#if !(defined(__ARM_ARCH_7__) \
|
|
24
|
++ || defined(__ARM_ARCH_7A__) \
|
|
25
|
++ || defined(__ARM_ARCH_7R__) \
|
|
26
|
++ || defined(__ARM_ARCH_7M__) \
|
|
27
|
++ || defined(__ARM_ARCH_7S__) \
|
|
28
|
++ || (defined(__ARM_ARCH) && __ARM_ARCH >= 7))
|
|
29
|
++#error "Not ARM7"
|
|
30
|
++#endif
|
|
31
|
++ ''', name : 'ARMv7 macros')
|
|
32
|
++ else
|
|
33
|
++ is_armv7 = true
|
|
34
|
++ endif
|
|
35
|
++ if is_armv7
|
|
36
|
++ add_project_arguments('-DUSE_ARMV7_ASM', language : 'c')
|
|
37
|
++ else
|
|
38
|
++ use_asm = false
|
|
39
|
++ endif
|
|
40
|
+ elif host_machine.cpu_family() == 'aarch64'
|
|
41
|
+ add_project_arguments('-DUSE_AARCH64_ASM', language : 'c')
|
|
42
|
+ elif host_machine.cpu_family() == 'ppc' and host_machine.endian() == 'little'
|