Bug 12257 - xvid 0.9.0 does not build on ppc
Bug#: 12257 Product:  Gentoo Linux Version: unspecified Platform: PPC
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: rajiv@gentoo.org Reported By: rajiv@gentoo.org
Component: Applications
URL: 
Summary: xvid 0.9.0 does not build on ppc
Keywords:  
Status Whiteboard: 
Opened: 2002-12-16 14:53 0000
Description:   Opened: 2002-12-16 14:53 0000
xvid-0.9.0.ebuild does not build on ppc:


>>> emerge (11 of 16) media-libs/xvid-0.9.0 to /
>>> md5 ;-) xvidcore-0.9.0.tar.bz2
>>> Unpacking source...
>>> Unpacking xvidcore-0.9.0.tar.bz2
ppc
>>> Source unpacked.
gcc -O3 -pipe -fsigned-char -Wall -Os -funroll-loops -ffast-math
-fstrict-aliasing -fomit-frame-pointer -fPIC   -c -o ../../src/decoder.o
../../src/decoder.c
gcc -O3 -pipe -fsigned-char -Wall -Os -funroll-loops -ffast-math
-fstrict-aliasing -fomit-frame-pointer -fPIC   -c -o ../../src/divx4.o
../../src/divx4.c
In file included from ../../src/decoder.c:66:
../../src/portab.h:143:6: #error Architecture not supported.
../../src/portab.h:349:10: #error Architecture not supported.
.... with many more errors.

if you look at portab.h you will see:

#if defined(ARCH_X86) || defined(ARCH_PPC) || defined(ARCH_MIPS)  ||
defined(ARCH_SPARC)
#    define CACHE_LINE  16
#    define ptr_t uint32_t
#elif defined(ARCH_IA64)
#    define CACHE_LINE  32
#    define ptr_t uint64_t
#else
#    error Architecture not supported.
#endif

and in the original makefiles there is stuff like:

# Constants which should not be modified
CFLAGS += -DLINUX
CFLAGS += -DARCH_PPC
CFLAGS += -DARCH_IS_BIG_ENDIAN

yet the ebuild has:

        if use ppc; then
                sed -e "s:^CC:#CC:" \
                        -e "s:^LIBDIR:#LIBDIR:" \
                        -e "s:^CFLAGS +=:#CFLAGS +=:" \
                        -e "s:^CFLAGS =:CFLAGS +=:" \
                        Makefile.linuxppc > Makefile

so the necessary -DARCH_xxx and others gets commented out.

------- Comment #1 From Martin Schlemmer (RETIRED) 2002-12-16 15:05:32 0000 -------
I think the:

-------------------------------
        if use ppc; then
                sed -e "s:^CC:#CC:" \
                        -e "s:^LIBDIR:#LIBDIR:" \
                        -e "s:^CFLAGS +=:#CFLAGS +=:" \
                        -e "s:^CFLAGS =:CFLAGS +=:" \
                        Makefile.linuxppc > Makefile
-------------------------------

should be:

-------------------------------
        if use ppc; then
                sed -e "s:^CC:#CC:" \
                        -e "s:^LIBDIR:#LIBDIR:" \
                        -e "s:^CFLAGS +=:#CFLAGS +=:" \
                        -e "s:^CFLAGS =:CFLAGS +=:" \
                        -e "s:^#CFLAGS += -D:CFLAGS += -D:" \
                        Makefile.linuxppc > Makefile
-------------------------------

Like I told Rajiv, i think those seds are needed for cvs snapshots,
but cant remember now ..

------- Comment #2 From Rajiv Aaron Manglani 2002-12-19 20:19:17 0000 -------
i removed those sed lines from ppc section of src_compile() since we are not
using a cvs snapshot for this ebuild. xvid now builds properly on ppc.