gcc 3.0, glibc 2.2, etc.
Bernardo Innocenti
bernie at codewiz.org
Fri Mar 9 23:27:48 CET 2001
Hello,
I'm trying to compile CVS snapshots of vlc on a really "bleeding edge"
Linux system.
It works fine with XFree 4.02+, kernel 2.4.2, glibc 2.2 and gcc 2.96rh.
I've found these problems worth noting:
- using the latest gcc 3.0 snapshots, the build fails in
"video_decoder/video_decoder.c" because gcc does not like the
operand constraints of the assembly macros in AddBlock() and
CopyBlock(). I've looked into it and it seems that p_data is
incorrectly specified as an output operand. AFAIK, the output
is the return value that the asm espression is given when the
surrounding C code references it. Moving p_data along with the
other input operands fixed the compilation for me. I also
suspect that those asm macros should specify the registers that
they are clobbering and the list should probably include "memory"
because the code modifies memory data pointed to by p_data.
- the file "include/input_ext-dec.h" uses memcpy() without including
<string.h> before, so I get a warning for a missing prototype
and probably slightly less efficient code because memcpy() might
be implemented with a smart macro in some versions of glibc;
- the same happens in "include/input.h" for memset();
- src/input/input_ext-intf.c:121: warning: deprecated use of label
at end of compound statement;
- in "include/tests.h", the asm macros are made with a string
containing embedded newlines rather than using string
concatenation and the usual "\n\t" separator. This syntax is
now deprecated in the latest cpp and issues a warning message.
--
// Bernardo Innocenti
\X/ http://www.codewiz.org/~bernie
More information about the vlc
mailing list