shinchiro/mpv-winbuild-cmake

duplicate symbol between libdovi.a and librav1e.a

Closed this issue · 3 comments

After quietvoid/dovi_tool@96825b0 , ffmpeg build has following error:

ld.lld: error: duplicate symbol: rust_eh_personality
>>> defined at library\std\src\sys\personality/gcc.rs:241
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src\sys\personality/gcc.rs:241
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: __rdl_alloc
>>> defined at library\std\src/alloc.rs:389
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src/alloc.rs:389
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: __rdl_dealloc
>>> defined at library\std\src/alloc.rs:399
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src/alloc.rs:399
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: __rdl_realloc
>>> defined at library\std\src/alloc.rs:406
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src/alloc.rs:406
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: __rdl_alloc_zeroed
>>> defined at library\std\src/alloc.rs:421
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src/alloc.rs:421
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: __rust_drop_panic
>>> defined at library\std\src/panicking.rs:59
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src/panicking.rs:60
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: __rust_foreign_exception
>>> defined at library\std\src/panicking.rs:67
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src/panicking.rs:68
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: rust_begin_unwind
>>> defined at library\std\src/panicking.rs:600
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src/panicking.rs:593
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: rust_panic
>>> defined at library\std\src/panicking.rs:846
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src/panicking.rs:830
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: __rg_oom
>>> defined at library\std\src/alloc.rs:364
>>>            libdovi.a(std-1683fd82638343be.std.7703807f8562b358-cgu.0.rcgu.o)
>>> defined at library\std\src/alloc.rs:364
>>>            librav1e.a(std-a1f74822451877d1.std.ef05f9c8c2f9b577-cgu.0.rcgu.o)

ld.lld: error: duplicate symbol: __rdl_oom
>>> defined at library\alloc\src/alloc.rs:411
>>>            librav1e.a(alloc-2552a9f38657c70e.alloc.1e8f1d4daedf16ef-cgu.0.rcgu.o)
>>> defined at library\alloc\src/alloc.rs:410
>>>            libdovi.a(alloc-1515046c1e15d59c.alloc.d140d86951df49d8-cgu.0.rcgu.o)

@Andarwinux Can you reopen your svtav1 pr?

I would prefer removing av1 encoder

Probably due to the rav1e update, the problem no longer occurs.