Как собрать CuneiForm по старый Линукс

Если у вас не собирается CuneiForm под Линукс с ошибкой

Kern/rstr/librstr.so.1.1.0: undefined reference to `htobe32'

То значит у вас очень старый glibc. Чтобы исправить ситуацию нужно в файл cuneiform_src/Kern/rstr/src/perc.c, в начало, добавить следующий код:

#include <endian.h>

uint32_t htobe32(uint32_t x) {
    union { uint32_t u32; uint8_t v[4]; } ret;
    ret.v[0] = (uint8_t)(x >> 24);
    ret.v[1] = (uint8_t)(x >> 16);
    ret.v[2] = (uint8_t)(x >> 8);
    ret.v[3] = (uint8_t) x;
    return ret.u32;
}

#define swapbytes(a) do { (a) = htobe32(a); } while (0)

Тогда всё соберётся. У меня собралось под ЦентОС 5.2.

Поделиться
Отправить
2013  
Популярное