interested in using a debugger to debug FFmpeg.
Original thread:
Subject: [PATCH] Fix compilation when using --disable-opts
Date: 2007-03-15 16:58:35 GMT
Originally committed as revision 8549 to svn://svn.ffmpeg.org/ffmpeg/trunk
bktr
dc1394
dv1394
+ ebp_available
+ ebx_available
ffmpeg
ffplay
ffserver
ranlib="${cross_prefix}${ranlib}"
strip="${cross_prefix}${strip}"
+# Disable core dumps so that intentional execution of broken apps doesn't
+# pollute the current directory.
+ulimit -c 0
+
# we need to build at least one lib type
if disabled_all static shared; then
cat <<EOF
die "C compiler test failed."
fi
+if test $arch = "x86_32" -o $arch = "x86_64"; then
+ if test "$targetos" = "mingw32" -o "$targetos" = "CYGWIN"; then
+ cat <<EOF
+WARNING: The following test might cause a testapp to crash (intentionally)
+resulting in the appearance of a dialog box. Please click "Don't send" and
+ignore it.
+EOF
+ fi
+
+ # check whether EBP is available on x86
+ # As 'i' is stored on the stack, this program will crash
+ # if the base pointer is used to access it because the
+ # base pointer is cleared in the inline assembly code.
+ check_exec <<EOF && enable ebp_available
+int main(){
+ volatile int i=0;
+ asm volatile (
+ "xorl %%ebp, %%ebp"
+ ::: "%ebp");
+ return i;
+}
+EOF
+
+ # check wether EBX is available on x86
+ check_cc <<EOF && enable ebx_available
+int main(){
+ asm volatile ("":::"%ebx");
+}
+EOF
+fi
+
# check for assembler specific support
if test $arch = "powerpc"; then
#define BYTE "16"
#define BYTEEND "20"
#endif
-#if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__))
+#if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(CONFIG_EBX_AVAILABLE)
int bit;
#ifndef BRANCHLESS_CABAC_DECODER
//FIXME the x86 code from this file should be moved into i386/h264 or cabac something.c/h (note ill kill you if you move my code away from under my fingers before iam finished with it!)
//FIXME use some macros to avoid duplicatin get_cabac (cant be done yet as that would make optimization work hard)
-#if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__))
+#if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(CONFIG_EBX_AVAILABLE)
static int decode_significance_x86(CABACContext *c, int max_coeff, uint8_t *significant_coeff_ctx_base, int *index){
void *end= significant_coeff_ctx_base + max_coeff - 1;
int minusstart= -(int)significant_coeff_ctx_base;
index[coeff_count++] = last;\
}
const uint8_t *sig_off = significant_coeff_flag_offset_8x8[MB_FIELD];
-#if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__))
+#if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(CONFIG_EBX_AVAILABLE)
coeff_count= decode_significance_8x8_x86(CC, significant_coeff_ctx_base, index, sig_off);
} else {
coeff_count= decode_significance_x86(CC, max_coeff, significant_coeff_ctx_base, index);
# define REGSP esp
#endif
+#if defined(ARCH_X86_64) || (defined(ARCH_X86_32) && defined(CONFIG_EBX_AVAILABLE) && defined(CONFIG_EBP_AVAILABLE))
+# define CONFIG_7REGS 1
+#endif
+
#endif /* AVUTIL_X86CPU_H */