Solved LDD problem building multimedia/gstreamer1-libav

Hello,


I got this problem building this one port multimedia/gstreamer1-libav

Code:
ld: error: can't create dynamic relocation R_386_32 against symbol: ff_pw_8 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
>>> defined in /ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4/gst-libs/ext/.libs/libavcodec.a(constants.o)
>>> referenced by libavcodec/x86/h264_intrapred_10bit.asm
>>>               h264_intrapred_10bit.o:(.text+0xE9D) in archive /ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4/gst-libs/ext/.libs/libavcodec.a

ld: error: can't create dynamic relocation R_386_32 against symbol: ff_pw_1 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
>>> defined in /ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4/gst-libs/ext/.libs/libavcodec.a(constants.o)
>>> referenced by libavcodec/x86/h264_intrapred_10bit.asm
>>>               h264_intrapred_10bit.o:(.text+0xF95) in archive /ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4/gst-libs/ext/.libs/libavcodec.a

ld: error: can't create dynamic relocation R_386_32 against symbol: ff_pw_8 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
>>> defined in /ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4/gst-libs/ext/.libs/libavcodec.a(constants.o)
>>> referenced by libavcodec/x86/h264_intrapred_10bit.asm
>>>               h264_intrapred_10bit.o:(.text+0xFAE) in archive /ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4/gst-libs/ext/.libs/libavcodec.a

ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[5]: *** [Makefile:577: libgstlibav.la] Error 1
gmake[5]: uscita dalla directory "/ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4/ext/libav"
gmake[4]: *** [Makefile:469: all-recursive] Error 1
gmake[4]: uscita dalla directory "/ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4/ext"
gmake[3]: *** [Makefile:546: all-recursive] Error 1
gmake[3]: uscita dalla directory "/ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4"
gmake[2]: *** [Makefile:477: all] Error 2
gmake[2]: uscita dalla directory "/ports/multimedia/gstreamer1-libav/work/gst-libav-1.14.4"
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[1]: stopped in /ports/multimedia/gstreamer1-libav
*** Error code 1

Some reading on the net show it is a problem with linker and compiler, exactly with the ldd funcion.

I read about many bugs tickets opened for this problem, and it seems now fixed.

I also read there is a workaround to apply on ports that still dowsn't build.

Then I didn't understand what to do.

Some help?
 
The package is available, which means the build clusters were able to build it. This usually means build errors are a local issue on your side. Which also begs the question, why aren't you using the packages?
 
Seeing you have another error on another port, there's probably something wrong with the way you are building.

What's in /etc/make.conf? Have you read /usr/ports/UPDATING?
 
Code:
DEFAULT_VERSIONS+=  perl5=5.30
DEFAULT_VERSIONS+=ssl=openssl
WITH_NEW_MESA=yes
WITH_GALLIUM=yes
WITHOUT_GAMES=yes
DEFAULT_VERSIONS+=linux=f10.
DEFAULT_VERSIONS+=bdb=5
WITH_PKGNG=yes

And yes, I always read UPDATING.

PS: I doubt it is my fault. This syctem has 1.200 ports installed, it is coherent and just has two failing ports, one is this post and the other is the other post.
 
first you can try
Code:
MAKE_JOBS_UNSAFE=yes
on the command line
---
if that doesn`t succeed :
set
Code:
 LDFLAGS_i386=   -Wl,-z,notext
in Makefile and try again .
----
next try could be :

Code:
MAKE_JOBS_UNSAFE=      yes
AND
Code:
 LDFLAGS_i386=   -Wl,-z,notext
in Makefile.
-
if that doesn't succeed finishing the build write a bug report .
and
if it succeeds finishing the build , write a patch into the bug-report and send greetings to the port-maintainer from me ;-)

--- edit:---
alternatively to
Code:
LDFLAGS_i386=   -Wl,-z,notext
you can try :
Code:
    LDFLAGS+=-Wl,-z,notext
 
if that doesn`t succeed :
set
Code:
 LDFLAGS_i386=   -Wl,-z,notext
in Makefile and try again
First of all, thank you "ucomp" for your informative reply! This is the kind of answer I do expect when I post in a high technically forum like I think the FreeBSD one is. It makes no sense here reply like "it could be a problem in your building system" when the poster is a well know forum member, long term FreeBSD uiser, posting precise and clear extracts from the failing building system and pointing hisself to the solution of the problem, admitting he is not skilled enough to proper solve it by hisself. Better to ignore the post if you don't know what to techmically reply.

Your informative reply not only solved the problem (so my building system wasn't broke), but helped me to learn stuff. The quoted sentence added to the original Makefile was enough to perfectly build this port.

Should I try to write and submit a very simple patch for this failing port in your opinion now?

Another question: I never really understand what exactly MAKE_JOBS_UNSAFE=yes do: it never helped me in ages with a failing port. Pretty useless?

PS: "ucomp" can you maybe take a look the other post I link here? It seems to me it is not to hard to solve, I just not figure out how, it should be a problem with sendbox or something.

https://forums.freebsd.org/threads/...lang-spidermonkey24-in-configure-stage.73021/
 
You misunderstood SirDice. He just checked your system environment as a first step to be sure there are no misconfigurations in userland.
When that did not help, he always calls developers drunk at 4 o'clock in the night and asks for help - for you and other users..
😂
Regards , Sir

Should I try to write and submit a very simple patch for this failing port in your opinion now?
well, since in this case the bugfix is a one-liner it should be enough to include it in the bug-report without explicitly creating a patch/diff .
the maintainer can then test it and update the ports tree if the bugfix doesn't cause other problems in the build or functionality of the port.
... I never really understand what exactly MAKE_JOBS_UNSAFE=yes do...
#4 , ... we have already clarified that :)

at first glance the python-pip setup script- error & the perl- errors have to be debugged by hand, so there's no quick answer to this without personally testing it.
 
Back
Top