Commit d2a4ecaf authored by Mike Frysinger's avatar Mike Frysinger Committed by Diego Biurrun

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
parent e44d7c65
...@@ -94,8 +94,12 @@ ...@@ -94,8 +94,12 @@
*/ */
#define mL1 .l1.text
#define mL3 .text #define mL3 .text
#ifdef __FDPIC__
#define mL1 .l1.text
#else
#define mL1 mL3
#endif
#define MEM mL1 #define MEM mL1
#define DEFUN(fname,where,interface) \ #define DEFUN(fname,where,interface) \
......
...@@ -34,14 +34,19 @@ ...@@ -34,14 +34,19 @@
#include "swscale.h" #include "swscale.h"
#include "swscale_internal.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, extern int ff_bfin_uyvytoyv12 (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
long width, long height, 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, extern int ff_bfin_yuyvtoyv12 (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
long width, long height, 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, static int uyvytoyv12_unscaled (SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
int srcSliceH, uint8_t* dst[], int dstStride[]) int srcSliceH, uint8_t* dst[], int dstStride[])
......
...@@ -36,8 +36,11 @@ ...@@ -36,8 +36,11 @@
#include "swscale.h" #include "swscale.h"
#include "swscale_internal.h" #include "swscale_internal.h"
#ifdef __FDPIC__
#define L1CODE __attribute__ ((l1_text)) #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, extern void ff_bfin_yuv2rgb555_line (uint8_t *Y, uint8_t *U, uint8_t *V, uint8_t *out,
int w, uint32_t *coeffs) L1CODE; int w, uint32_t *coeffs) L1CODE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment