2010/4/27 Manfred Tremmel <manf...@links2linux.de>:
> Am Dienstag, 27. April 2010 schrieb Cristian Morales Vega:
>
>> Using the latest version of your ffmpeg package I get a problem
>> compiling some software.
>> As an example, this is the relevant part of config.log from Aegisub:
>>
>> configure:24901: checking whether FFMPEG works
>> configure:24958: g++ -o conftest -g -O2 -Wall -Wextra
>> -Wno-unused-parameter -Wno-long-long -fpermissive
>>  -fno-strict-aliasing -std=c++98 -pipe -O2 -I/usr/include/libswscale
>> -I/usr/include/libavutil   -I/usr/include/libavcodec
>> -I/usr/include/libavutil   -I/usr/include/libavformat
>> -I/usr/include/libavcodec -I/usr/include/libavutil
>> -I/usr/include/libavutil   -lswscale   -lavcodec   -lavformat
>> -lavutil   conftest.cpp -lm  >&5
>> In file included from /usr/include/libavutil/avutil.h:81,
>>                  from /usr/include/libavcodec/avcodec.h:30,
>>                  from /usr/include/libavformat/avformat.h:56,
>>                  from conftest.cpp:3:
>> /usr/include/libavutil/common.h: In function 'int32_t
>>  av_clipl_int32(int64_t)': /usr/include/libavutil/common.h:154:
>>  error: 'UINT64_C' was not declared in this scope
>
> Take a look at:
>
> http://www.mail-archive.com/fink-us...@lists.sourceforge.net/msg21003.html
>
> adding -D__STDC_CONSTANT_MACROS to the compiler flags my fix this
> problem.
>
>> Other software gives the same UINT64_C problem at some point. It
>>  seems the problem comes from this exact version:
>> http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/2010-April/029212.html
>
> Sorry, was not my desission to change this.

At the ffmpeg-devel IRC channel I got a "libav* uses C99 if you want
to use it from C++ you're on your own". Since I don't like the idea of
having to patch every and each (spec from) C++ app that uses libavutil
what I propose is to patch the libavutil/common.h header with.

#if !defined UINT64_C
# if __WORDSIZE == 64
#  define UINT64_C(c)   c ## UL
# else
#  define UINT64_C(c)   c ## ULL
# endif
#endif

Taken from my stdint.h.

It should be kept in sync with glibc, but I don't expect it to change
too much anyway.
Isn't something upstream can take, but not so bad for a
distro-specific patch. What I like about it is that if an app works
without this patch, this patch does nothing. At worst it will brake
something that was already broken.

_______________________________________________
Packman mailing list
Packman@links2linux.de
http://lists.links2linux.de/cgi-bin/mailman/listinfo/packman

Antwort per Email an