Menu

#7 build from source failed - r497

Future
closed
nobody
None
2015-11-27
2015-11-06
No

tried to compile unfs3 from source (r497) on a centos7-64bit (with latest updates)
known requirements flex, bison, gcc, autoconf installed

download, unzip, run autoconf for generating configure script, then run ./configure
this fails with "config.status: error: cannot find input file: 'config.h.in'"

tried workaround:
i copied this file from an older release (0.9.22), then configure runs without error.
but then i had an error on running make. "
xdr.o: In function 'cdr_specdata3':
xdr.c:350: undefined reference to 'xdr_uint32'
xdr.o: xdr.c:352: more undefined references to 'cdr_uint32' follow

how to compile from source?

Discussion

  • Pierre Ossman

    Pierre Ossman - 2015-11-09

    You need to run the command autoheader to generate config.h.in. Grabbing an old one might result in the wrong configuration. Does the build work better this way?

     
  • Hannes Fuchs

    Hannes Fuchs - 2015-11-09

    THX - tried, (config.h.in problem solved) but then i have the same problem as before with xdr - undefinied reference to xdr_uint32

    steps: deleted config.h.in, run autoheader, check if config.h.in exists - ok, run ./configure - ok, run make - error.

    any known solution for this on centos7/EL7?

    i tried the same procedure on a centos6-32bit and this build works without big problems. just one little thing had to be done, because yywrap() in (f)lex where not found. so i added a dummy function yywrap() in lex.yy.c to skip this message.

     

    Last edit: Hannes Fuchs 2015-11-10
  • Pierre Ossman

    Pierre Ossman - 2015-11-25

    Do you have glibc-headers installed? Could you share your config.log with us?

     
  • Hannes Fuchs

    Hannes Fuchs - 2015-11-25

    glibc-headers is installed (glibc-headers-2.17-78.el7.x86_64)
    attached the config.log

    stderr of make:
    xdr.o: In function xdr_uid3': /root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:294: undefined reference toxdr_uint32'
    xdr.o: In function xdr_gid3': /root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:301: undefined reference toxdr_uint32'
    xdr.o: In function xdr_mode3': /root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:322: undefined reference toxdr_uint32'
    xdr.o: In function xdr_count3': /root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:329: undefined reference toxdr_uint32'
    xdr.o: In function xdr_specdata3': /root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:350: undefined reference toxdr_uint32'
    xdr.o:/root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:352: more undefined references to `xdr_uint32' follow
    collect2: Fehler: ld gab 1 als Ende-Status zurück
    make: *** [unfsd] Fehler 1

     
  • Pierre Ossman

    Pierre Ossman - 2015-11-25

    Sorry, I wasn't looking at the errors close enough. This was a linker error rather than a compile error.

    Your config.log shows that it has found xdr_uint32_t() and set the defines properly. So I wonder if your config.h is incorrect. Could you attach that as well?

     
  • Hannes Fuchs

    Hannes Fuchs - 2015-11-26

    attached (newly generated, but same error: rm config.h*; autoheader; ./configure; make)

    maybe the problem ist the new glibc of EL7? glibc-2.17
    similar problem: https://sourceforge.net/p/open-vm-tools/mailman/message/29219113/

     
  • Pierre Ossman

    Pierre Ossman - 2015-11-26

    That other bug is definitely interesting, but it isn't what's going on here. xdr_uint32 is an internal function in unfs3 in this case, but it isn't getting included.

    Did you do a full rebuild after fixing config.h.in? You might be trying to link an old broken xdr.o.

     
  • Hannes Fuchs

    Hannes Fuchs - 2015-11-26

    aaah, thx that was the trick. after "make clean" and rerun make it works.

     
  • Pierre Ossman

    Pierre Ossman - 2015-11-27
    • status: open --> closed