2016-09-29 15 views
0

Я получаю следующую ошибку при попытке интегрировать обновление OpenSSL с версии 1.0.2h в 1.0.2j.Ошибка: неявное объявление функции 'FIPS_crypto_set_id_callback'

o_init.c:77:5: error: implicit declaration of function 'FIPS_crypto_set_id_callback' is 
    invalid in C99 [-Werror,-Wimplicit-function-declaration] 
FIPS_crypto_set_id_callback(CRYPTO_thread_id); 
+0

Просьба показать, как вы настроили библиотеку. То есть, что такое строка конфигурации, и что такое настройка вывода. Вопрос также может быть полезен, поэтому мы даем ответ на то, с чем вы столкнулись. – jww

+0

Удалось устранить проблему, добавив в CFLAG -Wno-error = implicit-function-declaration. –

+0

Я уверен, что это не проблема. Я полагаю, вы просто переместили проблему. – jww

ответ

2

Этот метод вызова обернут «#ifndef OPENSSL_NO_DEPRECATED», который выглядит как код, который был портирован обратно из 1.1.0 ветви.

История изменений 1.1.0 подразумевает, что они меняли код, чтобы улучшить управление уровнем API OpenSSL. Вы можете попробовать добавить «без устаревших» к вашим параметрам «configure», но я сомневаюсь в этом, поскольку он выглядит как вариант конфигурации 1.1.0. В качестве альтернативы исправить источник, чтобы удалить новые 3 строки кода, так как ваша предыдущая версия не вызывала устаревший метод в любом случае.

--- a/crypto/o_init.c 
+++ b/crypto/o_init.c 
@@ -73,9 +73,6 @@ 
    done = 1; 
#ifdef OPENSSL_FIPS 
    FIPS_set_locking_callbacks(CRYPTO_lock, CRYPTO_add_lock); 
-# ifndef OPENSSL_NO_DEPRECATED 
- FIPS_crypto_set_id_callback(CRYPTO_thread_id); 
-# endif 
    FIPS_set_error_callbacks(ERR_put_error, ERR_add_error_vdata); 
    FIPS_set_malloc_callbacks(CRYPTO_malloc, CRYPTO_free); 
    RAND_init_fips(); 
+0

Я только что указал на это как причину добавления обратного вызова. [Ссылка] (https://groups.google.com/forum/#!msg/mailing.openssl.dev/rLNlxFW0AhE/wHm3oBROBQAJ). Поэтому имейте в виду, что это может зависеть от используемого модуля FIPS и что лучше добавить прототип функции вверху o_init.c, чтобы избежать проблемы в будущем (с последующими изменениями кода). –

 Смежные вопросы

  • Нет связанных вопросов^_^