[MPlayer-dev-eng] [PATCH] mplayer fails to link with newer binutils

Arpi arpi at thot.banki.hu
Mon Dec 23 02:01:45 CET 2002


Hi,

> -# OBJS = $(SRCS:.c,.s=.o)
> +OPTFLAGS := $(OPTFLAGS:-fomit-frame-pointer=)

hmm?

>  OBJS += decode_MMX.o dct64_MMX.o tabinit_MMX.o
> +# Disable SSE code and reenable FPU dct for SSE cpus (fpu code is 0.3% faster and can't get data aligned in dct64_sse.s)
>  #ifeq ($(TARGET_SSE),yes)

hmm 2 ?

> -static long decwin [544];
> +real decwin [512+32];

actually this won't help much... just mess up things even more.

currently decwin is declared at 3 places:

mpg123.h:
extern real decwin[(512+32)];

tabinit_MMX.c:
static long decwin [544];

tabinit.c:
real decwin[(512+32)], cos64[32], cos32[16], cos16[8], cos8[4], cos4[2];

since tabinit_MMX.c doesn't include mpg123.h, there should not be any
conflicts. that file have a local (static) array called decwins.
it should not interfere with any global symbols.
if it does - it's the error of the linker, not the code. a warning may be
ok, to tell the programmer about a possible name clash, but not an error.

now, that you changed the static one to a global one - you created the
conflict: there are now 2 arrays with same name and both global.

a possible fix would be declaring decwin as extern in tabinit_MMX.c instead
of re-declaring it. but i don't know the purpose of decwin there, maybe it
will conflict with the other one (mayeb they have to co-exists and must have
independent contents)


A'rpi / Astral & ESP-team

--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu



More information about the MPlayer-dev-eng mailing list