Discussion:
constant_time_test.c fails to compile on SuSE Enterprise Server 10 32-bit
Andy Schmidt
2014-10-23 21:55:23 UTC
Permalink
Hi all,

The test constant_time_test.c new to 1.0.1j fails to compile on 32-bit
SuSE 10 with gcc 4.1.0.

The failure is:
constant_time_test.o: In function `main':
/depot/Releases/OpenSSL/1.0.1/source/FIPS/openssl-core/test/constant_time_test.c:267:
undefined reference to `constant_time_lt'
/depot/Releases/OpenSSL/1.0.1/source/FIPS/openssl-core/test/constant_time_test.c:269:
undefined reference to `constant_time_lt_8'
/depot/Releases/OpenSSL/1.0.1/source/FIPS/openssl-core/test/constant_time_test.c:271:
undefined reference to `constant_time_lt'
/depot/Releases/OpenSSL/1.0.1/source/FIPS/openssl-core/test/constant_time_test.c:273:
undefined reference to `constant_time_lt_8'
/depot/Releases/OpenSSL/1.0.1/source/FIPS/openssl-core/test/constant_time_test.c:275:
undefined reference to `constant_time_ge'
/depot/Releases/OpenSSL/1.0.1/source/FIPS/openssl-core/test/constant_time_test.c:277:
undefined reference to `constant_time_ge_8'
/depot/Releases/OpenSSL/1.0.1/source/FIPS/openssl-core/test/constant_time_test.c:279:
undefined reference to `constant_time_ge'
/depot/Releases/OpenSSL/1.0.1/source/FIPS/openssl-core/test/constant_time_test.c:281:
undefined reference to `constant_time_ge_8'

I can verify that this is related to the inline macro defined in
e_os.h. If I immediately after line 50 of constant_time_locl.h,
#include "e_os.h"'
I add the line
#undef inline
the full build of OpenSSL 1.0.1j on this platform succeeds, both debug
and release.

It's a little strange that the inline functions references above fail,
while the references to constant_time_eq and constant_time_eq_8 appear
to be OK.

The full testlog output of make 'report' is attached.

Thanks,
Andy Schmidt

Loading...