|
This weekend I had some time to experiment with the MXE builds. Here's a progress report.
When following the "official" procedure (make dist etc, see https://mailman.cae.wisc.edu/pipermail/octave-maintainers/2013-March/032395.html a Windows build of Octave is produced which -AFAICS- works without obvious glitches (e.g., the stability of e.g. the GUI isn't worse than under Linux, and I find the GUI already quite acceptable). llvm is built, but not used (yet?). John reported about (unspecified) problems with Java support. So I tried to get llvm and Java into the build, but that gives some -for me- untractable problems and build errors. Both Java and llvm should be enabled by editing mxe-octave/src/octave.mk and adding in the lines: --enable-jit \ --with-java-homedir=/mnt/winxp/Programs/Java/jdk1.6.0_33 \ --with-java-libdir=/mnt/winxp/Programs/Java/jdk1.6.0_33/jre/bin/client \ in the relevant configure command section. (Note the Java entries are valid for my (Windows/Linux/eComstation (OS/2) multiboot) machine and must point to a Windows-based Java installation. The location of jvm.dll on Windows wasn't obvious for for at least MXE configure so must be manually added). Now, if either or both of llvm and Java are enabled the build errors out (see bottom of mail). To me it looks like there's corruption (overflow?) - but who am I. Yet with just Java, or just llvm, or both enabled, the location where the build errors out looks consistent AFAICS. If I remove the extra lines in octave.mk the build proceeds normally. Philip : libtool: link: i686-pc-mingw32-g++ -shared -nostdlib /home/philip/devel/octdev/mxe/mxe-octave/usr/lib/gcc/i686-pc-mingw32/4.7.2/../../../../i686-pc-mingw32/lib/dllcrt2.o /home/philip/devel/octdev/mxe/mxe-octave/usr/lib/gcc/i686-pc-mingw32/4.7.2/crtbegin.o dldfcn/.libs/dldfcn___delaunayn___la-__delaunayn__.o -L/home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/.build/liboctave/.libs ./.libs/liboctinterp.dll.a -L/home/philip/devel/octdev/mxe/mxe-octave/usr/i686-pc-mingw32/lib -L/home/philip/devel/octdev/mxe/mxe-octave/tmp-gcc/gcc-4.7.2.build/i686-pc-mingw32/winsup/mingw -L/home/philip/devel/octdev/mxe/mxe-octave/tmp-gcc/gcc-4.7.2.build/i686-pc-mingw32/winsup/w32api/lib -L/home/philip/devel/octdev/mxe/mxe-octave/usr/lib/gcc/i686-pc-mingw32/4.7.2 /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/.build/liboctave/.libs/liboctave.dll.a /home/philip/devel/octdev/mxe/mxe-octave/usr/i686-pc-mingw32/lib/libhdf5.dll.a -lz /home/philip/devel/octdev/mxe/mxe-octave/usr/i686-pc-mingw32/lib/libfontconfig.dll.a -lfreetype /home/philip/devel/octdev/mxe/mxe-octave/usr/i686-pc-mingw32/lib/libexpat.dll.a -lopengl32 -lglu32 ../liboctave/.libs/liboctave.dll.a -lcholmod -lumfpack -lamd -lcamd -lcolamd -lccolamd -lcxsparse -larpack /home/philip/devel/octdev/mxe/mxe-octave/usr/i686-pc-mingw32/lib/libqrupdate.dll.a /home/philip/devel/octdev/mxe/mxe-octave/usr/i686-pc-mingw32/lib/libfftw3.dll.a /home/philip/devel/octdev/mxe/mxe-octave/usr/i686-pc-mingw32/lib/libfftw3f.dll.a -llapack -lblas -lreadline -ltermcap /home/philip/devel/octdev/mxe/mxe-octave/usr/i686-pc-mingw32/lib/libpcre.dll.a /home/philip/devel/octdev/mxe/mxe-octave/usr/lib/gcc/i686-pc-mingw32/4.7.2/libgfortran.dll.a /home/philip/devel/octdev/mxe/mxe-octave/usr/lib/gcc/i686-pc-mingw32/4.7.2/libquadmath.dll.a /home/philip/devel/octdev/mxe/mxe-octave/usr/i686-pc-mingw32/lib/libqhull.dll.a -luser32 -lkernel32 -lgdi32 -lws2_32 -luser32 -lkernel32 -L/home/philip/devel/octdev/mxe/mxe-octave/usr/lib/gcc/i686-pc-mingw32/4.7.2/../../../../i686-pc-mingw32/lib /home/philip/devel/octdev/mxe/mxe-octave/usr/lib/gcc/i686-pc-mingw32/4.7.2/libstdc++.dll.a -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt /home/philip/devel/octdev/mxe/mxe-octave/usr/lib/gcc/i686-pc-mingw32/4.7.2/crtend.o -mieee-fp -O2 -pthread -pthread -o dldfcn/.libs/__delaunayn__.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker dldfcn/.libs/__delaunayn__.dll.a dldfcn/.libs/__dsearchn__.o: In function `~octave_base_value': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/octave-value/ov-base.h:211: undefined reference to `vtable for octave_base_value' dldfcn/.libs/__dsearchn__.o: In function `G__dsearchn__': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__dsearchn__.cc:37: undefined reference to `check_version(std::string const&, std::string const&)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__dsearchn__.cc:37: undefined reference to `error_state' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__dsearchn__.cc:37: undefined reference to `octave_dld_function::create(octave_value_list (*)(octave_value_list const&, int), octave_shlib const&, std::string const&, std::string const&)' dldfcn/.libs/__dsearchn__.o: In function `Z13F__dsearchn__RK17octave_value_listi': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__dsearchn__.cc:48: undefined reference to `print_usage()' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__dsearchn__.cc:55: undefined reference to `error_state' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__dsearchn__.cc:58: undefined reference to `error(char const*, ...)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__dsearchn__.cc:104: undefined reference to `octave_value::octave_value(ColumnVector const&)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__dsearchn__.cc:105: undefined reference to `octave_value::octave_value(ColumnVector const&)' dldfcn/.libs/__dsearchn__.o: In function `ZN17octave_value_list6resizeEiRK12octave_value': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/interp-core/oct-obj.h:96: undefined reference to `Array<octave_value>::resize(dim_vector const&, octave_value const&)' dldfcn/.libs/__dsearchn__.o: In function `octave_base_value': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/octave-value/ov-base.h:207: undefined reference to `vtable for octave_base_value' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/octave-value/ov-base.h:207: undefined reference to `vtable for octave_base_value' dldfcn/.libs/__dsearchn__.o:__dsearchn__.cc:(.rdata$_ZTV5ArrayI12octave_valueE[__ZTV5ArrayI12octave_valueE]+0x10): undefined reference to `Array<octave_value>::resize_fill_value() const' dldfcn/.libs/dldfcn___delaunayn___la-__delaunayn__.o: In function `~octave_base_value': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/octave-value/ov-base.h:211: undefined reference to `vtable for octave_base_value' dldfcn/.libs/dldfcn___delaunayn___la-__delaunayn__.o: In function `G__delaunayn__': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:67: undefined reference to `check_version(std::string const&, std::string const&)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:67: undefined reference to `error_state' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:67: undefined reference to `octave_dld_function::create(octave_value_list (*)(octave_value_list const&, int), octave_shlib const&, std::string const&, std::string const&)' dldfcn/.libs/dldfcn___delaunayn___la-__delaunayn__.o: In function `Z14F__delaunayn__RK17octave_value_listi': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:79: undefined reference to `octave_value::octave_value(double)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:84: undefined reference to `print_usage()' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:196: undefined reference to `error(char const*, ...)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:206: undefined reference to `warning(char const*, ...)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:192: undefined reference to `octave_value::octave_value(Matrix const&, MatrixType const&)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:216: undefined reference to `octave_value::octave_value(RowVector const&)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:168: undefined reference to `error(char const*, ...)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:145: undefined reference to `error(char const*, ...)' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/dldfcn/__delaunayn__.cc:115: undefined reference to `error(char const*, ...)' dldfcn/.libs/dldfcn___delaunayn___la-__delaunayn__.o: In function `ZN17octave_value_list6resizeEiRK12octave_value': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/interp-core/oct-obj.h:96: undefined reference to `Array<octave_value>::resize(dim_vector const&, octave_value const&)' dldfcn/.libs/dldfcn___delaunayn___la-__delaunayn__.o: In function `octave_base_value': /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/octave-value/ov-base.h:207: undefined reference to `vtable for octave_base_value' /home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/libinterp/octave-value/ov-base.h:207: undefined reference to `vtable for octave_base_value' dldfcn/.libs/dldfcn___delaunayn___la-__delaunayn__.o:__delaunayn__.cc:(.rdata$_ZTV5ArrayI12octave_valueE[__ZTV5ArrayI12octave_valueE]+0x10): undefined reference to `Array<octave_value>::resize_fill_value() const' collect2: error: ld returned 1 exit status collect2: error: ld returned 1 exit status make[5]: *** [dldfcn/__dsearchn__.la] Error 1 make[5]: *** Waiting for unfinished jobs.... make[5]: *** [dldfcn/__delaunayn__.la] Error 1 make[5]: Leaving directory `/home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/.build/libinterp' make[4]: *** [install] Error 2 make[4]: Leaving directory `/home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/.build/libinterp' make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory `/home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/.build' make[2]: *** [install] Error 2 make[2]: Leaving directory `/home/philip/devel/octdev/mxe/mxe-octave/tmp-octave/octave-3.7.2+/.build' make[1]: *** [build-only-octave] Error 2 make[1]: Leaving directory `/home/philip/devel/octdev/mxe/mxe-octave' real 31m47.040s user 55m37.141s sys 2m17.182s [philip@deskprn 20130303_224605]$ |
| Powered by Nabble | Edit this page |
