I am trying to migrate my cross-compilation setup from
version 2.28.9 to version 3.6.2.
I use a Makefile based approach for compilation.
Everything seems to work fine up to the point where the
compilation process reaches the test_suite data generation
Gen
suites/test_suite_psa_crypto_generate_key.generated.data
suites/test_suite_psa_crypto_low_hash.generated.data
suites/test_suite_psa_crypto_not_supported.generated.data
suites/test_suite_psa_crypto_op_fail.generated.data
suites/test_suite_psa_crypto_storage_format.current.data
suites/test_suite_psa_crypto_storage_format.v0.data
At that point it seems that the python based tools attempts
to execute a temp executable (generated for my
cross-compilation target ?) which fails.
Traceback (most recent call last):
File "../framework/scripts/generate_psa_tests.py", line 849,
in <module>
test_data_generation.main(sys.argv[1:], __doc__,
PSATestGenerator)
File
"/home/dev/test/mbed-TLS_3.6.2/framework/scripts/mbedtls_framework/test_data_generation.py",
line 224, in main
generator.generate_target(target)
File "../framework/scripts/generate_psa_tests.py", line 845,
in generate_target
super().generate_target(name,
self.info)
File
"/home/dev/test/mbed-TLS_3.6.2/framework/scripts/mbedtls_framework/test_data_generation.py",
line 177, in generate_target
self.write_test_data_file(name, test_cases)
File
"/home/dev/test/mbed-TLS_3.6.2/framework/scripts/mbedtls_framework/test_data_generation.py",
line 164, in write_test_data_file
test_case.write_data_file(filename, test_cases)
File
"/home/dev/test/mbed-TLS_3.6.2/framework/scripts/mbedtls_framework/test_case.py",
line 88, in write_data_file
for tc in test_cases:
File "../framework/scripts/generate_psa_tests.py", line 694,
in all_test_cases
if key.location_value() != 0:
File
"/home/dev/test/mbed-TLS_3.6.2/framework/scripts/mbedtls_framework/psa_storage.py",
line 186, in location_value
return self.lifetime.value() >> 8
File
"/home/dev/test/mbed-TLS_3.6.2/framework/scripts/mbedtls_framework/psa_storage.py",
line 89, in value
self.update_cache()
File
"/home/dev/test/mbed-TLS_3.6.2/framework/scripts/mbedtls_framework/psa_storage.py",
line 67, in update_cache
include_path=includes) #type: List[str]
File
"/home/dev/test/mbed-TLS_3.6.2/framework/scripts/mbedtls_framework/c_build_helper.py",
line 158, in get_c_expression_values
output = subprocess.check_output([exe_name])
File "/usr/lib/python3.7/subprocess.py", line 395, in
check_output
**kwargs).stdout
File "/usr/lib/python3.7/subprocess.py", line 472, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.7/subprocess.py", line 775, in
__init__
restore_signals, start_new_session)
File "/usr/lib/python3.7/subprocess.py", line 1522, in
_execute_child
raise child_exception_type(errno_num, err_msg,
err_filename)
OSError: [Errno 8] Exec format error: '/tmp/tmp--m95sjmdw'
make[2]: *** [
Makefile:127: generated_psa_test_data] Error 1
make[2] : on quitte le répertoire
« /home/dev/test/mbed-TLS_3.6.2/tests »
make[1]: *** [
Makefile:35: tests] Error 2
make[1] : on quitte le répertoire
« /home/dev/test/mbed-TLS_3.6.2 »
make: *** [
test.make:152: all] Error 2
Looking at the format of the generated tmp executable, it
seems it is generated for my cross-compilation target, it
therefore cannot be executed in my compilation environment.
I would like to be able to generate the test and test data
in order to be able to execute them on my compilation target,
which is what I used to do with the previously integrated
version of the library.
Is there something I am missing in my compilation? am I
missing a specific setup variable in my Makefile?
Thanks for your feedback.