Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: z3nth10n en 21 Noviembre 2020, 20:09 PM

Título: No puedo cross-compilar usando las librerías ARM de Loquendo con GCC, se requieren los simbolos GLIBC_2.0, 2.1 y 2.3
Publicado por: z3nth10n en 21 Noviembre 2020, 20:09 PM
Buenas foro,

Pues siguiendo la tesis doctoral que hizo Javier (https://addi.ehu.es/bitstream/handle/10810/27565/TESIS_OLASO_FERNANDEZ_JAVIER%20MIKEL.pdf?sequence=1&isAllowed=y) y solo teniendo disponible el shared object (*.so) ELF 32-bit LSB shared object, ARM (obtenido al ejecutar el comando file) de los shared objects de Loquendo para Linux, en este caso, Tom Tom .

Me gustaría intentar compilar el programa que sugirió Javier, llamado text2audio, y disponible en el mismo pdf:

#include <stdio.h>
#include "../sdk/win/LTTS7/include/loqtts.h" /* Loquendo TTS include file */
#include <string.h>
#define CODING tts_LINEAR // "l" /* "l" (linear), "a" (A-law), "u" (U-law) */
#define SAMPLE_RATE 32000 /* Use 8000 for A-law or U-law coding */

int main(int argc, char *argv[])
{
    ttsHandleType hInstance; /* Instance handle */
    ttsHandleType hVoice; /* Voice handle */
    ttsResultType err; /* Error code returned by TTS APIs */

    char* p = "Jorge";
    char* fich = "sample.wav";
    char frase[5000]="";
    int i;

    fprintf (stderr,"Number: \%i\n",argc);
    if(argc > 3) {
        p = argv[1]; // Voice
        fich = argv[2]; // Path
        for(i=3;i<argc;i++)
        {
            strcat(frase,argv[i]);
            strcat(frase," ");
        }
        fprintf (stderr,"Sentence: \%s\n",frase);
        fprintf (stderr,"File : \%s\n",fich);
        } else {
            fprintf(stderr, "Exec '\%s <speaker> <file> <text> '\n", argv[0]);
            return -1;
        }
        fprintf(stderr, "Using voice \%s\n", p);

        /* Initializes the LoquendoTTS Instance */
        err = ttsNewSession(&hInstance, NULL);
        if (err != tts_OK)
        {
            fprintf(stderr, "\%s", ttsGetErrorMessage(NULL));
            return err;
        }

        /* Sets the voice parameters */
        err = ttsNewVoice(&hVoice, hInstance, p); // 6 -> 7: SAMPLE_RATE, CODING
        if (err != tts_OK)
        {
            fprintf(stderr, "\%s", ttsGetErrorMessage(hInstance));
            (void)ttsDeleteSession(hInstance);
            return err;
        }

        /* Sends samples directly to the audio board */
        //err = ttsSetAudio(hInstance, "LoqAudioFile", argv[2], CODING, 0);
        err = ttsSetAudio(hInstance, "LTTS7AudioBoard", argv[2], SAMPLE_RATE, CODING, tts_STEREO, 0);

        if (err != tts_OK)
        {
            fprintf(stderr, "\%s", ttsGetErrorMessage(hInstance));
            (void)ttsDeleteSession(hInstance);
            return err;
        }

        /* Converts text to speech */
        err = ttsRead(
            hInstance, /* Instance handle */
            frase, /* Input */
            ttsFALSE, // async
            ttsFALSE, // fromFile
            0);

        if (err != tts_OK)
        {
            fprintf(stderr, "\%s", ttsGetErrorMessage(hInstance));
            (void)ttsDeleteSession(hInstance);
            return err;
        }

        /* Closes the Loquendo TTS instance; the voice will be automatically closed */
        (void)ttsDeleteSession(hInstance);
        return 0;
}


(Esta versión es un poco diferente de la original porque la adapté para la versión LTTS 7, en lugar de la v6)

La idea es tener un endpoint en PHP que pueda usarse para generar archivos mp3 / wav para un texto (usando TTS internamente).

Los métodos que probé ya:


Por esta razón, mi último intento es emular las bibliotecas ARM instalando qemu-user-static y usando /usr/bin/qemu-arm-static (como MinusFour me recomendó, aunque también me dijo que lo más seguro que no funcionase) (ya que creo que este será el método menos costoso en lo que a uso de recursos se refiere). Pero para esto, tendré que realizar cross compile del programa text2audio para que sea compatible con la arquitectura ARM, si no, gcc mostrará el siguiente error: error adding symbols: file in wrong

Como me veo obligado a compilar el código de text2audio para la arquitectura arm, he decidido instalar la versión gcc para esta arquitectura siguiendo este tutorial: https://www.acmesystems.it/arm9_toolchain

Este fue el comando que usé para compilar mi programa c:

Código (bash) [Seleccionar]
$ arm-linux-gnueabihf-gcc -L$d/sdk/linux/LoquendoTTS/lib -I$d/sdk/win/LTTS7/include -o txt2audio $d/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so txt2audio.c

Probé las versiones arm-linux-gnueabihf-gcc y arm-linux-gnueabi-gcc sin suerte. Se produjeron los siguientes errores:

Citar/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `pow@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fwrite@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_detach@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `sprintf@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `printf@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `stderr@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strchr@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `sqrt@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `strncat@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fread@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `localtime_r@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `shmget@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `getpid@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `dlclose@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `log@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `gettimeofday@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `strspn@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `memset@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `puts@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `gethostname@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `stdout@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `getenv@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `opendir@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strstr@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_cond_init@GLIBC_2.3.2'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `semctl@GLIBC_2.2'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fseek@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `fscanf@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `shmat@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `clock_gettime@GLIBC_2.2'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `remove@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fileno@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `__ctype_b_loc@GLIBC_2.3'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_mutex_destroy@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `exp@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fputc@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fgets@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `semop@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `__strtod_internal@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `dlsym@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `time@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strrchr@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `shmdt@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `dlopen@GLIBC_2.1'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `sin@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `rand@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_cond_wait@GLIBC_2.3.2'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `readdir@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `nanosleep@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `__strtol_internal@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `log10@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `closedir@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strncmp@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_self@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `sscanf@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_cond_signal@GLIBC_2.3.2'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `ceil@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `strcspn@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strcat@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `fclose@GLIBC_2.1'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fgetc@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `memmove@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strpbrk@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strcpy@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strncpy@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_mutex_lock@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fprintf@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `free@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `srand@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `mmap@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fnmatch@GLIBC_2.2.3'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_join@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_create@GLIBC_2.1'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `realloc@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strlen@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `memcpy@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `stdin@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_mutex_unlock@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `strcmp@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_cond_destroy@GLIBC_2.3.2'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `dlerror@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `__ctype_toupper_loc@GLIBC_2.3'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_cond_timedwait@GLIBC_2.3.2'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `modf@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `malloc@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `memcmp@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `pthread_mutex_init@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `cos@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `semget@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `ftell@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `fputs@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `fopen@GLIBC_2.1'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLTTS7Util.so: undefined reference to `munmap@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `putchar@GLIBC_2.0'
/usr/lib/gcc-cross/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/bin/ld: /xxx/tts/sdk/linux/LoquendoTTS/bin/libLoqTTS7.so: undefined reference to `fflush@GLIBC_2.0'

Revisé la siguiente respuesta (https://stackoverflow.com/questions/29557683/undefined-reference-to-symbol-dlsymglibc-2-4/29563242) (en StackOverflow) que sugería usar el comando man seguido del nombre del símbolo, por ejemplo, man pow sugiere usar la bandera -lm (siempre después del argumento -o) ...

Lo probé sin suerte. Creo que el problema está en la versión GLIBC que requiere el objeto compartido.

Entonces, ¿cómo puedo usar una versión diferente en el proceso de compilación cruzada para ARM y GLIBC 2.0?