[Ffmpeg-devel] [PATCH] build with '--enable-gprof'
Dmitry Antipov
dmantipov
Wed Dec 6 14:42:32 CET 2006
Hello,
this patch is a simplest attempt to build with '--enable-gprof', which
looks broken in the current SVN trunk. Since '-pg' and '-fomit-frame-pointer'
are mutually exclusive, a few x86 inline assembly code cannot be used within
this configuration. So, this code is placed under additional !defined(HAVE_GPROF).
Dmitry
Index: configure
===================================================================
--- configure (revision 7231)
+++ configure (working copy)
@@ -1187,7 +1187,7 @@
fi
fi
-if test $optimize != "no"; then
+if test $optimize != "no" && test $gprof != "yes"; then
add_cflags "-fomit-frame-pointer"
fi
@@ -1678,8 +1678,8 @@
fi
if test "$gprof" = "yes" ; then
- add_cflags "-p"
- add_ldflags "-p"
+ add_cflags "-pg"
+ add_ldflags "-pg"
fi
VHOOKCFLAGS="-fPIC $CFLAGS"
Index: libavcodec/cabac.h
===================================================================
--- libavcodec/cabac.h (revision 7231)
+++ libavcodec/cabac.h (working copy)
@@ -376,7 +376,7 @@
#define BYTE "16"
#define BYTEEND "20"
#endif
-#if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__))
+#if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) && !defined(HAVE_GPROF)
int bit;
#ifndef BRANCHLESS_CABAC_DECODER
@@ -532,7 +532,7 @@
);
bit&=1;
#endif /* BRANCHLESS_CABAC_DECODER */
-#else /* defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) */
+#else /* defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) && !defined(HAVE_GPROF) */
int s = *state;
int RangeLPS= ff_h264_lps_range[2*(c->range&0xC0) + s];
int bit, lps_mask attribute_unused;
@@ -571,7 +571,7 @@
if(!(c->low & CABAC_MASK))
refill2(c);
#endif /* BRANCHLESS_CABAC_DECODER */
-#endif /* defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) */
+#endif /* defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) && !defined(HAVE_GPROF) */
return bit;
}
@@ -632,7 +632,7 @@
static always_inline int get_cabac_bypass_sign(CABACContext *c, int val){
-#if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__))
+#if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) && !defined(HAVE_GPROF)
asm volatile(
"movl "RANGE "(%1), %%ebx \n\t"
"movl "LOW "(%1), %%eax \n\t"
@@ -680,7 +680,7 @@
//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(PIC) && defined(__GNUC__)) && !defined(HAVE_GPROF)
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;
@@ -786,7 +786,7 @@
);
return coeff_count;
}
-#endif /* defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) */
+#endif /* defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__)) !defined(HAVE_GPROF) */
/**
*
Index: libavcodec/h264.c
===================================================================
--- libavcodec/h264.c (revision 7231)
+++ libavcodec/h264.c (working copy)
@@ -6054,7 +6054,7 @@
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(PIC) && defined(__GNUC__)) && !defined(HAVE_GPROF)
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);
More information about the ffmpeg-devel
mailing list