[MPlayer-dev-eng] [PATCH] Fix building with Clang

Reimar Döffinger Reimar.Doeffinger at gmx.de
Thu Dec 23 21:55:30 EET 2021



> On 23 Dec 2021, at 15:57, Brad Smith <brad at comstyle.com> wrote:
> 
> On 12/20/2021 10:47 AM, Reimar Döffinger wrote:
> 
>> 
>>> On 10 Dec 2021, at 07:48, Brad Smith <brad at comstyle.com> wrote:
>>> 
>>> Fix building with Clang.
>>> 
>>> 
>>> ./stream/stream.h:322:46: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
>>>  mp_dbg(MSGT_DEMUX, MSGL_DBG3, "seek to 0x%"PRIX64"\n", pos);
>>>                                             ^
>>> 
>>> ./stream/stream.h:326:49: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
>>>           "Invalid seek to negative position %"PRIx64"!\n", pos);
>> Sorry for the late reply, but I think this needs a bit more details/explanation.
>> 1) I’ve quickly tested on macOS which uses clang and it has no issues, so this can’t be a problem with clang in general I think?
>> 2) MPlayer is not C++11, in fact it is not C++ at all, so this messages does not really make sense. Sure it’s not a bug in clang, or maybe you used clang++ instead of clang as compiler?
>> 
>> Now the change is not a big deal, it’s just that I am not a big fan of working around issues that are not properly understood, also because if it’s a real issue the commit message should make it clear how we can avoid re-introducing such issues in the future.
> 
> 1) Looks like you're not building with Live555 support.

I did now, it makes no difference.
Are you actually using it? Because MPlayer doesn't work with any version current enough to not be full of security issues I think...
I had to use attached hack to make it just compile.

> 2) Although almost all of MPlayer is C code there are two files in the tree that are C++ code.

Why does it fail with your compilers when it seems to work with all the ones I have at hand?
It seems the problem might be your compiler defaulting to C++11, and in the future even newer C++ versions.
So the real issue might be that this old code really should be compiled with -std=c++98 if that option is available?
After all your change might fix the issue with C++11 compatibility, but who knows what other issues would pop up if the compiler tried to compile it as C++30 or whatever...
That said I don't know if there is a point in keeping these mp_dbg macros at all.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: live555.diff
Type: application/octet-stream
Size: 3777 bytes
Desc: not available
URL: <https://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20211223/1fc4e4c6/attachment.obj>


More information about the MPlayer-dev-eng mailing list