aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Frysinger <vapier.adi@gmail.com>2008-02-16 15:17:59 +0000
committerDiego Biurrun <diego@biurrun.de>2008-02-16 15:17:59 +0000
commitd2a4ecafbba2a1a5895c6c3e2e6781f9751a681d (patch)
treeb173712abc82dad390018b5d5cd21091b12a171a
parente44d7c659ba56d7efd6de10d5d99a1c44fd997fa (diff)
downloadffmpeg-d2a4ecafbba2a1a5895c6c3e2e6781f9751a681d.tar.gz
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
linking. The FDPIC relocs also break for any other format. Thus check the compiler environment and select the appropriate sections/relocs. patch by Mike Frysinger, vapier.adi a gmail d com Originally committed as revision 26010 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
-rw-r--r--libswscale/internal_bfin.S6
-rw-r--r--libswscale/swscale_bfin.c9
-rw-r--r--libswscale/yuv2rgb_bfin.c5
3 files changed, 16 insertions, 4 deletions
diff --git a/libswscale/internal_bfin.S b/libswscale/internal_bfin.S
index 475d704529..2d5c61a14a 100644
--- a/libswscale/internal_bfin.S
+++ b/libswscale/internal_bfin.S
@@ -94,8 +94,12 @@
*/
-#define mL1 .l1.text
#define mL3 .text
+#ifdef __FDPIC__
+#define mL1 .l1.text
+#else
+#define mL1 mL3
+#endif
#define MEM mL1
#define DEFUN(fname,where,interface) \
diff --git a/libswscale/swscale_bfin.c b/libswscale/swscale_bfin.c
index 763a005d90..bbc304dfe3 100644
--- a/libswscale/swscale_bfin.c
+++ b/libswscale/swscale_bfin.c
@@ -34,14 +34,19 @@
#include "swscale.h"
#include "swscale_internal.h"
+#ifdef __FDPIC__
+#define L1CODE __attribute__ ((l1_text))
+#else
+#define L1CODE
+#endif
extern int ff_bfin_uyvytoyv12 (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
long width, long height,
- long lumStride, long chromStride, long srcStride) __attribute__ ((l1_text));
+ long lumStride, long chromStride, long srcStride) L1CODE;
extern int ff_bfin_yuyvtoyv12 (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
long width, long height,
- long lumStride, long chromStride, long srcStride) __attribute__ ((l1_text));
+ long lumStride, long chromStride, long srcStride) L1CODE;
static int uyvytoyv12_unscaled (SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
int srcSliceH, uint8_t* dst[], int dstStride[])
diff --git a/libswscale/yuv2rgb_bfin.c b/libswscale/yuv2rgb_bfin.c
index e35d49efbd..d2770793bc 100644
--- a/libswscale/yuv2rgb_bfin.c
+++ b/libswscale/yuv2rgb_bfin.c
@@ -36,8 +36,11 @@
#include "swscale.h"
#include "swscale_internal.h"
-
+#ifdef __FDPIC__
#define L1CODE __attribute__ ((l1_text))
+#else
+#define L1CODE
+#endif
extern void ff_bfin_yuv2rgb555_line (uint8_t *Y, uint8_t *U, uint8_t *V, uint8_t *out,
int w, uint32_t *coeffs) L1CODE;