Emscripten: wasm-ld: error: dist/lib/libavformat.a: archive has no index; run ranlib to add one

Created on 25 Oct 2019  Â·  15Comments  Â·  Source: emscripten-core/emscripten

Hi,
I'm getting these errors while compiling ffmpeg with emcc

wasm-ld: error: dist/lib/libavformat.a: archive has no index; run ranlib to add one
wasm-ld: error: dist/lib/libavcodec.a: archive has no index; run ranlib to add one
wasm-ld: error: dist/lib/libavutil.a: archive has no index; run ranlib to add one
wasm-ld: error: dist/lib/libswscale.a: archive has no index; run ranlib to add one
shared:ERROR: '/opt/h265player/emsdk/upstream/bin/wasm-ld -o /tmp/emscripten_temp_jCijDj/libffmpeg.wasm --allow-undefined --lto-O0 /tmp/emscripten_temp_jCijDj/decoder_0.o dist/lib/libavformat.a dist/lib/libavcodec.a dist/lib/libavutil.a -L/opt/h265player/emsdk/upstream/emscripten/system/local/lib dist/lib/libswscale.a -L/opt/h265player/emsdk/upstream/emscripten/system/lib -L/root/.emscripten_cache/wasm-obj /root/.emscripten_cache/wasm-obj/libc.a /root/.emscripten_cache/wasm-obj/libcompiler_rt.a /root/.emscripten_cache/wasm-obj/libc-wasm.a /root/.emscripten_cache/wasm-obj/libdlmalloc.a /root/.emscripten_cache/wasm-obj/libpthread_stub.a /root/.emscripten_cache/wasm-obj/libc_rt_wasm.a --import-memory --import-table -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --export __wasm_call_ctors --export __data_end --export initDecoder --export uninitDecoder --export openDecoder --export closeDecoder --export sendData --export decodeOnePacket --export seekTo --export main --export malloc --export free --export setThrew --export __errno_location --export _get_tzname --export _get_daylight --export _get_timezone --export emscripten_builtin_memalign --export memalign --export emscripten_builtin_free --export _get_environ -z stack-size=5242880 --initial-memory=67108864 --no-entry --max-memory=67108864 --global-base=1024' failed (1)
Finished Build

(I see this error referenced in #9329 but i already set [--cc="emcc" --ar="emar"].)

The below is the build script

1) build_decoder.sh

echo "Beginning Build:"
rm -r dist
mkdir -p dist
cd ../ffmpeg
make clean
emconfigure ./configure --cc="emcc" --cxx="em++" --ar="emar" --prefix=$(pwd)/../WasmVideoPlayer/dist --enable-cross-compile --target-os=none \
        --arch=x86_32 --cpu=generic --enable-gpl --enable-version3 --disable-avdevice --disable-swresample --disable-postproc --disable-avfilter \
        --disable-programs --disable-logging --disable-everything --enable-avformat --enable-decoder=hevc --enable-decoder=h264 --enable-decoder=aac \
        --disable-ffplay --disable-ffprobe --disable-ffserver --disable-asm --disable-doc --disable-devices --disable-network --disable-hwaccels \
        --disable-parsers --disable-bsfs --disable-debug --enable-protocol=file --enable-demuxer=mov --disable-indevs --disable-outdevs
make
make install
cd ../WasmVideoPlayer
./build_decoder_wasm.sh

2)build_decoder_wasm.sh

rm -rf libffmpeg.wasm libffmpeg.js
export TOTAL_MEMORY=67108864
export EXPORTED_FUNCTIONS="[ \
    '_initDecoder', \
    '_uninitDecoder', \
    '_openDecoder', \
    '_closeDecoder', \
    '_sendData', \
    '_decodeOnePacket', \
    '_seekTo', \
    '_main'
]"

echo "Running Emscripten..."
emcc decoder.c dist/lib/libavformat.a dist/lib/libavcodec.a dist/lib/libavutil.a dist/lib/libswscale.a \
    -O3 \
    -I "dist/include" \
    -s WASM=1 \
    -s TOTAL_MEMORY=${TOTAL_MEMORY} \
    -s EXPORTED_FUNCTIONS="${EXPORTED_FUNCTIONS}" \
    -s EXTRA_EXPORTED_RUNTIME_METHODS="['addFunction']" \
    -s RESERVED_FUNCTION_POINTERS=14 \
    -s FORCE_FILESYSTEM=1 \
    -v \
    -o libffmpeg.js

echo "Finished Build"
LLVM wasm backend

Most helpful comment

you can add --ranlib="emranlib" to build success

All 15 comments

I would look at the commands used to build the libraries. According the wasm-ld they don't have indexes. How is dist/lib/libavcodec.a being built? Can you post the command?

I had a similar error with a library that used the 'strip' command in it's build process to remove debugging symbols from the .a artifact. On Linux this seemed to get confused with the new backend and damaged the files; replacing strip with a no-op worked around it. Might be something to check for.

Interesting. Presumably this is because the native strip doesn't know anything about wasm object format. I'm surprised it clobbered the existing index though. Another solution there is to replace strip will llvm-strip which does know about those symbols.

I'm curious what version version this was on, and which backend - if this is a regression in the new backend that would be worrying.

I would imagine the same thing would happen with fastcomp, since strip also won't understand bitcode files, but perhaps fastcomp linking doesn't require a index in the way that wasm-ld does? If thats the case then we have become stricter yes. I'll will check. If if that is the case I'm not sure that really counts a regression but we should document it for sure.

Here's a gist with a small library build that triggers the different behavior between fastcomp (where it builds) and upstream (where it gives you the 'no index' error):

https://gist.github.com/brion/ef605cb6b71a81c763c59ed15efd9a78

I definitely recommend checking the ffmpeg build process for it running strip or other such modifications on the binaries, especially if it's being compiled in release mode that's a common thing to do. It may be easy to override the executable, or you may have to hack up the build or play tricks with the PATH. ;)

I would look at the commands used to build the libraries. According the wasm-ld they don't have indexes. How is dist/lib/libavcodec.a being built? Can you post the command?

very sorry, i'm later :(
I use this command to build ffmpeg:

cd ../ffmpeg
make clean
emconfigure ./configure --cc="emcc" --cxx="em++" --ar="emar" --prefix=$(pwd)/../WasmVideoPlayer/dist --enable-cross-compile --target-os=none \
        --arch=x86_32 --cpu=generic --enable-gpl --enable-version3 --disable-avdevice --disable-swresample --disable-postproc --disable-avfilter \
        --disable-programs --disable-logging --disable-everything --enable-avformat --enable-decoder=hevc --enable-decoder=h264 --enable-decoder=aac \
        --disable-ffplay --disable-ffprobe --disable-ffserver --disable-asm --disable-doc --disable-devices --disable-network --disable-hwaccels \
        --disable-parsers --disable-bsfs --disable-debug --enable-protocol=file --enable-demuxer=mov --disable-indevs --disable-outdevs
make
make install

Compiled to generate the following files:

xxx@xxxxx:/opt/h265player/WasmVideoPlayer/dist/lib# ls | sed "s:^:`pwd`/: "
/opt/h265player/WasmVideoPlayer/dist/lib/libavcodec.a
/opt/h265player/WasmVideoPlayer/dist/lib/libavformat.a
/opt/h265player/WasmVideoPlayer/dist/lib/libavutil.a
/opt/h265player/WasmVideoPlayer/dist/lib/libswscale.a
/opt/h265player/WasmVideoPlayer/dist/lib/pkgconfig

No error at this step, but when i build my project...(Below is my project directory)

xx@xxxxxx:/opt/h265player/WasmVideoPlayer# ls | sed "s:^:`pwd`/: "
/opt/h265player/WasmVideoPlayer/build_decoder.sh
/opt/h265player/WasmVideoPlayer/build_decoder_wasm.sh
/opt/h265player/WasmVideoPlayer/common.js
/opt/h265player/WasmVideoPlayer/decoder.c
/opt/h265player/WasmVideoPlayer/decoder.js
/opt/h265player/WasmVideoPlayer/dist
/opt/h265player/WasmVideoPlayer/downloader.js
/opt/h265player/WasmVideoPlayer/img
/opt/h265player/WasmVideoPlayer/index.html
/opt/h265player/WasmVideoPlayer/LICENSE
/opt/h265player/WasmVideoPlayer/pcm-player.js
/opt/h265player/WasmVideoPlayer/player.js
/opt/h265player/WasmVideoPlayer/README.md
/opt/h265player/WasmVideoPlayer/styles
/opt/h265player/WasmVideoPlayer/video
/opt/h265player/WasmVideoPlayer/webgl.js

the build commond is this:

emcc decoder.c dist/lib/libavformat.a dist/lib/libavcodec.a dist/lib/libavutil.a dist/lib/libswscale.a \
    -O3 \
    -I "dist/include" \
    -s WASM=1 \
    -s TOTAL_MEMORY=${TOTAL_MEMORY} \
    -s EXPORTED_FUNCTIONS="${EXPORTED_FUNCTIONS}" \
    -s EXTRA_EXPORTED_RUNTIME_METHODS="['addFunction']" \
    -s RESERVED_FUNCTION_POINTERS=14 \
    -s FORCE_FILESYSTEM=1 \
    -v \
    -o libffmpeg.js

I got the wasm-ld: error: dist/lib/libavformat.a: archive has no index; run ranlib to add one

Can you remove the libavformat.a library and the rebuilt it in order to see exactly how it is being build?
e.g.

rm path/to/libavcodec.a
make path/to/libavcodec.a

@sbc100

Looks like this may be a common problem given the simple reproducer @brion provided. Perhaps the error wasm-ld: error: ./liba.a: archive has no index; run ranlib to add one could say a little more, like (avoid using the system "strip" command as it may remove the wasm index)?

Alternatively, could wasm-ld create the index on demand perhaps?

I don't think it makes sense to build such magic into wasm-ld, but we can build more magic into emscripten if we like.

How about this:

for each_input_library:
   if not has_index:
      if STRICT:
          error_with_useful_message()
     else:
          try_to_generate_index()

?

@sbc100 that sounds good!

Can you remove the libavformat.a library and the rebuilt it in order to see exactly how it is being build?
e.g.

rm path/to/libavcodec.a
make path/to/libavcodec.a

Of course,when i rebuild it, the compilation process is as follows:(sorry,the info is too long:()

xx@xxxxx:/opt/h265player/WasmVideoPlayer# ./build_decoder.sh 
Beginning Build:
nm: /tmp/ffconf.6WeFH8wk.o: File format not recognized
emscripten sdl2-config called with /opt/h265player/emsdk/upstream/emscripten/system/bin/sdl2-config --cflags
emscripten sdl2-config called with /opt/h265player/emsdk/upstream/emscripten/system/bin/sdl2-config --libs
install prefix            /opt/h265player/ffmpeg/../WasmVideoPlayer/dist
source path               .
C compiler                emcc
C library                 
host C compiler           gcc
host C library            glibc
ARCH                      c (generic)
big-endian                no
runtime cpu detection     yes
debug symbols             no
strip symbols             yes
optimize for size         no
optimizations             yes
static                    yes
shared                    no
postprocessing support    no
network support           no
threading support         pthreads
safe bitstream reader     yes
texi2html enabled         no
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          yes
makeinfo supports HTML    yes

External libraries:
iconv            sdl              sdl2             xlib

External libraries providing hardware acceleration:

Libraries:
avcodec          avformat         avutil           swscale

Programs:

Enabled decoders:
aac          h264             hevc

Enabled encoders:

Enabled hwaccels:

Enabled parsers:

Enabled demuxers:
mov

Enabled muxers:

Enabled protocols:
file

Enabled filters:

Enabled bsfs:

Enabled indevs:

Enabled outdevs:

License: GPL version 3 or later
Creating configuration files ...
libavutil/avconfig.h is unchanged
libavcodec/bsf_list.c is unchanged
libavformat/protocol_list.c is unchanged
CC  libavformat/allformats.o
CC  libavformat/avio.o
libavformat/avio.c:59:137: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
    {"rw_timeout", "Timeout for IO operations (in microseconds)", offsetof(URLContext, rw_timeout), AV_OPT_TYPE_INT64, { .i64 = 0 }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_DECODING_PARAM },
    ~                                                                                                                                   ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
1 warning generated.
CC  libavformat/aviobuf.o
CC  libavformat/cutils.o
CC  libavformat/dump.o
libavformat/dump.c:233:55: warning: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Wimplicit-int-float-conversion]
        av_log(ctx, AV_LOG_INFO, "%f", (float) peak / UINT32_MAX);
                                                    ~ ^~~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:50:21: note: expanded from macro 'UINT32_MAX'
#define UINT32_MAX (0xffffffffu)
                    ^~~~~~~~~~~
libavformat/dump.c:462:29: warning: 'codec' is deprecated [-Wdeprecated-declarations]
    avctx->properties = st->codec->properties;
                            ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavformat/dump.c:463:29: warning: 'codec' is deprecated [-Wdeprecated-declarations]
    avctx->codec      = st->codec->codec;
                            ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavformat/dump.c:464:29: warning: 'codec' is deprecated [-Wdeprecated-declarations]
    avctx->qmin       = st->codec->qmin;
                            ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavformat/dump.c:465:29: warning: 'codec' is deprecated [-Wdeprecated-declarations]
    avctx->qmax       = st->codec->qmax;
                            ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavformat/dump.c:466:31: warning: 'codec' is deprecated [-Wdeprecated-declarations]
    avctx->coded_width  = st->codec->coded_width;
                              ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavformat/dump.c:467:31: warning: 'codec' is deprecated [-Wdeprecated-declarations]
    avctx->coded_height = st->codec->coded_height;
                              ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavformat/dump.c:502:23: warning: 'codec' is deprecated [-Wdeprecated-declarations]
        int tbc = st->codec->time_base.den && st->codec->time_base.num;
                      ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavformat/dump.c:502:51: warning: 'codec' is deprecated [-Wdeprecated-declarations]
        int tbc = st->codec->time_base.den && st->codec->time_base.num;
                                                  ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavformat/dump.c:514:38: warning: 'codec' is deprecated [-Wdeprecated-declarations]
            print_fps(1 / av_q2d(st->codec->time_base), "tbc");
                                     ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
10 warnings generated.
CC  libavformat/file.o
CC  libavformat/format.o
CC  libavformat/id3v1.o
CC  libavformat/id3v2.o
CC  libavformat/isom.o
CC  libavformat/metadata.o
CC  libavformat/mov.o
CC  libavformat/mov_chan.o
CC  libavformat/mux.o
CC  libavformat/options.o
In file included from libavformat/options.c:33:
libavformat/options_table.h:39:96: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"probesize", "set probing size", OFFSET(probesize), AV_OPT_TYPE_INT64, {.i64 = 5000000 }, 32, INT64_MAX, D},
~                                                                                              ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
In file included from libavformat/options.c:33:
libavformat/options_table.h:61:151: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"analyzeduration", "specify how many microseconds are analyzed to probe the input", OFFSET(max_analyze_duration), AV_OPT_TYPE_INT64, {.i64 = 0 }, 0, INT64_MAX, D},
~                                                                                                                                                     ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
In file included from libavformat/options.c:33:
libavformat/options_table.h:68:156: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"start_time_realtime", "wall-clock time when stream begins (PTS==0)", OFFSET(start_time_realtime), AV_OPT_TYPE_INT64, {.i64 = AV_NOPTS_VALUE}, INT64_MIN, INT64_MAX, E},
~                                                                                                                                                          ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
In file included from libavformat/options.c:33:
libavformat/options_table.h:86:159: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775806 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"skip_initial_bytes", "set number of bytes to skip before reading header and frames", OFFSET(skip_initial_bytes), AV_OPT_TYPE_INT64, {.i64 = 0}, 0, INT64_MAX-1, D},
~                                                                                                                                                    ~~~~~~~~~^~
libavformat/options_table.h:90:113: warning: implicit conversion from 'long long' to 'double' changes value from -9223372036854775807 to -9223372036854775808 [-Wimplicit-int-float-conversion]
{"output_ts_offset", "set output timestamp offset", OFFSET(output_ts_offset), AV_OPT_TYPE_DURATION, {.i64 = 0}, -INT64_MAX, INT64_MAX, E},
~                                                                                                               ^~~~~~~~~~
libavformat/options_table.h:90:125: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"output_ts_offset", "set output timestamp offset", OFFSET(output_ts_offset), AV_OPT_TYPE_DURATION, {.i64 = 0}, -INT64_MAX, INT64_MAX, E},
~                                                                                                                           ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
In file included from libavformat/options.c:33:
libavformat/options_table.h:91:146: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"max_interleave_delta", "maximum buffering duration for interleaving", OFFSET(max_interleave_delta), AV_OPT_TYPE_INT64, { .i64 = 10000000 }, 0, INT64_MAX, E },
~                                                                                                                                                ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
7 warnings generated.
CC  libavformat/os_support.o
CC  libavformat/protocols.o
CC  libavformat/qtpalette.o
CC  libavformat/replaygain.o
CC  libavformat/riff.o
CC  libavformat/riffdec.o
CC  libavformat/sdp.o
CC  libavformat/url.o
CC  libavformat/utils.o
libavformat/utils.c:77:42: warning: adding 'unsigned long' to a string does not append to the string [-Wstring-plus-int]
    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
libavformat/utils.c:77:42: note: use array indexing to silence this warning
    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
                                         ^
           &                             [                       ]
libavformat/utils.c:2126:9: warning: variable 'pos_min' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
    if (st->index_entries) {
        ^~~~~~~~~~~~~~~~~
libavformat/utils.c:2159:53: note: uninitialized use occurs here
    pos = ff_gen_search(s, stream_index, target_ts, pos_min, pos_max, pos_limit,
                                                    ^~~~~~~
libavformat/utils.c:2126:5: note: remove the 'if' if its condition is always true
    if (st->index_entries) {
    ^~~~~~~~~~~~~~~~~~~~~~~
libavformat/utils.c:2110:5: note: variable 'pos_min' is declared here
    int64_t av_uninit(pos_min), av_uninit(pos_max), pos, pos_limit;
    ^
libavformat/utils.c:2148:13: warning: variable 'pos_max' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
        if (index >= 0) {
            ^~~~~~~~~~
libavformat/utils.c:2159:62: note: uninitialized use occurs here
    pos = ff_gen_search(s, stream_index, target_ts, pos_min, pos_max, pos_limit,
                                                             ^~~~~~~
libavformat/utils.c:2148:9: note: remove the 'if' if its condition is always true
        if (index >= 0) {
        ^~~~~~~~~~~~~~~~
libavformat/utils.c:2126:9: warning: variable 'pos_max' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
    if (st->index_entries) {
        ^~~~~~~~~~~~~~~~~
libavformat/utils.c:2159:62: note: uninitialized use occurs here
    pos = ff_gen_search(s, stream_index, target_ts, pos_min, pos_max, pos_limit,
                                                             ^~~~~~~
libavformat/utils.c:2126:5: note: remove the 'if' if its condition is always true
    if (st->index_entries) {
    ^~~~~~~~~~~~~~~~~~~~~~~
libavformat/utils.c:2110:5: note: variable 'pos_max' is declared here
    int64_t av_uninit(pos_min), av_uninit(pos_max), pos, pos_limit;
    ^
libavformat/utils.c:2642:40: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
        if (bitrate >= 0 && bitrate <= INT64_MAX)
                                    ~~ ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
libavformat/utils.c:5401:42: warning: 'codec' is deprecated [-Wdeprecated-declarations]
    const AVCodecContext *dec_ctx = ist->codec;
                                         ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavformat/utils.c:5402:42: warning: 'codec' is deprecated [-Wdeprecated-declarations]
    AVCodecContext       *enc_ctx = ost->codec;
                                         ^
libavformat/avformat.h:892:5: note: 'codec' has been explicitly marked deprecated here
    attribute_deprecated
    ^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
7 warnings generated.
AR  libavformat/libavformat.a
CC  libavcodec/aacadtsdec.o
CC  libavcodec/aacdec.o
CC  libavcodec/aacps_float.o
CC  libavcodec/aacpsdsp_float.o
CC  libavcodec/aacsbr.o
CC  libavcodec/aactab.o
CC  libavcodec/ac3tab.o
CC  libavcodec/allcodecs.o
CC  libavcodec/audioconvert.o
CC  libavcodec/avdct.o
CC  libavcodec/avfft.o
CC  libavcodec/avpacket.o
CC  libavcodec/avpicture.o
CC  libavcodec/bitstream.o
CC  libavcodec/bitstream_filter.o
libavcodec/bitstream_filter.c:39:12: warning: returning 'const AVBitStreamFilter *' (aka 'const struct AVBitStreamFilter *') from a function with result type 'AVBitStreamFilter *' (aka 'struct AVBitStreamFilter *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    return av_bsf_next(&opaque);
           ^~~~~~~~~~~~~~~~~~~~
libavcodec/bitstream_filter.c:132:14: warning: assigning to 'uint8_t *' (aka 'unsigned char *') from 'const uint8_t *' (aka 'const unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    pkt.data = buf;
             ^ ~~~
2 warnings generated.
CC  libavcodec/bitstream_filters.o
CC  libavcodec/bsf.o
CC  libavcodec/bswapdsp.o
CC  libavcodec/cabac.o
CC  libavcodec/cbrt_data.o
CC  libavcodec/codec_desc.o
CC  libavcodec/d3d11va.o
CC  libavcodec/dirac.o
CC  libavcodec/dv_profile.o
CC  libavcodec/error_resilience.o
CC  libavcodec/faandct.o
CC  libavcodec/faanidct.o
CC  libavcodec/fdctdsp.o
CC  libavcodec/fft_fixed.o
CC  libavcodec/fft_fixed_32.o
CC  libavcodec/fft_float.o
CC  libavcodec/fft_init_table.o
CC  libavcodec/golomb.o
CC  libavcodec/h2645_parse.o
CC  libavcodec/h264_cabac.o
CC  libavcodec/h264_cavlc.o
CC  libavcodec/h264_direct.o
CC  libavcodec/h264_loopfilter.o
CC  libavcodec/h264_mb.o
CC  libavcodec/h264_parse.o
CC  libavcodec/h264_picture.o
CC  libavcodec/h264_ps.o
CC  libavcodec/h264_refs.o
CC  libavcodec/h264_sei.o
CC  libavcodec/h264_slice.o
CC  libavcodec/h264chroma.o
CC  libavcodec/h264data.o
CC  libavcodec/h264dec.o
CC  libavcodec/h264dsp.o
CC  libavcodec/h264idct.o
CC  libavcodec/h264pred.o
CC  libavcodec/h264qpel.o
CC  libavcodec/hevc_cabac.o
CC  libavcodec/hevc_data.o
CC  libavcodec/hevc_filter.o
CC  libavcodec/hevc_mvs.o
CC  libavcodec/hevc_ps.o
CC  libavcodec/hevc_refs.o
CC  libavcodec/hevc_sei.o
CC  libavcodec/hevcdec.o
CC  libavcodec/hevcdsp.o
CC  libavcodec/hevcpred.o
CC  libavcodec/idctdsp.o
CC  libavcodec/imgconvert.o
CC  libavcodec/jfdctfst.o
CC  libavcodec/jfdctint.o
CC  libavcodec/jni.o
CC  libavcodec/jrevdct.o
CC  libavcodec/kbdwin.o
CC  libavcodec/mathtables.o
CC  libavcodec/mdct15.o
CC  libavcodec/mdct_fixed.o
CC  libavcodec/mdct_fixed_32.o
CC  libavcodec/mdct_float.o
CC  libavcodec/me_cmp.o
CC  libavcodec/mediacodec.o
CC  libavcodec/mjpegenc_huffman.o
CC  libavcodec/mpeg12framerate.o
CC  libavcodec/mpeg4audio.o
CC  libavcodec/mpegaudiodata.o
CC  libavcodec/options.o
In file included from libavcodec/options.c:37:
libavcodec/options_table.h:45:110: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"b", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT64, {.i64 = AV_CODEC_DEFAULT_BITRATE }, 0, INT64_MAX, A|V|E},
~                                                                                                            ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
In file included from libavcodec/options.c:37:
libavcodec/options_table.h:447:154: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"timecode_frame_start", "GOP timecode frame start number, in non-drop-frame format", OFFSET(timecode_frame_start), AV_OPT_TYPE_INT64, {.i64 = -1 }, -1, INT64_MAX, V|E},
~                                                                                                                                                        ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
In file included from libavcodec/options.c:37:
libavcodec/options_table.h:450:92: warning: implicit conversion from 'unsigned long long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-int-float-conversion]
{"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_UINT64, {.i64 = DEFAULT }, 0, UINT64_MAX, A|E|D, "channel_layout"},
~                                                                                          ^~~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:51:21: note: expanded from macro 'UINT64_MAX'
#define UINT64_MAX (0xffffffffffffffffu)
                    ^~~~~~~~~~~~~~~~~~~
In file included from libavcodec/options.c:37:
libavcodec/options_table.h:451:108: warning: implicit conversion from 'unsigned long long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-int-float-conversion]
{"request_channel_layout", NULL, OFFSET(request_channel_layout), AV_OPT_TYPE_UINT64, {.i64 = DEFAULT }, 0, UINT64_MAX, A|D, "request_channel_layout"},
~                                                                                                          ^~~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:51:21: note: expanded from macro 'UINT64_MAX'
#define UINT64_MAX (0xffffffffffffffffu)
                    ^~~~~~~~~~~~~~~~~~~
libavcodec/options.c:303:119: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"best_effort_timestamp", "", FOFFSET(best_effort_timestamp), AV_OPT_TYPE_INT64, {.i64 = AV_NOPTS_VALUE }, INT64_MIN, INT64_MAX, 0},
~                                                                                                                     ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
libavcodec/options.c:304:79: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"pkt_pos", "", FOFFSET(pkt_pos), AV_OPT_TYPE_INT64, {.i64 = -1 }, INT64_MIN, INT64_MAX, 0},
~                                                                             ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
libavcodec/options.c:305:81: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"pkt_size", "", FOFFSET(pkt_size), AV_OPT_TYPE_INT64, {.i64 = -1 }, INT64_MIN, INT64_MAX, 0},
~                                                                               ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
libavcodec/options.c:310:84: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
{"channel_layout", "", FOFFSET(channel_layout), AV_OPT_TYPE_INT64, {.i64 = 0 }, 0, INT64_MAX, 0},
~                                                                                  ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
8 warnings generated.
CC  libavcodec/parser.o
CC  libavcodec/pixblockdsp.o
CC  libavcodec/profiles.o
CC  libavcodec/pthread.o
CC  libavcodec/pthread_frame.o
CC  libavcodec/pthread_slice.o
CC  libavcodec/qsv_api.o
CC  libavcodec/raw.o
CC  libavcodec/resample.o
CC  libavcodec/resample2.o
CC  libavcodec/sbrdsp.o
CC  libavcodec/simple_idct.o
CC  libavcodec/sinewin.o
CC  libavcodec/sinewin_fixed.o
CC  libavcodec/startcode.o
CC  libavcodec/utils.o
libavcodec/utils.c:2825:15: warning: 'avcodec_decode_video2' is deprecated [-Wdeprecated-declarations]
        ret = avcodec_decode_video2(avctx, avctx->internal->buffer_frame,
              ^
libavcodec/avcodec.h:4900:1: note: 'avcodec_decode_video2' has been explicitly marked deprecated here
attribute_deprecated
^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavcodec/utils.c:2830:15: warning: 'avcodec_decode_audio4' is deprecated [-Wdeprecated-declarations]
        ret = avcodec_decode_audio4(avctx, avctx->internal->buffer_frame,
              ^
libavcodec/avcodec.h:4851:1: note: 'avcodec_decode_audio4' has been explicitly marked deprecated here
attribute_deprecated
^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavcodec/utils.c:2982:15: warning: 'avcodec_encode_video2' is deprecated [-Wdeprecated-declarations]
        ret = avcodec_encode_video2(avctx, avctx->internal->buffer_pkt,
              ^
libavcodec/avcodec.h:5415:1: note: 'avcodec_encode_video2' has been explicitly marked deprecated here
attribute_deprecated
^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavcodec/utils.c:2985:15: warning: 'avcodec_encode_audio2' is deprecated [-Wdeprecated-declarations]
        ret = avcodec_encode_audio2(avctx, avctx->internal->buffer_pkt,
              ^
libavcodec/avcodec.h:5376:1: note: 'avcodec_encode_audio2' has been explicitly marked deprecated here
attribute_deprecated
^
./libavutil/attributes.h:94:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
libavcodec/utils.c:3473:42: warning: adding 'unsigned long' to a string does not append to the string [-Wstring-plus-int]
    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
libavcodec/utils.c:3473:42: note: use array indexing to silence this warning
    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
                                         ^
           &                             [                       ]
5 warnings generated.
CC  libavcodec/videodsp.o
CC  libavcodec/vorbis_parser.o
CC  libavcodec/xiph.o
AR  libavcodec/libavcodec.a
CC  libswscale/alphablend.o
CC  libswscale/gamma.o
CC  libswscale/hscale.o
CC  libswscale/hscale_fast_bilinear.o
CC  libswscale/input.o
CC  libswscale/options.o
CC  libswscale/output.o
CC  libswscale/rgb2rgb.o
CC  libswscale/slice.o
CC  libswscale/swscale.o
CC  libswscale/swscale_unscaled.o
CC  libswscale/utils.o
libswscale/utils.c:89:42: warning: adding 'unsigned long' to a string does not append to the string [-Wstring-plus-int]
    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
libswscale/utils.c:89:42: note: use array indexing to silence this warning
    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
                                         ^
           &                             [                       ]
libswscale/utils.c:335:13: warning: while loop has empty body [-Wempty-body]
    emms_c(); // FIXME should not be required but IS (even for non-MMX versions)
            ^
libswscale/utils.c:335:13: note: put the semicolon on a separate line to silence this warning
2 warnings generated.
CC  libswscale/vscale.o
CC  libswscale/yuv2rgb.o
AR  libswscale/libswscale.a
CC  libavutil/adler32.o
CC  libavutil/aes.o
CC  libavutil/aes_ctr.o
CC  libavutil/audio_fifo.o
CC  libavutil/avstring.o
CC  libavutil/base64.o
CC  libavutil/blowfish.o
CC  libavutil/bprint.o
CC  libavutil/buffer.o
CC  libavutil/camellia.o
CC  libavutil/cast5.o
CC  libavutil/channel_layout.o
CC  libavutil/color_utils.o
CC  libavutil/cpu.o
libavutil/cpu.c:127:76: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
        { "flags"   , NULL, 0, AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT64_MIN, INT64_MAX, .unit = "flags" },
        ~                                                                  ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
libavutil/cpu.c:188:76: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-int-float-conversion]
        { "flags"   , NULL, 0, AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT64_MIN, INT64_MAX, .unit = "flags" },
        ~                                                                  ^~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:46:21: note: expanded from macro 'INT64_MAX'
#define INT64_MAX  (0x7fffffffffffffff)
                    ^~~~~~~~~~~~~~~~~~
2 warnings generated.
CC  libavutil/crc.o
CC  libavutil/des.o
CC  libavutil/dict.o
CC  libavutil/display.o
CC  libavutil/downmix_info.o
CC  libavutil/error.o
CC  libavutil/eval.o
libavutil/eval.c:221:41: warning: implicit conversion from 'unsigned long long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-int-float-conversion]
            return e->value * (r * (1.0/UINT64_MAX));
                                       ~^~~~~~~~~~
/opt/h265player/emsdk/upstream/emscripten/system/include/libc/stdint.h:51:21: note: expanded from macro 'UINT64_MAX'
#define UINT64_MAX (0xffffffffffffffffu)
                    ^~~~~~~~~~~~~~~~~~~
1 warning generated.
CC  libavutil/fifo.o
CC  libavutil/file.o
CC  libavutil/file_open.o
CC  libavutil/fixed_dsp.o
CC  libavutil/float_dsp.o
CC  libavutil/frame.o
CC  libavutil/hash.o
CC  libavutil/hmac.o
CC  libavutil/hwcontext.o
CC  libavutil/imgutils.o
CC  libavutil/integer.o
CC  libavutil/intmath.o
CC  libavutil/lfg.o
CC  libavutil/lls.o
CC  libavutil/log.o
CC  libavutil/log2_tab.o
CC  libavutil/mastering_display_metadata.o
CC  libavutil/mathematics.o
CC  libavutil/md5.o
CC  libavutil/mem.o
CC  libavutil/murmur3.o
CC  libavutil/opt.o
CC  libavutil/parseutils.o
CC  libavutil/pixdesc.o
CC  libavutil/pixelutils.o
CC  libavutil/random_seed.o
CC  libavutil/rational.o
CC  libavutil/rc4.o
CC  libavutil/reverse.o
CC  libavutil/ripemd.o
CC  libavutil/samplefmt.o
CC  libavutil/sha.o
CC  libavutil/sha512.o
CC  libavutil/spherical.o
CC  libavutil/stereo3d.o
CC  libavutil/tea.o
CC  libavutil/threadmessage.o
CC  libavutil/time.o
CC  libavutil/timecode.o
CC  libavutil/tree.o
CC  libavutil/twofish.o
CC  libavutil/utils.o
libavutil/utils.c:76:42: warning: adding 'unsigned long' to a string does not append to the string [-Wstring-plus-int]
    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
libavutil/utils.c:76:42: note: use array indexing to silence this warning
    return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1;
                                         ^
           &                             [                       ]
1 warning generated.
CC  libavutil/xga_font_data.o
CC  libavutil/xtea.o
AR  libavutil/libavutil.a
INSTALL libavformat/libavformat.a
INSTALL libavcodec/libavcodec.a
INSTALL libswscale/libswscale.a
INSTALL libavutil/libavutil.a
INSTALL libavformat/avformat.h
INSTALL libavformat/avio.h
INSTALL libavformat/version.h
INSTALL libavformat/libavformat.pc
INSTALL libavcodec/avcodec.h
INSTALL libavcodec/avdct.h
INSTALL libavcodec/avfft.h
INSTALL libavcodec/d3d11va.h
INSTALL libavcodec/dirac.h
INSTALL libavcodec/dv_profile.h
INSTALL libavcodec/dxva2.h
INSTALL libavcodec/jni.h
INSTALL libavcodec/mediacodec.h
INSTALL libavcodec/qsv.h
INSTALL libavcodec/vaapi.h
INSTALL libavcodec/vda.h
INSTALL libavcodec/vdpau.h
INSTALL libavcodec/version.h
INSTALL libavcodec/videotoolbox.h
INSTALL libavcodec/vorbis_parser.h
INSTALL libavcodec/xvmc.h
INSTALL libavcodec/libavcodec.pc
INSTALL libswscale/swscale.h
INSTALL libswscale/version.h
INSTALL libswscale/libswscale.pc
INSTALL libavutil/adler32.h
INSTALL libavutil/aes.h
INSTALL libavutil/aes_ctr.h
INSTALL libavutil/attributes.h
INSTALL libavutil/audio_fifo.h
INSTALL libavutil/avassert.h
INSTALL libavutil/avstring.h
INSTALL libavutil/avutil.h
INSTALL libavutil/base64.h
INSTALL libavutil/blowfish.h
INSTALL libavutil/bprint.h
INSTALL libavutil/bswap.h
INSTALL libavutil/buffer.h
INSTALL libavutil/cast5.h
INSTALL libavutil/camellia.h
INSTALL libavutil/channel_layout.h
INSTALL libavutil/common.h
INSTALL libavutil/cpu.h
INSTALL libavutil/crc.h
INSTALL libavutil/des.h
INSTALL libavutil/dict.h
INSTALL libavutil/display.h
INSTALL libavutil/downmix_info.h
INSTALL libavutil/error.h
INSTALL libavutil/eval.h
INSTALL libavutil/fifo.h
INSTALL libavutil/file.h
INSTALL libavutil/frame.h
INSTALL libavutil/hash.h
INSTALL libavutil/hmac.h
INSTALL libavutil/hwcontext.h
INSTALL libavutil/hwcontext_cuda.h
INSTALL libavutil/hwcontext_dxva2.h
INSTALL libavutil/hwcontext_qsv.h
INSTALL libavutil/hwcontext_vaapi.h
INSTALL libavutil/hwcontext_vdpau.h
INSTALL libavutil/imgutils.h
INSTALL libavutil/intfloat.h
INSTALL libavutil/intreadwrite.h
INSTALL libavutil/lfg.h
INSTALL libavutil/log.h
INSTALL libavutil/macros.h
INSTALL libavutil/mathematics.h
INSTALL libavutil/mastering_display_metadata.h
INSTALL libavutil/md5.h
INSTALL libavutil/mem.h
INSTALL libavutil/motion_vector.h
INSTALL libavutil/murmur3.h
INSTALL libavutil/opt.h
INSTALL libavutil/parseutils.h
INSTALL libavutil/pixdesc.h
INSTALL libavutil/pixelutils.h
INSTALL libavutil/pixfmt.h
INSTALL libavutil/random_seed.h
INSTALL libavutil/rc4.h
INSTALL libavutil/rational.h
INSTALL libavutil/replaygain.h
INSTALL libavutil/ripemd.h
INSTALL libavutil/samplefmt.h
INSTALL libavutil/sha.h
INSTALL libavutil/sha512.h
INSTALL libavutil/spherical.h
INSTALL libavutil/stereo3d.h
INSTALL libavutil/threadmessage.h
INSTALL libavutil/time.h
INSTALL libavutil/timecode.h
INSTALL libavutil/timestamp.h
INSTALL libavutil/tree.h
INSTALL libavutil/twofish.h
INSTALL libavutil/version.h
INSTALL libavutil/xtea.h
INSTALL libavutil/tea.h
INSTALL libavutil/avconfig.h
INSTALL libavutil/ffversion.h
INSTALL libavutil/libavutil.pc

Some warning messages during the compilation process.
Is there any problem here?

I built this locally and did some debugging:

$ make libavcodec/libavcodec.a V=1
rm -f libavcodec/libavcodec.a
emar rcD libavcodec/libavcodec.a libavcodec/aacdec.o libavcodec/aacps_float.o libavcodec/aacpsdsp_float.o libavcodec/aacsbr.o libavcodec/aactab.o libavcodec/ac3_parser.o libavcodec/ac3tab.o libavcodec/adts_header.o libavcodec/adts_parser.o libavcodec/allcodecs.o libavcodec/avdct.o libavcodec/avfft.o libavcodec/avpacket.o libavcodec/avpicture.o libavcodec/bitstream.o libavcodec/bitstream_filter.o libavcodec/bitstream_filters.o libavcodec/bsf.o libavcodec/bswapdsp.o libavcodec/cabac.o libavcodec/cbrt_data.o libavcodec/codec_desc.o libavcodec/d3d11va.o libavcodec/decode.o libavcodec/dirac.o libavcodec/dv_profile.o libavcodec/encode.o libavcodec/error_resilience.o libavcodec/faandct.o libavcodec/faanidct.o libavcodec/fdctdsp.o libavcodec/fft_fixed.o libavcodec/fft_fixed_32.o libavcodec/fft_float.o libavcodec/fft_init_table.o libavcodec/golomb.o libavcodec/h2645_parse.o libavcodec/h264_cabac.o libavcodec/h264_cavlc.o libavcodec/h264_direct.o libavcodec/h264_loopfilter.o libavcodec/h264_mb.o libavcodec/h264_parse.o libavcodec/h264_picture.o libavcodec/h264_ps.o libavcodec/h264_refs.o libavcodec/h264_sei.o libavcodec/h264_slice.o libavcodec/h264chroma.o libavcodec/h264data.o libavcodec/h264dec.o libavcodec/h264dsp.o libavcodec/h264idct.o libavcodec/h264pred.o libavcodec/h264qpel.o libavcodec/hevc_cabac.o libavcodec/hevc_data.o libavcodec/hevc_filter.o libavcodec/hevc_mvs.o libavcodec/hevc_parse.o libavcodec/hevc_ps.o libavcodec/hevc_refs.o libavcodec/hevc_sei.o libavcodec/hevcdec.o libavcodec/hevcdsp.o libavcodec/hevcpred.o libavcodec/idctdsp.o libavcodec/imgconvert.o libavcodec/jfdctfst.o libavcodec/jfdctint.o libavcodec/jni.o libavcodec/jrevdct.o libavcodec/kbdwin.o libavcodec/mathtables.o libavcodec/mdct15.o libavcodec/mdct_fixed.o libavcodec/mdct_fixed_32.o libavcodec/mdct_float.o libavcodec/me_cmp.o libavcodec/mediacodec.o libavcodec/mjpegenc_huffman.o libavcodec/mpeg12framerate.o libavcodec/mpeg4audio.o libavcodec/mpegaudiodata.o libavcodec/null_bsf.o libavcodec/options.o libavcodec/parser.o libavcodec/parsers.o libavcodec/pixblockdsp.o libavcodec/profiles.o libavcodec/pthread.o libavcodec/pthread_frame.o libavcodec/pthread_slice.o libavcodec/qsv_api.o libavcodec/raw.o libavcodec/sbrdsp.o libavcodec/simple_idct.o libavcodec/sinewin.o libavcodec/sinewin_fixed.o libavcodec/startcode.o libavcodec/utils.o libavcodec/videodsp.o libavcodec/vorbis_parser.o libavcodec/xiph.o
ranlib -D libavcodec/libavcodec.a

So it looks like ffmpeg calls ranlib directly. If you want this to work you also need to specify --ranlib=emranlib on the configure command line.

You will also need to install 1.39.1 in order to get the fix for ranlib itself: #9714

you can add --ranlib="emranlib" to build success

I built this locally and did some debugging:

$ make libavcodec/libavcodec.a V=1
rm -f libavcodec/libavcodec.a
emar rcD libavcodec/libavcodec.a libavcodec/aacdec.o libavcodec/aacps_float.o libavcodec/aacpsdsp_float.o libavcodec/aacsbr.o libavcodec/aactab.o libavcodec/ac3_parser.o libavcodec/ac3tab.o libavcodec/adts_header.o libavcodec/adts_parser.o libavcodec/allcodecs.o libavcodec/avdct.o libavcodec/avfft.o libavcodec/avpacket.o libavcodec/avpicture.o libavcodec/bitstream.o libavcodec/bitstream_filter.o libavcodec/bitstream_filters.o libavcodec/bsf.o libavcodec/bswapdsp.o libavcodec/cabac.o libavcodec/cbrt_data.o libavcodec/codec_desc.o libavcodec/d3d11va.o libavcodec/decode.o libavcodec/dirac.o libavcodec/dv_profile.o libavcodec/encode.o libavcodec/error_resilience.o libavcodec/faandct.o libavcodec/faanidct.o libavcodec/fdctdsp.o libavcodec/fft_fixed.o libavcodec/fft_fixed_32.o libavcodec/fft_float.o libavcodec/fft_init_table.o libavcodec/golomb.o libavcodec/h2645_parse.o libavcodec/h264_cabac.o libavcodec/h264_cavlc.o libavcodec/h264_direct.o libavcodec/h264_loopfilter.o libavcodec/h264_mb.o libavcodec/h264_parse.o libavcodec/h264_picture.o libavcodec/h264_ps.o libavcodec/h264_refs.o libavcodec/h264_sei.o libavcodec/h264_slice.o libavcodec/h264chroma.o libavcodec/h264data.o libavcodec/h264dec.o libavcodec/h264dsp.o libavcodec/h264idct.o libavcodec/h264pred.o libavcodec/h264qpel.o libavcodec/hevc_cabac.o libavcodec/hevc_data.o libavcodec/hevc_filter.o libavcodec/hevc_mvs.o libavcodec/hevc_parse.o libavcodec/hevc_ps.o libavcodec/hevc_refs.o libavcodec/hevc_sei.o libavcodec/hevcdec.o libavcodec/hevcdsp.o libavcodec/hevcpred.o libavcodec/idctdsp.o libavcodec/imgconvert.o libavcodec/jfdctfst.o libavcodec/jfdctint.o libavcodec/jni.o libavcodec/jrevdct.o libavcodec/kbdwin.o libavcodec/mathtables.o libavcodec/mdct15.o libavcodec/mdct_fixed.o libavcodec/mdct_fixed_32.o libavcodec/mdct_float.o libavcodec/me_cmp.o libavcodec/mediacodec.o libavcodec/mjpegenc_huffman.o libavcodec/mpeg12framerate.o libavcodec/mpeg4audio.o libavcodec/mpegaudiodata.o libavcodec/null_bsf.o libavcodec/options.o libavcodec/parser.o libavcodec/parsers.o libavcodec/pixblockdsp.o libavcodec/profiles.o libavcodec/pthread.o libavcodec/pthread_frame.o libavcodec/pthread_slice.o libavcodec/qsv_api.o libavcodec/raw.o libavcodec/sbrdsp.o libavcodec/simple_idct.o libavcodec/sinewin.o libavcodec/sinewin_fixed.o libavcodec/startcode.o libavcodec/utils.o libavcodec/videodsp.o libavcodec/vorbis_parser.o libavcodec/xiph.o
ranlib -D libavcodec/libavcodec.a

So it looks like ffmpeg calls ranlib directly. If you want this to work you also need to specify --ranlib=emranlib on the configure command line.

You will also need to install 1.39.1 in order to get the fix for ranlib itself: #9714

Yes, after specifying this paramter [--ranlib="emranlib"], build successfully.
Thx :) I will close this issue later.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lormuc picture lormuc  Â·  4Comments

nerddan picture nerddan  Â·  4Comments

kripken picture kripken  Â·  4Comments

phraemer picture phraemer  Â·  3Comments

rpellerin picture rpellerin  Â·  3Comments