Menu

#85 makefile.linux fails on x86_64

libpng_code
closed-fixed
makefiles (58)
5
2007-02-02
2006-11-29
No

This is from 1.2.14-no-config, when compiling on an AMD64x2 with SUSE 10.1:
----------------
> make test
gcc -I../zlib -Wall -O3 -funroll-loops -c -o pngtest.o pngtest.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o png.pic.o png.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngset.pic.o pngset.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngget.pic.o pngget.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngrutil.pic.o pngrutil.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngtrans.pic.o pngtrans.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngwutil.pic.o pngwutil.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngread.pic.o pngread.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngrio.pic.o pngrio.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngwio.pic.o pngwio.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngwrite.pic.o pngwrite.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngrtran.pic.o pngrtran.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngwtran.pic.o pngwtran.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngmem.pic.o pngmem.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngerror.pic.o pngerror.c
gcc -c -I../zlib -Wall -O3 -funroll-loops -fPIC -o pngpread.pic.o pngpread.c
gcc -shared -Wl,-soname,libpng12.so.0 -o libpng12.so.0.1.2.14 png.pic.o pngset.pic.o pngget.pic.o pngrutil.pic.o pngtrans.pic.o pngwutil.pic.o pngread.pic.o pngrio.pic.o pngwio.pic.o pngwrite.pic.o pngrtran.pic.o pngwtran.pic.o pngmem.pic.o pngerror.pic.o pngpread.pic.o
ln -sf libpng12.so.0.1.2.14 libpng12.so.0
ln -sf libpng12.so.0 libpng12.so
gcc -o pngtest -I../zlib -Wall -O3 -funroll-loops pngtest.o -L. -Wl,-rpath,. -L../zlib -Wl,-rpath,../zlib -lpng12 -lz -lm
./libpng12.so: undefined reference to `png_read_filter_row'
./libpng12.so: undefined reference to `png_mmx_support'
./libpng12.so: undefined reference to `png_combine_row'
./libpng12.so: undefined reference to `png_do_read_interlace'
collect2: ld returned 1 exit status
make: *** [pngtest] Fehler 1
> uname -a
Linux dream 2.6.16.21-0.25-smp #1 SMP Tue Sep 19 07:26:15 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux

Discussion

  • Glenn Randers-Pehrson

    • status: open --> open-duplicate
     
  • Glenn Randers-Pehrson

    Logged In: YES
    user_id=7859
    Originator: NO

    See the final item in the KNOWNBUGS file.

    Glenn

     
  • Glenn Randers-Pehrson

    Logged In: YES
    user_id=7859
    Originator: NO

    Try libpng-1.2.15beta3

    Glenn

     
  • Martin Schröder

    Logged In: YES
    user_id=33472
    Originator: YES

    This happens again with 1.2.15-no-config, and the entry in KNOWNBUG is gone.
    Tested with makefile.gcc and makefile.linux

    gcc -I../zlib -Wall -O3 -funroll-loops -c -o pngtest.o pngtest.c
    gcc -o pngtest -I../zlib -Wall -O3 -funroll-loops pngtest.o -L. -Wl,-rpath,. -L../zlib -Wl,-rpath,../zlib -lpng12 -lz -lm
    ./libpng12.so: undefined reference to `png_mmx_support'
    collect2: ld returned 1 exit status
    make: *** [pngtest] Fehler 1

     
  • Martin Schröder

    • status: open-duplicate --> open
     
  • Glenn Randers-Pehrson

    Logged In: YES
    user_id=7859
    Originator: NO

    Try makefile.nommx instead of makefile.linux, on libpng-1.2.15

    Glenn

     
  • Martin Schröder

    Logged In: YES
    user_id=33472
    Originator: YES

    ln -sf libpng12.so.0.1.2.15 libpng12.so.0
    ln -sf libpng12.so.0 libpng12.so
    gcc -I../zlib -Wall -O3 -funroll-loops -DPNG_NO_MMX_CODE -c -o pngtest.o pngtest.c
    gcc -o pngtest -I../zlib -Wall -O3 -funroll-loops -DPNG_NO_MMX_CODE pngtest.o -L. -Wl,-rpath,. -L../zlib -Wl,-rpath,../zlib -lpng12 -lz -lm
    gcc -o pngtest-static -I../zlib -Wall -O3 -funroll-loops -DPNG_NO_MMX_CODE pngtest.o -L../zlib -Wl,-rpath,../zlib libpng.a -lz -lm
    cat scripts/libpng.pc.in | sed -e s!@PREFIX@!/usr/local! |
    sed: kann | nicht lesen: Datei oder Verzeichnis nicht gefunden

    I'm sure my AMD64@4200 can do MMX. :-)

     
  • Glenn Randers-Pehrson

    Logged In: YES
    user_id=7859
    Originator: NO

    Try this in makefile.nommx (move the "|" to the next line):

    libpng.pc:
    cat scripts/libpng.pc.in | sed -e s!@PREFIX@!$(prefix)! \
    | sed -s s!Cflags: !Cflags: -DPNG_NO_MMX_CODE !> libpng.pc

    I'm sure your CPU can do MMX but your compiler cannot assemble the MMX code.

     
  • Martin Schröder

    Logged In: YES
    user_id=33472
    Originator: YES

    cat scripts/libpng.pc.in | sed -e s!@PREFIX@!/usr/local! \
    | sed -s s!Cflags: !Cflags: -DPNG_NO_MMX_CODE !> libpng.pc
    sed: invalid option -- D
    Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...

     
  • Martin Schröder

    Logged In: YES
    user_id=33472
    Originator: YES

    Note that the sf compile farm has amd64-linux machines.

     
  • Glenn Randers-Pehrson

    Logged In: YES
    user_id=7859
    Originator: NO

    should probably be "sed -e" instead of "sed -s"

    Glenn

     
  • Martin Schröder

    Logged In: YES
    user_id=33472
    Originator: YES

    | sed -e s!Cflags: !Cflags: -DPNG_NO_MMX_CODE !> libpng.pc
    sed: -e expression #1, char 9: unterminated `s' command

    Next try...

     
  • Glenn Randers-Pehrson

    Logged In: YES
    user_id=7859
    Originator: NO

    I guess it needs some quotes to protect the blanks:

    Replace
    | sed -e s!Cflags: !Cflags: -DPNG_NO_MMX_CODE !> libpng.pc

    with
    | sed -e "s!Cflags: !Cflags: -DPNG_NO_MMX_CODE !"> libpng.pc

     
  • Martin Schröder

    Logged In: YES
    user_id=33472
    Originator: YES

    Yes, that works.

     
  • Martin Schröder

    • status: open --> open-accepted
     
  • Glenn Randers-Pehrson

    • status: open-accepted --> open
     
  • Glenn Randers-Pehrson

    Logged In: YES
    user_id=7859
    Originator: NO

    I guess it needs some quotes to protect the blanks:

    Replace
    | sed -e s!Cflags: !Cflags: -DPNG_NO_MMX_CODE !> libpng.pc

    with
    | sed -e "s!Cflags: !Cflags: -DPNG_NO_MMX_CODE !"> libpng.pc

     
  • Glenn Randers-Pehrson

    Logged In: YES
    user_id=7859
    Originator: NO

    I'm uploading makefile.nommx and KNOWNBUGS1 files. Thanks for testing.

     
  • Glenn Randers-Pehrson

    • status: open --> closed-fixed
     
  • Glenn Randers-Pehrson

    Logged In: YES
    user_id=7859
    Originator: NO

    Fixed in libpng-1.2.16

     

Log in to post a comment.

MongoDB Logo MongoDB