pkgsrc-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
x265 Cannot write-enable text segment: Permission denied
I built multimedia/x265 on 9.0_STABLE i386, but it does not run:
/usr/pkg/lib/libx265.so.188: text relocations
/usr/pkg/lib/libx265.so.188: Cannot write-enable text segment: Permission denied
The Makefile ensures it is built with ENABLE_PIC=ON:
CMAKE_ARGS+= -DENABLE_PIC=ON
This looks to set -fPIC:
if(ENABLE_PIC)
add_definitions(-fPIC)
endif(ENABLE_PIC)
I patched CMakeASM_NASMInformation.cmake to make sure that -DPIC was added
(without this, it is only added for x64):
--- cmake/CMakeASM_NASMInformation.cmake.orig 2020-02-17 15:15:57.000000000 +0000
+++ cmake/CMakeASM_NASMInformation.cmake 2020-06-25 10:49:13.000000000 +0100
@@ -22,6 +22,9 @@
else()
set(ARGS -f win32 -DPREFIX)
endif()
+ if(ENABLE_PIC)
+ list(APPEND ASM_FLAGS -DPIC)
+ endif()
endif()
I also patched x86inc.asm as it explicitly disabled PIC for 32-bit:
--- common/x86/x86inc.asm.orig 2020-06-25 10:50:38.000000000 +0100
+++ common/x86/x86inc.asm 2020-06-25 10:51:01.000000000 +0100
@@ -97,7 +97,7 @@
; x86_32 doesn't require PIC.
; Some distros prefer shared objects to be PIC, but nothing breaks if
; the code contains a few textrels, so we'll skip that complexity.
- %undef PIC
+; %undef PIC
%endif
%ifdef PIC
default rel
But it didn't build:
/usr/obj/pkgsrc/multimedia/x265/work/x265_3.3/source/common/x86/mc-a.asm:7210: error: symbol `r7' undefined
/usr/obj/pkgsrc/multimedia/x265/work/x265_3.3/source/common/x86/mc-a.asm:7211: error: symbol `r7' undefined
/usr/obj/pkgsrc/multimedia/x265/work/x265_3.3/source/common/../common/x86/x86inc.asm:1104: ... from macro `add' defined here
I'm out of my depth now, can anyone help?
--
Stephen
Home |
Main Index |
Thread Index |
Old Index