Browse Source

Cygwin's mangling by Felix Buenemann <atmosfear@users.sourceforge.net>

Originally committed as revision 273 to svn://svn.ffmpeg.org/ffmpeg/trunk
Nick Kurshev 23 years ago
parent
commit
4bdd9157cc
4 changed files with 26 additions and 5 deletions
  1. 1 1
      libavcodec/common.h
  2. 5 4
      libavcodec/i386/simple_idct_mmx.c
  3. 2 0
      libavcodec/mangle.h
  4. 18 0
      mangle.h

+ 1 - 1
libavcodec/common.h

@@ -4,7 +4,7 @@
 #define FFMPEG_VERSION_INT 0x000406
 #define FFMPEG_VERSION     "0.4.6"
 
-#if defined(WIN32) && !defined(__MINGW32__)
+#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)
 #define CONFIG_WIN32
 #endif
 

+ 5 - 4
libavcodec/i386/simple_idct_mmx.c

@@ -18,6 +18,7 @@
 
 #include <inttypes.h>
 #include "../dsputil.h"
+#include "../mangle.h"
 
 #define C0 23170 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5
 #define C1 22725 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5
@@ -345,7 +346,7 @@ static inline void idct(int16_t *block)
 	"movq " #src4 ", %%mm1			\n\t" /* R6	R2	r6	r2 */\
 	"movq " #src1 ", %%mm2			\n\t" /* R3	R1	r3	r1 */\
 	"movq " #src5 ", %%mm3			\n\t" /* R7	R5	r7	r5 */\
-	"movq wm1010, %%mm4			\n\t"\
+	"movq "MANGLE(wm1010)", %%mm4		\n\t"\
 	"pand %%mm0, %%mm4			\n\t"\
 	"por %%mm1, %%mm4			\n\t"\
 	"por %%mm2, %%mm4			\n\t"\
@@ -419,7 +420,7 @@ static inline void idct(int16_t *block)
 	"jmp 2f					\n\t"\
 	"1:					\n\t"\
 	"pslld $16, %%mm0			\n\t"\
-	"#paddd d40000, %%mm0			\n\t"\
+	"#paddd "MANGLE(d40000)", %%mm0		\n\t"\
 	"psrad $13, %%mm0			\n\t"\
 	"packssdw %%mm0, %%mm0			\n\t"\
 	"movq %%mm0, " #dst "			\n\t"\
@@ -453,7 +454,7 @@ COL_IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
 	"movq " #src4 ", %%mm1			\n\t" /* R6	R2	r6	r2 */\
 	"movq " #src1 ", %%mm2			\n\t" /* R3	R1	r3	r1 */\
 	"movq " #src5 ", %%mm3			\n\t" /* R7	R5	r7	r5 */\
-	"movq wm1010, %%mm4			\n\t"\
+	"movq "MANGLE(wm1010)", %%mm4		\n\t"\
 	"pand %%mm0, %%mm4			\n\t"\
 	"por %%mm1, %%mm4			\n\t"\
 	"por %%mm2, %%mm4			\n\t"\
@@ -527,7 +528,7 @@ COL_IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
 	"jmp 2f					\n\t"\
 	"1:					\n\t"\
 	"pslld $16, %%mm0			\n\t"\
-	"paddd d40000, %%mm0			\n\t"\
+	"paddd "MANGLE(d40000)", %%mm0		\n\t"\
 	"psrad $13, %%mm0			\n\t"\
 	"packssdw %%mm0, %%mm0			\n\t"\
 	"movq %%mm0, " #dst "			\n\t"\

+ 2 - 0
libavcodec/mangle.h

@@ -0,0 +1,2 @@
+#include "../mangle.h"
+

+ 18 - 0
mangle.h

@@ -0,0 +1,18 @@
+/* mangle.h - This file has some CPP macros to deal with different symbol
+ * mangling across binary formats.
+ * (c)2002 by Felix Buenemann <atmosfear at users.sourceforge.net>
+ * File licensed under the GPL, see http://www.fsf.org/ for more info.
+ */
+
+#ifndef __MANGLE_H
+#define __MANGLE_H
+
+/* Feel free to add more to the list, eg. a.out IMO */
+#if defined(__CYGWIN__)
+#define MANGLE(a) "_" #a
+#else
+#define MANGLE(a) #a
+#endif
+
+#endif /* !__MANGLE_H */
+