@@ -344,7 +344,7 @@ impl CcBuilder {
344
344
fn add_all_files ( & self , lib : & Library , cc_build : & mut cc:: Build ) {
345
345
use core:: str:: FromStr ;
346
346
347
- // s2n_bignum is compiled separately due to needing extra flags
347
+ // s2n-bignum is compiled separately due to needing extra flags
348
348
let mut s2n_bignum_builder = cc_build. clone ( ) ;
349
349
s2n_bignum_builder. flag ( format ! (
350
350
"--include={}" ,
@@ -355,18 +355,41 @@ impl CcBuilder {
355
355
. display( )
356
356
) ) ;
357
357
s2n_bignum_builder. define ( "S2N_BN_HIDE_SYMBOLS" , "1" ) ;
358
+
359
+ // CPU Jitter Entropy is compiled separately due to needing specific flags
360
+ let mut jitter_entropy_builder = cc_build. clone ( ) ;
361
+ jitter_entropy_builder. flag ( format ! (
362
+ "--include={}" ,
363
+ self . manifest_dir
364
+ . join( "generated-include" )
365
+ . join( "openssl" )
366
+ . join( "boringssl_prefix_symbols.h" )
367
+ . display( )
368
+ ) ) ;
369
+ // From cmake script in /third_party/jitterentropy.
370
+ // If ever supporting CC build for Windows these flags must be
371
+ // conditioned on the target OS.
372
+ jitter_entropy_builder. flag ( "-DAWSLC -fwrapv --param ssp-buffer-size=4 -fvisibility=hidden -Wcast-align -Wmissing-field-initializers -Wshadow -Wswitch-enum -Wextra -Wall -pedantic -O0 -fwrapv -Wconversion" ) ;
373
+
358
374
for source in lib. sources {
359
375
let source_path = self . manifest_dir . join ( "aws-lc" ) . join ( source) ;
360
376
let is_s2n_bignum = std:: path:: Path :: new ( source) . starts_with ( "third_party/s2n-bignum" ) ;
377
+ let is_jitter_entropy = std:: path:: Path :: new ( source) . starts_with ( "third_party/jitterentropy" ) ;
361
378
362
379
if is_s2n_bignum {
363
380
s2n_bignum_builder. file ( source_path) ;
381
+ } else if is_jitter_entropy {
382
+ jitter_entropy_builder. file ( source_path) ;
364
383
} else {
365
384
cc_build. file ( source_path) ;
366
385
}
367
386
}
368
- let object_files = s2n_bignum_builder. compile_intermediates ( ) ;
369
- for object in object_files {
387
+ let s2n_bignum_object_files = s2n_bignum_builder. compile_intermediates ( ) ;
388
+ for object in s2n_bignum_object_files {
389
+ cc_build. object ( object) ;
390
+ }
391
+ let jitter_entropy_object_files = jitter_entropy_builder. compile_intermediates ( ) ;
392
+ for object in jitter_entropy_object_files {
370
393
cc_build. object ( object) ;
371
394
}
372
395
cc_build. file ( PathBuf :: from_str ( "rust_wrapper.c" ) . unwrap ( ) ) ;
0 commit comments