|
From: | Philip Nienhuis |
Subject: | Re: mxe-octave: build fails with ".../unistd-wrappers.h:56:8: error: 'pid_t' does not name a type" |
Date: | Wed, 22 Jun 2016 21:26:40 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux i686 on x86_64; rv:43.0) Gecko/20100101 Firefox/43.0 SeaMonkey/2.40 |
John W. Eaton wrote:
On 06/21/2016 12:36 PM, Philip Nienhuis wrote:John W. Eaton wrote:On 06/20/2016 05:56 PM, Philip Nienhuis wrote:Exact same error :-( g++ -o src/i686-w64-mingw32-mkoctfile -Dgnulib='' -Doctave_idx_type=int -I. -I/home/philip/devel/octdev/mxe/mxe_32b_20160620/tmp-default-octave/octave-4.1.0+ -O2 -g -I/home/philip/devel/octdev/mxe/mxe_32b_20160620/tmp-default-octave/octave-4.1.0+/src src/i686-w64-mingw32-mkoctfile.cc src/i686-w64-mingw32-mkoctfile.cc:38:29: fatal error: unistd-wrappers.h: No such file or directory #include "unistd-wrappers.h" ^ compilation terminated.What configure options did you use for mxe-octave?The usual ones for me: --enable-octave=default --enable-windows-64 --enable-devel-tools --enable-binary-packages. (For the 32-bit build --enable-windows-64 was of course dropped.) BTW I tried the gross kludge of copying over initially unistd-wrappers.h, later on all .h files, from liboctave/wrappers into src/. That brought the build a bit further (finally beyond missing include file errors) until other type-related errors popped up. As far as my build system insights go I surmise that once the build reaches src/, the liboctave/wrappers subdir is not in an include path. All stuff in src/ are built in the final stage, isn't it?It's the cross-compiler version of mkoctfile that is failing to build. That can't link with the version of libgnu built for Windows (it runs natively on the build system). I checked in a simple-minded fix here: http://hg.savannah.gnu.org/hgweb/octave/rev/307a2d7ff29b I didn't see the failure earlier because I wasn't building with --enable-binary-packges.
Thanks.With that patch applied, I now get "undefined reference to 'rpl_gethostname':
:libtool: link: x86_64-w64-mingw32-ranlib libgui/graphics/.libs/libgui-graphics.a libtool: link: x86_64-w64-mingw32-g++ -std=gnu++11 -pthread -Wall -W -Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -Wl,-rpath-link -Wl,/home/philip/devel/octdev/mxe/mxe_64b_20160617/usr/x86_64-w64-mingw32/lib -Wl,--export-all-symbols -o src/.libs/mkoctfile.exe src/src_mkoctfile-mkoctfile.o -L/home/philip/devel/octdev/mxe/mxe_64b_20160617/usr/x86_64-w64-mingw32/lib liboctave/wrappers/.libs/libwrappers.a libgnu/.libs/libgnu.a -lgdi32 -lws2_32 -luser32 -lkernel32 -pthread liboctave/wrappers/.libs/libwrappers.a(liboctave_wrappers_libwrappers_la-unistd-wrappers.o): In function `octave_gethostname_wrapper': /home/philip/devel/octdev/mxe/mxe_64b_20160617/tmp-default-octave/octave-4.1.0+/liboctave/wrappers/unistd-wrappers.c:320: undefined reference to `rpl_gethostname'
collect2: error: ld returned 1 exit status Makefile:14562: recipe for target 'src/mkoctfile.exe' failed make[4]: *** [src/mkoctfile.exe] Error 1Grepping to the source tree I see that rpl_gethostname comes from gnulib and seems to be defined in libgnu. That's as far as I can track it.
Philip
[Prev in Thread] | Current Thread | [Next in Thread] |