On 25 July 2016 at 12:18, lh mouse <[email protected]> wrote:

> I have compiled ffmpeg with LDFLAGS='-static-libgcc -static-libstdc++' and
> Stud_PE says ffmpeg.exe doesn't import anything from libitm, nor does it
> import
> anything from libstdc++, libgcc, libiconv, etc.
>
> It doesn't, by default, that's why I said that, to reproduce, you include
static rubberband which does use libstdc++ with exceptions and that's what
breaks FFmpeg linking.

Also, you have to run ffmpeg.exe in the build dir, through cmd.exe or
powershell, preferably without /mingw64/bin being in PATH. These builds are
for standalone distribution, not for msys2 users.


> I also asked it on #mingw-w64 on OFTC and people said it seemed mere
> undefined references instead of linking 64-bit and 32-bit code together.
>
> [18:03:22] <lh_mouse> ktietz, are you familiar with this error?
>  
> C:/builds/ab/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.1.0\libstdc++.a(cow-stdexcept.o):(.text$_Z35_txnal_cow_string_C1_for_exceptionsPvPKcS_+0x2c):
> relocation truncated to fit: R_X86_64_PC32 against undefined symbol
> `_ITM_RU1'
> [18:13:57] <adrien> mooooooo
> [18:15:34] <jon_y> lh_mouse: add -litm?
>
I did try this, didn't work.


> [18:16:07] <jon_y> or maybe its a implicit declaration
> [18:16:16] <lh_mouse> jon_y, this is a question that was sent to msys2 ML
> yesterday.
> [18:16:44] <jon_y> yeah, doublecheck the source
> [18:16:46] <lh_mouse> I am curious about the 'relocation truncated' thing.
> [18:17:01] <jon_y> thats noise
> [18:17:10] <lh_mouse> :<
> [18:17:14] <jon_y> more impotantly - undefined symbol `_ITM_RU1'
> [18:18:23] <adrien> possibly a mix of libraries which are of different
> bitnesses
> [18:20:50] <lh_mouse> adrien, that was also my opinion.
> [18:21:05] <lh_mouse> It _was_, at least yesterday.
> [18:21:42] <jon_y> it probably prints something like that whenever there
> is an undefined symbol
> [18:23:18] <adrien> well, what's your command-line?
> [18:23:55] <jturney> yeah, it something like a symbol which is 0 because
> it's undefined would need to be truncated to fit in a 32-bit relocation
> [18:24:36] <jturney> the fact that it's undefined is much more important :)
> [18:26:19] <ktietz> lh_mouse this message looks like an undefined symbol
> [18:26:52] <lh_mouse> so it sounds caused by undefined  symbols in itm.
> [18:27:01] <ktietz> pretty similar issues you can get, if you try to use
> short code-model on x64 in some cases.  but this seems not to be your issue
> here
> [18:27:21] <lh_mouse> it was not my issue...
> [18:28:04] <ktietz> the issue here is the pseudo-relocation code. we need
> to create symbols for aliases, which might lead to such messages
> [18:29:13] <ktietz> there is a symbol, but sadly it isn't here for real
> ... :/
>
> It may have something to do with MSYS2's libitm but I am not sure.
>
Either libitm (which is where the undefined symbols are present) or because
of weak references in libstdc++.a which maybe only get used properly if
linking with g++ instead of gcc like FFmpeg and mpv use. Either way, it
breaks builds and the patch fixes it.
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Msys2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/msys2-users

Reply via email to