Skip to content

Commit c0f75cf

Browse files
authored
Merge pull request #4948 from randombit/jack/internal-feat-macros
Add the concept of an internal feature macro definition
2 parents 8d0ef6c + e481914 commit c0f75cf

105 files changed

Lines changed: 223 additions & 211 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

configure.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -841,7 +841,7 @@ def __init__(self, infofile):
841841
infofile,
842842
['header:internal', 'header:public', 'header:external', 'requires',
843843
'os_features', 'arch', 'isa', 'cc', 'comment', 'warning'],
844-
['defines', 'libs', 'frameworks', 'module_info'],
844+
['defines', 'internal_defines', 'libs', 'frameworks', 'module_info'],
845845
{
846846
'load_on': 'auto',
847847
})
@@ -890,6 +890,8 @@ def combine_lines(c):
890890
self.comment = combine_lines(lex.comment)
891891
self._defines = lex.defines
892892
self._validate_defines_content(self._defines)
893+
self._internal_defines = lex.internal_defines
894+
self._validate_defines_content(self._internal_defines)
893895
self.frameworks = convert_lib_list(lex.frameworks)
894896
self.libs = convert_lib_list(lex.libs)
895897
self.load_on = lex.load_on
@@ -1017,6 +1019,9 @@ def isas_needed(self, arch):
10171019
def defines(self):
10181020
return [(key + ' ' + value) for key, value in self._defines.items()]
10191021

1022+
def internal_defines(self):
1023+
return [(key + ' ' + value) for key, value in self._internal_defines.items()]
1024+
10201025
def compatible_cpu(self, archinfo, options):
10211026
arch_name = archinfo.basename
10221027
cpu_name = options.arch
@@ -2322,6 +2327,7 @@ def test_exe_extra_ldflags():
23222327
'internal_include_flags': build_paths.format_internal_include_flags(cc),
23232328
'external_include_flags': build_paths.format_external_include_flags(cc, options.with_external_includedir),
23242329
'module_defines': sorted(flatten([m.defines() for m in modules])),
2330+
'module_internal_defines': sorted(flatten([m.internal_defines() for m in modules])),
23252331

23262332
'build_bogo_shim': bool('bogo_shim' in options.build_targets),
23272333
'bogo_shim_src': os.path.join(source_paths.src_dir, 'bogo_shim', 'bogo_shim.cpp'),

src/build-data/buildh.in

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,17 @@
139139
#define BOTAN_HAS_%{i}
140140
%{endfor}
141141

142+
/*
143+
* Internal module feature definitions
144+
*
145+
* These macros have been in the past visible in build.h as feature macros
146+
* but in the future these will be only visible in an internal header.
147+
* Applications should not rely on or check for these macros.
148+
*/
149+
%{for module_internal_defines}
150+
#define BOTAN_HAS_%{i}
151+
%{endfor}
152+
142153
/**
143154
* @}
144155
*/

src/lib/block/aes/aes_armv8/info.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<defines>
1+
<internal_defines>
22
AES_ARMV8 -> 20170903
3-
</defines>
3+
</internal_defines>
44

55
<module_info>
66
name -> "AES ARMv8"

src/lib/block/aes/aes_ni/info.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<defines>
1+
<internal_defines>
22
AES_NI -> 20131128
3-
</defines>
3+
</internal_defines>
44

55
<module_info>
66
name -> "AES-NI"

src/lib/block/aes/aes_power8/info.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<defines>
1+
<internal_defines>
22
AES_POWER8 -> 20180223
3-
</defines>
3+
</internal_defines>
44

55
<module_info>
66
name -> "AES Power8"

src/lib/block/aes/aes_vaes/info.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<defines>
1+
<internal_defines>
22
AES_VAES -> 20240803
3-
</defines>
3+
</internal_defines>
44

55
<module_info>
66
name -> "AES-VAES"

src/lib/block/aes/aes_vperm/info.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<defines>
1+
<internal_defines>
22
AES_VPERM -> 20190901
3-
</defines>
3+
</internal_defines>
44

55
<module_info>
66
name -> "AES Vector Permutation"

src/lib/block/camellia/camellia_gfni/info.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<defines>
1+
<internal_defines>
22
CAMELLIA_GFNI -> 20250502
3-
</defines>
3+
</internal_defines>
44

55
<module_info>
66
name -> "Camellia using GFNI"

src/lib/block/idea/idea_sse2/info.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<defines>
1+
<internal_defines>
22
IDEA_SSE2 -> 20131128
3-
</defines>
3+
</internal_defines>
44

55
<module_info>
66
name -> "IDEA SSE2"

src/lib/block/noekeon/noekeon_simd/info.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<defines>
1+
<internal_defines>
22
NOEKEON_SIMD -> 20160903
3-
</defines>
3+
</internal_defines>
44

55
<module_info>
66
name -> "Noekeon SIMD"

0 commit comments

Comments
 (0)