diff --git a/libavcodec/fft.c b/libavcodec/fft.c
index facc6e05d968b2f44c398ab7afdb0b97c5b6196a..7275d98e9f70e4d7ac7d7389b6e73179c42d61bd 100644
--- a/libavcodec/fft.c
+++ b/libavcodec/fft.c
@@ -26,6 +26,8 @@
  * FFT/IFFT transforms.
  */
 
+#include <stdlib.h>
+#include <string.h>
 #include "libavutil/mathematics.h"
 #include "fft.h"
 
diff --git a/libavcodec/mdct.c b/libavcodec/mdct.c
index 87908d3d667a35dbb74ff0189682e28e1c7f1320..9d0a59dc84a2569da1779127da6b381e29d1ee8a 100644
--- a/libavcodec/mdct.c
+++ b/libavcodec/mdct.c
@@ -19,6 +19,9 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <stdlib.h>
+#include <string.h>
+#include "libavutil/common.h"
 #include "libavutil/mathematics.h"
 #include "fft.h"
 
diff --git a/libavcodec/rdft.c b/libavcodec/rdft.c
index 8878e744cfe9e1ded1367b04ea51a25c79b36919..8d0167798fbfacd50d194c7341ef4d9e707ea556 100644
--- a/libavcodec/rdft.c
+++ b/libavcodec/rdft.c
@@ -18,6 +18,7 @@
  * License along with FFmpeg; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
+#include <stdlib.h>
 #include <math.h>
 #include "libavutil/mathematics.h"
 #include "fft.h"
diff --git a/libavutil/adler32.c b/libavutil/adler32.c
index de793160a0274bf1ced1dec3f496eb0ee08b2ba6..4f2001025b372ad7c33c2cab76569e18c3b4b3f2 100644
--- a/libavutil/adler32.c
+++ b/libavutil/adler32.c
@@ -21,7 +21,7 @@
  * 3. This notice may not be removed or altered from any source distribution.
  */
 
-#include "common.h"
+#include "config.h"
 #include "adler32.h"
 
 #define BASE 65521L /* largest prime smaller than 65536 */
@@ -53,6 +53,7 @@ unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf, unsigne
 
 #ifdef TEST
 #include "log.h"
+#include "timer.h"
 #define LEN 7001
 volatile int checksum;
 int main(void){
diff --git a/libavutil/adler32.h b/libavutil/adler32.h
index 34f2b53e7dab0d7acb9281d757014fad56b6a7ad..9626c8056778e25217cd73c1cc00b2abe022a6e6 100644
--- a/libavutil/adler32.h
+++ b/libavutil/adler32.h
@@ -22,7 +22,7 @@
 #define AVUTIL_ADLER32_H
 
 #include <stdint.h>
-#include "common.h"
+#include "attributes.h"
 
 unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf,
                                 unsigned int len) av_pure;
diff --git a/libavutil/arm/bswap.h b/libavutil/arm/bswap.h
index 87dd8dd06ca6e5f2031957926b7476ec175e0043..91263507164b86ceaa37a40cff46ff6bfd00ec51 100644
--- a/libavutil/arm/bswap.h
+++ b/libavutil/arm/bswap.h
@@ -21,7 +21,7 @@
 
 #include <stdint.h>
 #include "config.h"
-#include "libavutil/common.h"
+#include "libavutil/attributes.h"
 
 #ifdef __ARMCC_VERSION
 
diff --git a/libavutil/arm/intmath.h b/libavutil/arm/intmath.h
index 21aef2a478233287eeed45b7149b27736235c401..48a05eaa1b86164dbdc9c173e967ad81b8d1be25 100644
--- a/libavutil/arm/intmath.h
+++ b/libavutil/arm/intmath.h
@@ -22,7 +22,7 @@
 #define AVUTIL_ARM_INTMATH_H
 
 #include "config.h"
-#include "libavutil/common.h"
+#include "libavutil/attributes.h"
 
 #if HAVE_INLINE_ASM
 
diff --git a/libavutil/avr32/bswap.h b/libavutil/avr32/bswap.h
index 8aad0529c34af5a55dda610e800b3a9a751d9645..e8c8ddc4ef5ad0d0d806bc9687e79fdf8b0edae6 100644
--- a/libavutil/avr32/bswap.h
+++ b/libavutil/avr32/bswap.h
@@ -21,7 +21,7 @@
 
 #include <stdint.h>
 #include "config.h"
-#include "libavutil/common.h"
+#include "libavutil/attributes.h"
 
 #if HAVE_INLINE_ASM
 
diff --git a/libavutil/bfin/bswap.h b/libavutil/bfin/bswap.h
index f0d49b5d6dbf3ab6376c789ae79c60764d264475..c40f922e32be6665ef51a84c9f07204c21036100 100644
--- a/libavutil/bfin/bswap.h
+++ b/libavutil/bfin/bswap.h
@@ -28,7 +28,7 @@
 
 #include <stdint.h>
 #include "config.h"
-#include "libavutil/common.h"
+#include "libavutil/attributes.h"
 
 #define bswap_32 bswap_32
 static av_always_inline av_const uint32_t bswap_32(uint32_t x)
diff --git a/libavutil/bswap.h b/libavutil/bswap.h
index 52811e74a376f4eec7b94d03c7921b567f8e758f..74c7af3026c1e6871cf84a9fd6e2ef1a0f65e176 100644
--- a/libavutil/bswap.h
+++ b/libavutil/bswap.h
@@ -28,7 +28,7 @@
 
 #include <stdint.h>
 #include "config.h"
-#include "common.h"
+#include "attributes.h"
 
 #if   ARCH_ARM
 #   include "arm/bswap.h"
diff --git a/libavutil/crc.c b/libavutil/crc.c
index 6fa14fcc58b64d8594b8bb6ad1ab544d70de32f6..2719baeefd1b16400c0a14d3d994f79a166b672f 100644
--- a/libavutil/crc.c
+++ b/libavutil/crc.c
@@ -19,6 +19,7 @@
  */
 
 #include "config.h"
+#include "common.h"
 #include "bswap.h"
 #include "crc.h"
 
diff --git a/libavutil/crc.h b/libavutil/crc.h
index fa3405927879bf9044f73610d2d0ee01ff3d5e09..6c0baab5ac953019ba0aa4ed00c50a9060e757b1 100644
--- a/libavutil/crc.h
+++ b/libavutil/crc.h
@@ -23,7 +23,7 @@
 
 #include <stdint.h>
 #include <stddef.h>
-#include "common.h"
+#include "attributes.h"
 
 typedef uint32_t AVCRC;
 
diff --git a/libavutil/fifo.h b/libavutil/fifo.h
index 68ed064c1d5b98197d590cae5554159b3321f80d..eb36af42a8d228bf33f40cbd23b8ea5e43a03e3b 100644
--- a/libavutil/fifo.h
+++ b/libavutil/fifo.h
@@ -25,8 +25,6 @@
 #define AVUTIL_FIFO_H
 
 #include <stdint.h>
-#include "avutil.h"
-#include "common.h"
 
 typedef struct AVFifoBuffer {
     uint8_t *buffer;
diff --git a/libavutil/internal.h b/libavutil/internal.h
index eac7bd30128608119307902346a7368aa60302a7..b47db3d8c61da398c9412706ebd10beebe1d3b44 100644
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@ -35,8 +35,7 @@
 #include <stddef.h>
 #include <assert.h>
 #include "config.h"
-#include "common.h"
-#include "mem.h"
+#include "attributes.h"
 #include "timer.h"
 
 #ifndef attribute_align_arg
diff --git a/libavutil/intfloat_readwrite.c b/libavutil/intfloat_readwrite.c
index bfe36a641a23ad3e274457b8cf57b28d610fa5b4..cb9835b317b9a52a309d297f3dd115f13ca4cf1f 100644
--- a/libavutil/intfloat_readwrite.c
+++ b/libavutil/intfloat_readwrite.c
@@ -25,7 +25,8 @@
  * portable IEEE float/double read/write functions
  */
 
-#include "common.h"
+#include <stdint.h>
+#include <math.h>
 #include "intfloat_readwrite.h"
 
 double av_int2dbl(int64_t v){
diff --git a/libavutil/intfloat_readwrite.h b/libavutil/intfloat_readwrite.h
index e2d5d5be0eaad13946e9cd15c57fd38f3893234a..1b80fc6e95fa836f0f5485c0b7ace71c73937993 100644
--- a/libavutil/intfloat_readwrite.h
+++ b/libavutil/intfloat_readwrite.h
@@ -22,7 +22,7 @@
 #define AVUTIL_INTFLOAT_READWRITE_H
 
 #include <stdint.h>
-#include "common.h"
+#include "attributes.h"
 
 /* IEEE 80 bits extended float */
 typedef struct AVExtFloat  {
diff --git a/libavutil/lfg.c b/libavutil/lfg.c
index a6828634ae0626fadd2d4f95b169b91cbb9020ce..1dad4e442c14df545822882973e94b4ae780f5b7 100644
--- a/libavutil/lfg.c
+++ b/libavutil/lfg.c
@@ -23,6 +23,7 @@
 #include "lfg.h"
 #include "md5.h"
 #include "intreadwrite.h"
+#include "attributes.h"
 
 void av_cold av_lfg_init(AVLFG *c, unsigned int seed){
     uint8_t tmp[16]={0};
@@ -56,7 +57,7 @@ void av_bmg_get(AVLFG *lfg, double out[2])
 
 #ifdef TEST
 #include "log.h"
-#include "common.h"
+#include "timer.h"
 
 int main(void)
 {
diff --git a/libavutil/mathematics.c b/libavutil/mathematics.c
index 91b76f3aaf4998af962276bf8829204218536376..81d47c1bf1eaefbd932b5eb0afc512f3b2f326bd 100644
--- a/libavutil/mathematics.c
+++ b/libavutil/mathematics.c
@@ -24,8 +24,8 @@
  */
 
 #include <assert.h>
-#include "avutil.h"
-#include "common.h"
+#include <stdint.h>
+#include <limits.h>
 #include "mathematics.h"
 
 const uint8_t ff_sqrt_tab[256]={
diff --git a/libavutil/mathematics.h b/libavutil/mathematics.h
index 7a72ceff966953caa9c3a53f48286a81de966d14..ab0f3f731dbd92cd615e350d25da5618af6f2a3f 100644
--- a/libavutil/mathematics.h
+++ b/libavutil/mathematics.h
@@ -23,7 +23,7 @@
 
 #include <stdint.h>
 #include <math.h>
-#include "common.h"
+#include "attributes.h"
 #include "rational.h"
 
 #ifndef M_E
diff --git a/libavutil/md5.c b/libavutil/md5.c
index d3e3e9816e555c2b492471889d7ddc6477682b9a..39ee6242e53e20fa9d2c1b595ab5658027153a3e 100644
--- a/libavutil/md5.c
+++ b/libavutil/md5.c
@@ -163,6 +163,7 @@ void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len){
 
 #ifdef TEST
 #include <stdio.h>
+#include <inttypes.h>
 #undef printf
 int main(void){
     uint64_t md5val;
diff --git a/libavutil/mem.h b/libavutil/mem.h
index d8d1d72b865f1797987e1afb2b4f3ee9dfa2f396..fffbb872ae204a664c84e36bb59670a5c3550ac3 100644
--- a/libavutil/mem.h
+++ b/libavutil/mem.h
@@ -26,7 +26,7 @@
 #ifndef AVUTIL_MEM_H
 #define AVUTIL_MEM_H
 
-#include "common.h"
+#include "attributes.h"
 
 #if defined(__ICC) || defined(__SUNPRO_C)
     #define DECLARE_ALIGNED(n,t,v)      t __attribute__ ((aligned (n))) v
diff --git a/libavutil/rational.h b/libavutil/rational.h
index 0f415edf94e77eb97f7a5b404d9f8596348f43a3..c5ecf2c6fd73a492b0aecdf11362f6237add2425 100644
--- a/libavutil/rational.h
+++ b/libavutil/rational.h
@@ -29,7 +29,7 @@
 #define AVUTIL_RATIONAL_H
 
 #include <stdint.h>
-#include "common.h"
+#include "attributes.h"
 
 /**
  * rational number numerator/denominator
diff --git a/libavutil/sh4/bswap.h b/libavutil/sh4/bswap.h
index db8e07eb121a4a160ffd6ae706b4ddb5a3216db8..c7cd90519459c149804a23112fd2cffa1223c591 100644
--- a/libavutil/sh4/bswap.h
+++ b/libavutil/sh4/bswap.h
@@ -26,7 +26,7 @@
 
 #include <stdint.h>
 #include "config.h"
-#include "libavutil/common.h"
+#include "libavutil/attributes.h"
 
 #define bswap_16 bswap_16
 static av_always_inline av_const uint16_t bswap_16(uint16_t x)
diff --git a/libavutil/sha.c b/libavutil/sha.c
index 7fe34007bb064fb393cad4531081bac592007b13..7d14efc6f2dc097eb7cc94c688adc59418f9c883 100644
--- a/libavutil/sha.c
+++ b/libavutil/sha.c
@@ -21,8 +21,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#include "common.h"
-#include "avutil.h"
+#include <string.h>
 #include "bswap.h"
 #include "sha.h"
 #include "sha1.h"
diff --git a/libavutil/tree.c b/libavutil/tree.c
index c387c46deb0746271539c0e6f62f919ede973046..8769c76b0fef168a02545338cc0366219a067bc3 100644
--- a/libavutil/tree.c
+++ b/libavutil/tree.c
@@ -18,7 +18,6 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#include "common.h"
 #include "log.h"
 #include "tree.h"
 
diff --git a/libavutil/x86/bswap.h b/libavutil/x86/bswap.h
index 3eeb5a46978d116d8cc61979b50207cfc433d1e8..462309f41eb776b151dd1c8edc7d77f2957621ee 100644
--- a/libavutil/x86/bswap.h
+++ b/libavutil/x86/bswap.h
@@ -26,7 +26,7 @@
 
 #include <stdint.h>
 #include "config.h"
-#include "libavutil/common.h"
+#include "libavutil/attributes.h"
 
 #define bswap_16 bswap_16
 static av_always_inline av_const uint16_t bswap_16(uint16_t x)
diff --git a/libavutil/x86/intmath.h b/libavutil/x86/intmath.h
index 7528c55dc8eeef0639cc0b4c454814fca529c6a4..f3acddc0e3ef1ab259011ee9a73fa911281eec84 100644
--- a/libavutil/x86/intmath.h
+++ b/libavutil/x86/intmath.h
@@ -21,8 +21,6 @@
 #ifndef AVUTIL_X86_INTMATH_H
 #define AVUTIL_X86_INTMATH_H
 
-#include "libavutil/common.h"
-
 #define FASTDIV(a,b) \
     ({\
         int ret, dmy;\
diff --git a/libavutil/x86/intreadwrite.h b/libavutil/x86/intreadwrite.h
index ff3e836c9a44cdf63464490fbf3b08c2daae95f1..4061d1923140be56119e3f1ba4569414a114e4de 100644
--- a/libavutil/x86/intreadwrite.h
+++ b/libavutil/x86/intreadwrite.h
@@ -23,7 +23,7 @@
 
 #include <stdint.h>
 #include "config.h"
-#include "libavutil/common.h"
+#include "libavutil/attributes.h"
 
 #if HAVE_MMX