Opened 8 years ago
Closed 6 years ago
#5909 closed defect (wontfix)
media-video/ffmpeg-3.1.5 can't link properly with openjpeg
Reported by: | PPed72 | Owned by: | |
---|---|---|---|
Priority: | important | Component: | build system |
Version: | 3.1.7 | Keywords: | libopenjpeg regression |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
Trying to build ffmpeg-3.1.5 on Gentoo with USE=jpeg2k I get errors at link time.
How to reproduce:
# emerge -1 =ffmpeg-3.1.5
[...]
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/media-video/ffmpeg-3.1.5/temp/ccgz0epr.ltrans21.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'opj_create_decompress' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: /var/tmp/portage/media-video/ffmpeg-3.1.5/temp/ccgz0epr.ltrans21.ltrans.o: requires dynamic R_X86_64_PC32 reloc against 'opj_set_default_encoder_parameters' which may overflow at runtime; recompile with -fPIC
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_create_decompress' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_set_error_handler' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_set_warning_handler' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_set_info_handler' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_setup_decoder' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_default_create' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_set_read_function' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_set_skip_function' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_set_seek_function' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_set_user_data' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_set_user_data_length' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_read_header' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_create_decompress' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_image_destroy' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_destroy' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_destroy_codec' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_decode' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_image_create' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_destroy' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_destroy_codec' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_image_destroy' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_create_compress' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_set_error_handler' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_set_warning_handler' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_set_info_handler' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_setup_encoder' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_default_create' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_set_write_function' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_set_skip_function' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_set_seek_function' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_stream_set_user_data' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_start_compress' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_encode' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_end_compress' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_set_default_encoder_parameters' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_version' is not defined locally
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol 'opj_set_default_decoder_parameters' is not defined locally
collect2: error: ld returned 1 exit status
See also: https://bugs.gentoo.org/show_bug.cgi?id=598054#c2
where another Gentoo user has a patch for the configure checks.
Change History (5)
follow-up: 2 comment:1 by , 8 years ago
Keywords: | libopenjpeg added |
---|
comment:2 by , 8 years ago
Replying to cehoyos:
Please test current FFmpeg git head.
Same error.
Or is this is a regression in unpatched FFmpeg 3.1.5 compared to older unpatched FFmpeg releases?
No. As you can see in Gentoo Bug, Gentoo carried a patch for 3.1.4 to fix linking with openjpeg-2.1 which is slightly different from what you implemented for 3.1.5, and that patch does not suffer from this problem.
follow-up: 4 comment:3 by , 8 years ago
Component: | undetermined → build system |
---|---|
Keywords: | regression added |
Priority: | normal → important |
Should never have been backported imo, 3.1 didn't support (some) libopenjpeg 2.1, so what?
comment:4 by , 8 years ago
comment:5 by , 6 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Version: | unspecified → 3.1.7 |
Version 3.1 is eol.
Please test current FFmpeg git head.
Or is this is a regression in unpatched FFmpeg 3.1.5 compared to older unpatched FFmpeg releases?