I have reported the problem described below to the octave-maintainers
list today. Is this a gnulib problem? It was confirmed for MSVC as well.
http://octave.1599824.n4.nabble.com/MinGW-problem-with-libgnu-td4080214.html
--------------------------------
I try to buid a very recent octave tip on mingw (32bit)
Today, I have updated gnulib as well ran into the following build problem:
I have used the following commands:
$ ./autogen.sh > LOG.conf 2>&1;./configure
LDFLAGS="-L/usr/local/octmgw32/lib"
CPPFLAGS=-I/usr/local/octmgw32/include --disable-docs
lt_cv_deplibs_check_metho
d='pass_all' GHOSTSCRIPT=gswin32.exe >> LOG.conf 2>&1;make > LOG 2>&1
after a while I got:
libtool: link: rm -fr .libs/libcruft.dll.a .libs/libcruft.la.lnkscript
libtool: link: g++ -shared -nostdlib
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../..
/../dllcrt2.o c:/mingw/bin/../lib/gcc/mingw32/4.5.2/crtbegin.o
.libs\\libcruft.l
a.lnkscript -Wl,--whole-archive ./.libs/libranlib.a
../libgnu/.libs/libgnu.a -Wl
,--no-whole-archive -L/usr/local/octmgw32/lib -luser32 -lkernel32
-luser32 -lke
rnel32 -llapack -lblas -LC:/MinGW/msys/1.0/local/octmgw32/lib
-Lc:/mingw/bin/../
lib/gcc/mingw32/4.5.2 -Lc:/mingw/bin/../lib/gcc
-Lc:/mingw/bin/../lib/gcc/mingw3
2/4.5.2/../../../../mingw32/lib
-Lc:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../..
-L/mingw/lib /mingw/lib/gcc/mingw32/4.5.2/libgfortran.dll.a
-L/projetos/gcc/bld
/452/build/mingw32/winsup/mingw
-L/projetos/gcc/bld/452/build/mingw32/winsup/w32
api/lib -lmingw32 -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32
-ladvapi32 -
lshell32 -luser32 -lkernel32 -luser32 -lkernel32 -liberty -lpthread
-luser32 -lk
ernel32 -lgdi32 -lws2_32 -luser32 -lkernel32
/mingw/lib/gcc/mingw32/4.5.2/libstd
c++.dll.a -L/projetos/gcc/bld/452/build/mingw32/libstdc++-v3/src
-L/projetos/gcc
/bld/452/build/mingw32/libstdc++-v3/src/.libs -lmingw32 -lgcc_s -lgcc
-lmoldname
-lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32
-lgcc_s -
lgcc -lmoldname -lmingwex -lmsvcrt
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/crtend.
o -O2 -mieee-fp -O2 -O2 -o .libs/libcruft-0.dll
-Wl,--enable-auto-image-base
-Xlinker --out-implib -Xlinker .libs/libcruft.dll.a
Creating library file:
.libs/libcruft.dll.a../libgnu/.libs/libgnu.a(getcwd.o): I
n function `rpl_getcwd':
C:\MinGW\msys\1.0\home\kai\hg-octave\octave\libgnu/getcwd.c:248:
undefined refer
ence to `fdopendir'
C:\MinGW\msys\1.0\home\kai\hg-octave\octave\libgnu/getcwd.c:302:
undefined refer
ence to `fstatat
'
collect2: ld returned 1 exit status
make[2]: *** [libcruft.la] Error 1
make[2]: Leaving directory `/home/kai/hg-octave/octave/libcruft'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/kai/hg-octave/octave'
make: *** [all] Error 2
If I do
nm libgnu/.libs/libgnu.a | grep 'fdopendir'
U _fdopendir
$ nm libgnu/.libs/libgnu.a | grep 'fstatat'
fstatat.o:
00000000 T _rpl_fstatat
U _fstatat
it seems that fdopendir is not there. If look at the compile log for
libgnu, I see fdopendir is not linked in but fstatat is.
libtool: link: ar cru .libs/libgnu.a .libs/c-ctype.o
.libs/c-strcasecmp.o .libs/
c-strncasecmp.o .libs/cloexec.o .libs/md5.o .libs/dirname-lgpl.o
.libs/basename-
lgpl.o .libs/stripslash.o .libs/exitfail.o .libs/fd-hook.o
.libs/filemode.o .lib
s/filenamecat-lgpl.o .libs/freading.o .libs/localcharset.o
.libs/malloca.o .libs
/nproc.o .libs/openat-die.o .libs/progname.o .libs/save-cwd.o
.libs/sockets.o .l
ibs/strftime.o .libs/strnlen1.o .libs/tempname.o .libs/tmpdir.o
.libs/dup-safer.
o .libs/fd-safer.o .libs/pipe-safer.o .libs/asnprintf.o
.libs/canonicalize-lgpl.
o .libs/chdir-long.o .libs/close.o .libs/closedir.o .libs/dirfd.o
.libs/dup2.o .
libs/error.o .libs/fchdir.o .libs/fclose.o .libs/fcntl.o .libs/fflush.o
.libs/fn
match.o .libs/fopen.o .libs/fpurge.o .libs/fseek.o .libs/fseeko.o
.libs/fstat.o
.libs/fstatat.o .libs/ftell.o .libs/ftello.o .libs/getcwd.o
.libs/getcwd-lgpl.o
.libs/getdtablesize.o .libs/gethostname.o .libs/getlogin_r.o
.libs/getopt.o .lib
s/getopt1.o .libs/glob.o .libs/isnanl.o .libs/link.o .libs/lseek.o
.libs/malloc.
o .libs/mbrtowc.o .libs/mbsinit.o .libs/mbsrtowcs.o
.libs/mbsrtowcs-state.o .lib
s/mempcpy.o .libs/memrchr.o .libs/mkdir.o .libs/mkfifo.o .libs/mkstemp.o
.libs/m
ktime.o .libs/nanosleep.o .libs/open.o .libs/openat.o
.libs/openat-proc.o .libs/
opendir.o .libs/printf-args.o .libs/printf-parse.o .libs/readlink.o
.libs/reallo
c.o .libs/rename.o .libs/rmdir.o .libs/select.o .libs/sigaction.o
.libs/sigprocm
ask.o .libs/sleep.o .libs/stat.o .libs/strdup.o .libs/strerror.o
.libs/strerror-
override.o .libs/strptime.o .libs/symlink.o .libs/time_r.o .libs/times.o
.libs/t
mpfile.o .libs/unlink.o .libs/vasnprintf.o .libs/vsnprintf.o
libtool: link: ranlib .libs/libgnu.a
But on the other hand I have:
$ ls -l libgnu/.libs/fdopendir.o
-rw-r--r-- 1 kai Administratoren 5923 Nov 16 20:50 libgnu/.libs/fdopendir.o
kai@KH_Lap ~/hg-octave/octave
$ ls -l libgnu/.libs/fstatat.o
-rw-r--r-- 1 kai Administratoren 5413 Nov 17 13:16 libgnu/.libs/fstatat.o