Menu

#1 can't build psdoom

open-fixed
5
2003-08-19
2000-06-20
Anonymous
No

Discussion

  • Nobody/Anonymous

    Logged In: NO
    Browser: Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)

    hey there

    I'm trying to build psdoom from your
    psdoom-2000.05.03-src.tar.gz and I'm getting this
    error:
    In file included from p_pspr.h:34,
    from d_player.h:39,
    from d_net.h:33,
    from doomstat.h:40,
    from doomstat.c:35:
    m_fixed.h: In function `FixedMul':
    m_fixed.h:64: operand constraint contains '+' or '=' at
    illegal position.
    m_fixed.h: In function `FixedDiv2':
    m_fixed.h:79: operand constraint contains '+' or '=' at
    illegal position.
    make[1]: *** [linux-x86/doomstat.o] Error 1
    make[1]: Leaving directory
    `/home/timo/psdoom/psdoom-src/xdoomsrc/xdoom'
    make: *** [xdoom-linux-x86] Error 2

    all I did is cd to xdoomsrc and make linux-x86

    I'm using gcc 2.95.2 on a Mandrake 6.0
    the CPU is a P2, it's a bit weird I got the -m486
    compiling directive (the
    errors seems to come from fixed-point code)
    I don't have much time to spend on it, so I won't look
    into it much .. too
    bad cause psdoom could add fun to my everyday process-
    killing frenzy.

     
  • Nobody/Anonymous

    Logged In: YES
    user_id=14219
    Browser: Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)

    I looked at m_fixed.h, and the offending lines both look
    like this:
    "%edx", "%cc");

    Perhaps it's your compiler (I use gcc 2.7). I'm guessing
    that your compiler is interpreting the %cc a directive or
    alias to do something.

    One thing to try: modify Makefile.linux-x86 in the
    xdoom/xdoomsrc/xdoom/ directory as follows:

    Comment the line:
    # Production, old GNU C 2.7
    OPTFLAGS=-O3 -m486 -ffast-math -fomit-frame-pointer \ -DUSE_INLINE -DUSE_ASMMOD

    Uncomment the line:
    # Production, EGCS
    #OPTFLAGS=-O3 -mpentium -ffast-math -fomit-frame-pointer \ -fexpensive-optimizations -DUSE_INLINE -DUSE_ASMMOD

    Maybe that will help since you're using the newer
    compiler, not the old GNU C 2.7. If that doesn't work, you
    could also try deleting the -DUSE_INLINE from the above
    line. If that stuff doesn't work, well, I'm out of ideas
    for now...

     
  • David Koppenhofer

    • assigned_to: nobody --> djk
     
  • Nobody/Anonymous

    Logged In: NO
    Browser: Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)

    I made it work with the EGCS OPTFLAGS and removing
    USE_INLINE
    well maybe it's less optimized, but I think my box can
    handle it :-)

    thanks for the tips

     
  • David Koppenhofer

    • status: open --> closed
     
  • David Koppenhofer

    • status: closed --> closed-invalid
     
  • David Koppenhofer

    Logged In: YES
    user_id=14219

    Actually, I just noticed that the latest version of XDoom
    (20001001) has a release note about this in the file:
    xdoom/xdoomsrc/doc/Release.notes

    <...snip...>
    GNU C 2.9 on all x86 platforms:
    ===============================
    With GNU C releases like this:

    gcc --version
    2.95.2

    compilation aborts with the following error:

    gcc -O3 -m486 -ffast-math -fomit-frame-pointer -DUSE_INLINE
    -DUSE_ASMMOD
    -Wall -DNORMALUNIX -DLINUX -DBUGFIXES -DPOLL_POINTER
    -DMUSSERV -c
    doomstat.c -o linux-x86/doomstat.o
    In file included from p_pspr.h:34,
    from d_player.h:39,
    from d_net.h:33,
    from doomstat.h:40,
    from doomstat.c:35:
    m_fixed.h: In function `FixedMul':
    m_fixed.h:64: operand constraint contains '+' or '=' at
    illegal position.
    m_fixed.h: In function `FixedDiv2':
    m_fixed.h:79: operand constraint contains '+' or '=' at
    illegal position.
    make[1]: *** [linux-x86/doomstat.o] Error 1

    In m_fixed.h there aren't any + or = in any operands, this
    looks like
    some compiler bug, with releases 2.7 and 2.8 of the GNU C
    compiler there
    is no such problem.
    Use the EGCS compiler, which also doesn't have this problem,
    or in
    Makefile.linux-x86 remove -DUSE_INLINE from the active OPTFLAGS.
    C code instead of assembler code for the fixed point
    division/multiplication
    routines will be compiled then. This is a bit slower, but on
    nowadys
    systems one won't notice, this optimization is for 386/486
    CPU's.

     
  • Timothee Besset

    Timothee Besset - 2002-06-17

    Logged In: YES
    user_id=2063

    hilarious
    well I submitted this on:
    Date: 2000-06-20 21:39

    that was two years ago .. I must say I haven't bothered
    about this (maybe I did for a day or two)

     
  • David Koppenhofer

    • status: closed-invalid --> open-fixed
     
  • David Koppenhofer

    Logged In: YES
    user_id=14219

    I have made the recommended changes to Makefile.linux-x86
    and have attached it to this Support Request.

    Download the file and replace the existing
    xdoomsrc/xdoom/Makefile.linux-x86 with this new one. The
    compilation should work then.

     
  • David Koppenhofer

    Updated Makefile.linux-x86 file.

     

Log in to post a comment.