Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#3218 closed defect (invalid)

ffmpeg does not compile with the latest git of x264

Reported by: mmstick Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: troll
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

When compiling ffmpeg with 10-bit x264, make runs into a compile error with

make: * [libavcodec/x86/h264_qpel_10bit.o] Error 139

Change History (37)

comment:1 Changed 6 years ago by cehoyos

  • Priority changed from critical to normal
  • Resolution set to needs_more_info
  • Status changed from new to closed

If you want to reopen this ticket, please confirm that you ran make distclean, provide your configure line, then run make V=1 twice and provide the complete, uncut console output of the second run.

comment:2 follow-up: Changed 6 years ago by mmstick

I compile ffmpeg/x264/fdk-aac by use of a script I made earlier this year. I use it quite often on a variety of different machines but today it is not working. http://pastebin.com/TP6Rczur

gcc -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample  -o ffmpeg_g cmdutils.o ffmpeg_opt.o ffmpeg_filter.o ffmpeg.o  ffmpeg_vdpau.o -lavdevice -lavfilter -lavformat -lavcodec -lpostproc -lswresample -lswscale -lavutil -ldl -lXv -lX11 -lXext -lvdpau -lva -lX11 -ljack -lasound -lSDL -lx264 -lvpx -lvpx -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lopus -lmp3lame -lfaac -lass -lm -pthread -lbz2 -lz  
gcc -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample  -o ffplay_g cmdutils.o ffplay.o   -lavdevice -lavfilter -lavformat -lavcodec -lpostproc -lswresample -lswscale -lavutil -ldl -lXv -lX11 -lXext -lvdpau -lva -lX11 -ljack -lasound -lSDL -lx264 -lvpx -lvpx -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lopus -lmp3lame -lfaac -lass -lm -pthread -lbz2 -lz  -lSDL
gcc -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample  -o ffprobe_g cmdutils.o ffprobe.o   -lavdevice -lavfilter -lavformat -lavcodec -lpostproc -lswresample -lswscale -lavutil -ldl -lXv -lX11 -lXext -lvdpau -lva -lX11 -ljack -lasound -lSDL -lx264 -lvpx -lvpx -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lopus -lmp3lame -lfaac -lass -lm -pthread -lbz2 -lz  
gcc -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample  -o ffserver_g cmdutils.o ffserver.o   -lavdevice -lavfilter -lavformat -lavcodec -lpostproc -lswresample -lswscale -lavutil -ldl -lXv -lX11 -lXext -lvdpau -lva -lX11 -ljack -lasound -lSDL -lx264 -lvpx -lvpx -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lopus -lmp3lame -lfaac -lass -lm -pthread -lbz2 -lz  
libavcodec/libavcodec.so: undefined reference to `x264_encoder_open_140'
collect2: error: ld returned 1 exit status
libavcodec/libavcodec.so: undefined reference to `x264_encoder_open_140'
collect2: error: ld returned 1 exit status
make: *** [ffplay_g] Error 1
make: *** [ffserver_g] Error 1
libavcodec/libavcodec.so: undefined reference to `x264_encoder_open_140'
collect2: error: ld returned 1 exit status
make: *** [ffprobe_g] Error 1
libavcodec/libavcodec.so: undefined reference to `x264_encoder_open_140'
collect2: error: ld returned 1 exit status
make: *** [ffmpeg_g] Error 1
make: Target `all' not remade because of errors.
Last edited 6 years ago by cehoyos (previous) (diff)

comment:3 in reply to: ↑ 2 Changed 6 years ago by cehoyos

  • Resolution changed from needs_more_info to invalid

Replying to mmstick:

libavcodec/libavcodec.so: undefined reference to `x264_encoder_open_140'

You have conflicting versions of libx264 installed, fix that.

comment:4 follow-up: Changed 6 years ago by mmstick

No, I don't. See my script, it has the latest git of x264 installed.

comment:5 in reply to: ↑ 4 ; follow-up: Changed 6 years ago by cehoyos

Replying to mmstick:

No, I don't.

Please understand that this is a bug tracker (for bugs within the FFmpeg project, not scripts using or compiling FFmpeg), not a support forum. Please see http://ffmpeg.org/contact.html

comment:6 in reply to: ↑ 5 Changed 6 years ago by mmstick

Replying to cehoyos:

Replying to mmstick:

No, I don't.

Please understand that this is a bug tracker (for bugs within the FFmpeg project, not scripts using or compiling FFmpeg), not a support forum. Please see http://ffmpeg.org/contact.html

Please understand that this is not an issue with my script. I already told you that I've been using and maintaining this script over the last year without any issues as I recompile almost weekly. This week, it does not compile.

comment:7 Changed 6 years ago by mmstick

  • Resolution invalid deleted
  • Status changed from closed to reopened

comment:8 Changed 6 years ago by cehoyos

  • Resolution set to invalid
  • Status changed from reopened to closed

comment:9 follow-up: Changed 6 years ago by mmstick

You're not being very intelligent about this matter.

comment:10 Changed 6 years ago by mmstick

  • Resolution invalid deleted
  • Status changed from closed to reopened
  • Summary changed from make: * [libavcodec/x86/h264_qpel_10bit.o] Error 139 to ffmpeg does not compile with the latest git of x264

comment:11 in reply to: ↑ 9 ; follow-up: Changed 6 years ago by ubitux

Replying to mmstick:

You're not being very intelligent about this matter.

You have a link failure, which is likely because you fail at achieving what you were asked in the very first comment. Please understand that we won't debug your script.

Now, I'd suggest you stop re-opening the issue until you are able to provide the necessary information or you'll likely get banned on a whim.

comment:12 Changed 6 years ago by ubitux

  • Resolution set to invalid
  • Status changed from reopened to closed

comment:13 in reply to: ↑ 11 ; follow-up: Changed 6 years ago by mmstick

Replying to ubitux:

Replying to mmstick:

You're not being very intelligent about this matter.

You have a link failure, which is likely because you fail at achieving what you were asked in the very first comment. Please understand that we won't debug your script.

Now, I'd suggest you stop re-opening the issue until you are able to provide the necessary information or you'll likely get banned on a whim.

I repeat, there is NOTHING wrong with my script; now stop acting like dumbasses, it's not professional at all. You haven't asked for any information at all, but have done much to ignore the issue by shoving it off claiming it is a problem with my script. If you think there is a problem with my script, then prove me wrong; it's that simple. I have the latest git of x264 installed; If you think I have the wrong version somehow, then why do I have libx264.so.140 in my lib directory? If you want to continue being dumbasses, then I'll just switch to using avconv instead.

Last edited 6 years ago by mmstick (previous) (diff)

comment:14 follow-up: Changed 6 years ago by cehoyos

Please post these questions on the user mailing list where I will support you.

comment:15 in reply to: ↑ 14 ; follow-up: Changed 6 years ago by mmstick

Replying to cehoyos:

Please post these questions on the user mailing list where I will support you.

This is not a question; read the fine print.

comment:16 in reply to: ↑ 15 ; follow-up: Changed 6 years ago by cehoyos

Replying to mmstick:

Replying to cehoyos:

Please post these questions on the user mailing list where I will support you.

This is not a question; read the fine print.

I consider the following three sentences questions:

You haven't asked for any information at all

If you think there is a problem with my script, then prove me wrong

why do I have libx264.so.140 in my lib directory?

Last edited 6 years ago by cehoyos (previous) (diff)

comment:17 in reply to: ↑ 16 ; follow-up: Changed 6 years ago by mmstick

Replying to cehoyos:

Replying to mmstick:

Replying to cehoyos:

Please post these questions on the user mailing list where I will support you.

This is not a question; read the fine print.

I consider the following three sentences questions:

You haven't asked for any information at all
If you think there is a problem with my script, then prove me wrong
why do I have libx264.so.140 in my lib directory?

I consider all of your replies to be highly snobbishly sarcastic. You only read what you want to read and nothing else. You apparently seem to think I don't know what I'm doing and that there are problems with my script, but that is not the case; I'm no fool like you. If you think there is a problem on my end then prove it -- you aren't able to.

comment:18 in reply to: ↑ 13 ; follow-up: Changed 6 years ago by saste

Replying to mmstick:
[...]

I repeat, there is NOTHING wrong with my script; now stop acting like dumbasses, it's not professional at all. You haven't asked for any information at all, but have done much to ignore the issue by shoving it off claiming it is a problem with my script.

We don't provide assistance for your script, whatever that thing is. We fix build failures related to ffmpeg. So it is your problem to provide evidence that the ffmpeg build is broken.

If you think there is a problem with my script, then prove me wrong; it's that simple.

No, you get it backwards.

We don't care about your script, that's not our problem. Note that we are not claiming that your script is either wrong or correct. You need to prove that there is a problem with the ffmpeg build. We already gave directions about that, but you're ignoring them.

I have the latest git of x264 installed; If you think I have the wrong version somehow, then why do I have libx264.so.140 in my lib directory? If you want to continue being dumbasses, then I'll just switch to using avconv instead.

Talking about professionalism, calling people names, that's clearly a good way to get someone to assist you.

comment:19 Changed 6 years ago by cehoyos

If you want me to help you please post all your questions and support requests on the ffmpeg-user mailing list. If you don't want to post there, you will have to find the problems in your script yourself.

comment:20 in reply to: ↑ 18 ; follow-up: Changed 6 years ago by mmstick

Replying to saste:

Replying to mmstick:
[...]

I repeat, there is NOTHING wrong with my script; now stop acting like dumbasses, it's not professional at all. You haven't asked for any information at all, but have done much to ignore the issue by shoving it off claiming it is a problem with my script.

We don't provide assistance for your script, whatever that thing is. We fix build failures related to ffmpeg. So it is your problem to provide evidence that the ffmpeg build is broken.

If you think there is a problem with my script, then prove me wrong; it's that simple.

No, you get it backwards.

We don't care about your script, that's not our problem. Note that we are not claiming that your script is either wrong or correct. You need to prove that there is a problem with the ffmpeg build. We already gave directions about that, but you're ignoring them.

I have the latest git of x264 installed; If you think I have the wrong version somehow, then why do I have libx264.so.140 in my lib directory? If you want to continue being dumbasses, then I'll just switch to using avconv instead.

Talking about professionalism, calling people names, that's clearly a good way to get someone to assist you.

You have not given any directions at all, and you still refuse to do so. The only thing you told me was that I have a differing x264 version when that is NOT the case. The script I showed you clearly shows that it ALWAYS downloads the latest git and compiles/installs it BEFORE it compiles and installs ffmpeg. It is NOT possible to have a differing version unless ffmpeg does not support the latest git of x264. Therefore, I have already proven that there is a problem with the ffmpeg build, but you refuse to accept it as a problem.

You have no right to talk about professionalism when you have displayed such a poor attitude. You are deserving of any insults you have been given.

Again, there are NO issues with my script or system. I run this script on 5 different machines weekly, and this week there is a build error. I have encoded over 300,000 minutes of video and audio over the last 2 years.

comment:21 in reply to: ↑ 17 Changed 6 years ago by cehoyos

Replying to mmstick:

I consider all of your replies to be highly snobbishly sarcastic.

I am not so sure:
My comment:1 was asking for missing information, remember that your original report was simply make: * [libavcodec/x86/h264_qpel_10bit.o] Error 139 which is (unrelated to your later problem but) impossible to parse. My next comment:3 contained the (short) solution for your problem, one can of course argue if "wrong symlink" or "incomplete installation" or "header / library mismatch" is the same as "conflicting versions" but it should typically help.
Of course my remaining comments were sarcastic! (Me being a snob would depend on your definition.) Claiming "my script cannot be wrong the problem must be within FFmpeg" imo asks loudly for sarcastic comments;-)

comment:22 in reply to: ↑ 20 ; follow-up: Changed 6 years ago by ubitux

Replying to mmstick:

You have not given any directions at all, and you still refuse to do so. The only thing you told me was that I have a differing x264 version when that is NOT the case. The script I showed you clearly shows that it ALWAYS downloads the latest git and compiles/installs it BEFORE it compiles and installs ffmpeg. It is NOT possible to have a differing version unless ffmpeg does not support the latest git of x264. Therefore, I have already proven that there is a problem with the ffmpeg build, but you refuse to accept it as a problem.

Final linking seems not to be unable to find the x264, that's all we can tell from the information you provide. We can't reproduce such problem here (also, your script is not portable enough and doesn't isolate the problem).

Again, there are NO issues with my script or system. I run this script on 5 different machines weekly, and this week there is a build error. I have encoded over 300,000 minutes of video and audio over the last 2 years.

Again, we didn't tell you there was a problem with your script, we just don't want to debug it. We are requesting information so we can reproduce the problem.

comment:23 in reply to: ↑ 22 Changed 6 years ago by mmstick

Replying to ubitux:

Replying to mmstick:

You have not given any directions at all, and you still refuse to do so. The only thing you told me was that I have a differing x264 version when that is NOT the case. The script I showed you clearly shows that it ALWAYS downloads the latest git and compiles/installs it BEFORE it compiles and installs ffmpeg. It is NOT possible to have a differing version unless ffmpeg does not support the latest git of x264. Therefore, I have already proven that there is a problem with the ffmpeg build, but you refuse to accept it as a problem.

Final linking seems not to be unable to find the x264, that's all we can tell from the information you provide. We can't reproduce such problem here (also, your script is not portable enough and doesn't isolate the problem).

Again, there are NO issues with my script or system. I run this script on 5 different machines weekly, and this week there is a build error. I have encoded over 300,000 minutes of video and audio over the last 2 years.

Again, we didn't tell you there was a problem with your script, we just don't want to debug it. We are requesting information so we can reproduce the problem.

libx264.so and libx264.so.140 are in the same directory as the rest of the ffmpeg libraries ( /usr/local/lib ). If it is looking in the same directory then it will find it. My script doesn't have to portable because it is Ubuntu-specific but that does not matter. There is no other information that I can provide other than what I have already provided.

comment:24 follow-up: Changed 6 years ago by compn

this is a ubuntu bug.

comment:25 in reply to: ↑ 24 ; follow-up: Changed 6 years ago by mmstick

Replying to compn:

this is a ubuntu bug.

That's not very specific

comment:26 follow-up: Changed 6 years ago by ubitux

Was your script ever really linking with the x264 in /usr/local/lib? It was likely linking to a system installed one, or maybe /usr/local/lib was in your ld configuration.

Anyway, you can try --extra-ldflags=-L/usr/local/lib.

Note for developers: we should probably depend on pkg-config for the x264 probing so the linker flags are automatically added. I don't know when x264 made available the .pc file though.

comment:27 in reply to: ↑ 26 ; follow-up: Changed 6 years ago by cehoyos

Replying to ubitux:

Note for developers: we should probably depend on pkg-config for the x264 probing so the linker flags are automatically added.

Would that still allow to link libx264 on a system without pkg-config?

comment:28 in reply to: ↑ 27 ; follow-up: Changed 6 years ago by ubitux

Replying to cehoyos:

Replying to ubitux:

Note for developers: we should probably depend on pkg-config for the x264 probing so the linker flags are automatically added.

Would that still allow to link libx264 on a system without pkg-config?

Can you name a relevant one?

comment:29 in reply to: ↑ 28 ; follow-ups: Changed 6 years ago by cehoyos

Replying to ubitux:

Replying to cehoyos:

Replying to ubitux:

Note for developers: we should probably depend on pkg-config for the x264 probing so the linker flags are automatically added.

Would that still allow to link libx264 on a system without pkg-config?

Can you name a relevant one?

(OS X?)
What I meant was: If I build a libx264 library and move it (and the header) to a place of my choice, will I still be able to build FFmpeg using that libx264? If not, this sounds like a very bad idea.

comment:30 in reply to: ↑ 29 Changed 6 years ago by Cigaes

Replying to cehoyos:

What I meant was: If I build a libx264 library and move it (and the header) to a place of my choice, will I still be able to build FFmpeg using that libx264? If not, this sounds like a very bad idea.

That is true for a lot of libraries, and not only the ones using pkg-config. The correct way of building a library is to specify its final location in its configuraiton phase.

Note that editing a .pc file to set the correct path is easy, it is done with a simple text editor. Try editing libx11.so to change the path to the compose tables.

comment:31 in reply to: ↑ 29 ; follow-up: Changed 6 years ago by ubitux

Replying to cehoyos:

Replying to ubitux:

Replying to cehoyos:

Replying to ubitux:

Note for developers: we should probably depend on pkg-config for the x264 probing so the linker flags are automatically added.

Would that still allow to link libx264 on a system without pkg-config?

Can you name a relevant one?

(OS X?)

Really?

What I meant was: If I build a libx264 library and move it (and the header) to a place of my choice, will I still be able to build FFmpeg using that libx264? If not, this sounds like a very bad idea.

I would say yes, probably with --enable-libx264 --extra-cflags=-I/weirdplace/include --extra-ldflags="-L/weirdplace/lib -lx264", and "only" --extra-ldflags=-lx264 if it's in a standard place. Though, I'm not sure how check_pkg_config() behaves when pkg-config is not available. Maybe it aborts somewhere. If so, we could probably be more tolerant on that regard (by assuming the library is present).

By the way, x264 has a .pc since v40 (and we require >= 118).

Last edited 6 years ago by ubitux (previous) (diff)

comment:32 in reply to: ↑ 25 ; follow-up: Changed 6 years ago by compn

Replying to mmstick:

Replying to compn:

this is a ubuntu bug.

That's not very specific

after i see the results of 'cd / && sudo find x264' , i will be more specific.

comment:33 in reply to: ↑ 31 Changed 6 years ago by cehoyos

Replying to ubitux:

Would that still allow to link libx264 on a system without pkg-config?

Can you name a relevant one?

(OS X?)

Really?

I try very hard not to use pkg-config so I may be wrong but configure always prints funny warnings for me when I test on OS X.

comment:34 in reply to: ↑ 32 Changed 6 years ago by mmstick

Replying to compn:

Replying to mmstick:

Replying to compn:

this is a ubuntu bug.

That's not very specific

after i see the results of 'cd / && sudo find x264' , i will be more specific.

You won't find anything like that. If you are searching for where I have x264 installed, it's /usr/local/lib. I've never installed x264 from Ubuntu repositories before; I always compile it myself because I use 10-bit. ldconfig detects libx264.so just fine.

Last edited 6 years ago by mmstick (previous) (diff)

comment:35 follow-up: Changed 6 years ago by compn

does libav work ?

comment:36 Changed 6 years ago by saste

  • Keywords troll added

comment:37 in reply to: ↑ 35 Changed 6 years ago by mmstick

Replying to compn:

does libav work ?

libav doesn't work either as it gets the same error.

Note: See TracTickets for help on using tickets.