perl compilation openssl undefined-reference

Cómo se genera el archivo de ensamblaje a partir del script de Perl en OpenSSL



compilation undefined-reference (0)

En el código de código abierto de OpenSSL (versión 1.1.0e) vi que parte de la definición de la función es generada por los archivos perl presentes dentro de las carpetas. En el archivo build.info presente en cada una de las carpetas dentro de la criptografía, han escrito algunas líneas para generar los .s del correspondiente .pl.

p.ej, :

para generar aes_p8_set_encrypt_key en crypto/aes/build.info :

GENERATE[aesp8-ppc.s]=asm/aesp8-ppc.pl $(PERLASM_SCHEME)

para generar OPENSSL_madd300_probe en crypto/build.info :

GENERATE[ppccpuid.s]=ppccpuid.pl $(PERLASM_SCHEME)

Y también en el Makefile principal (archivo MAKE generado), hay algunas líneas como a continuación:

crypto/aes/aes-x86_64.o: crypto/aes/aes-x86_64.s $(CC) -I. -Icrypto/include -Iinclude $(CFLAGS) $(LIB_CFLAGS) -MMD -MF crypto/aes/aes-x86_64.d.tmp -MT $@ -c -o $@ crypto/aes/aes-x86_64.s @touch crypto/aes/aes-x86_64.d.tmp @if cmp crypto/aes/aes-x86_64.d.tmp crypto/aes/aes-x86_64.d > /dev/null 2> /dev/null; then / rm -f crypto/aes/aes-x86_64.d.tmp; / else / mv crypto/aes/aes-x86_64.d.tmp crypto/aes/aes-x86_64.d; / fi

Seguido con:

crypto/aes/aes-x86_64.s: crypto/aes/asm/aes-x86_64.pl CC="$(CC)" $(PERL) crypto/aes/asm/aes-x86_64.pl $(PERLASM_SCHEME) $@

¿Alguien puede explicar cómo se genera el .s desde los archivos .pl? Necesito agregarlos en mi Makefile dentro de mi proyecto, para resolver el error de undefined reference viene para las funciones cuya definición es generada por el archivo .pl.