If OPJ_STATIC is defined, load-jpx.c linkage with libopenjp2.so is broken ("relocation R_X86_64_PC32 against symbol ... can not be used when making a shared object") Index: source/fitz/load-jpx.c --- source/fitz/load-jpx.c.orig +++ source/fitz/load-jpx.c @@ -163,6 +163,9 @@ void opj_free(void *ptr) static void * opj_aligned_malloc_n(size_t alignment, size_t size) { +#ifdef __OpenBSD__ + return opj_malloc(size); +#else uint8_t *ptr; size_t off; @@ -176,6 +179,7 @@ static void * opj_aligned_malloc_n(size_t alignment, s off = alignment-(((int)(intptr_t)ptr) & (alignment - 1)); ptr[off-1] = (uint8_t)off; return ptr + off; +#endif } void * opj_aligned_malloc(size_t size) @@ -190,6 +194,9 @@ void * opj_aligned_32_malloc(size_t size) void opj_aligned_free(void* ptr_) { +#ifdef __OpenBSD__ + opj_free(ptr_); +#else uint8_t *ptr = (uint8_t *)ptr_; uint8_t off; if (ptr == NULL) @@ -197,6 +204,7 @@ void opj_aligned_free(void* ptr_) off = ptr[-1]; opj_free((void *)(((unsigned char *)ptr) - off)); +#endif } #if 0