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