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?
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?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
Do you have glibc-headers installed? Could you share your config.log with us?
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 to
xdr_uint32'xdr.o: In function
xdr_gid3': /root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:301: undefined reference to
xdr_uint32'xdr.o: In function
xdr_mode3': /root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:322: undefined reference to
xdr_uint32'xdr.o: In function
xdr_count3': /root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:329: undefined reference to
xdr_uint32'xdr.o: In function
xdr_specdata3': /root/rpmbuild/SOURCES/unfs3-0.9.22.497/xdr.c:350: undefined reference to
xdr_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
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?
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/
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.
aaah, thx that was the trick. after "make clean" and rerun make it works.