SourceForge has been redesigned. Learn more.
Close

#62 Does not build on cygwin

open
nobody
None
5
2014-08-01
2012-03-21
No

mlterm does not build on cygwin (tried 3.0.11 and previously 3.0.8)

In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/windows.h:87:0,
from x_display.c:110:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:255:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:270:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:291:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:316:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:571:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:594:8: error: two or more data types in declaration specifiers
Makefile:76: recipe for target `x_display.o' failed

Discussion

  • Araki Ken

    Araki Ken - 2012-03-24

    Thanks for your report.
    I think an attached patch will fix this problem.

     
  • Araki Ken

    Araki Ken - 2012-03-24
    • status: open --> open-fixed
     
  • Thomas Wolff

    Thomas Wolff - 2012-03-26

    With the patch it builds. It doesn't work, however. As soon as it is asked to display a UTF-8 character, the mlterm window vanishes, then reapperas after a moment. This repeats a few dozen times (!) until it finally crashes.

     
  • Araki Ken

    Araki Ken - 2012-03-30

    Thanks.
    I think an attached patch will stop segfault in using utf8.
    But if the problem is fixed by this patch, mkf loadable
    dlls doesn't seem to be installed to correct directory
    ($(libdir)/mlterm or the same directory where mlterm.exe is installed),
    so UTF-8 characters might not be correctly displayed by
    this patch alone.

     
  • Thomas Wolff

    Thomas Wolff - 2012-04-02

    OK, no crash anymore (and UTF-8 is displaed).

    However, bidi does not work, although 'configure' output finally includes:
    BiDi rendering (Fribidi) : yes
    Indic rendering : yes

    Despite this, there are some occurences of "fribidi=no" in config.log, and no warning. Weird.

     
  • Araki Ken

    Araki Ken - 2012-05-13

    configure script didn't output if fribidi library is found or not,
    but output if --enable-fribidi is specified or not.
    I fixed this problem. Thanks.

    Then, does "pkg-config fribidi --modversion" normally output the version
    number of it ?
    configure script uses pkg-config to check if fribidi is installed or not.

     
  • Thomas Wolff

    Thomas Wolff - 2012-05-14

    pkg-config: command not found
    Maybe that's the problem?

     
  • Araki Ken

    Araki Ken - 2012-05-17

    Install Devel/pkg-config and Text/libfribidi-devel by cygwin setup.exe.

     
  • Thomas Wolff

    Thomas Wolff - 2012-05-18

    Oops, I was confused and mixed this up with my parallel report about not building on SunOS; pkg-config *was* installed on cygwin:
    ~: pkg-config fribidi --modversion
    0.19.2

     
  • Araki Ken

    Araki Ken - 2012-05-19

    Could you test mlterm-3.1.2 which fixed the problem I commented at 2012-05-13 and tell me what configure script says ?
    And after building, is there mlterm-3.1.2/mlterm/libctl/.libs/cygctl_bidi.dll created and installed to $(libdir)/mlterm/ ?

     
  • Thomas Wolff

    Thomas Wolff - 2012-05-21

    Ah. Oh.
    I wasn't aware I should have installed first. I tried to run mlterm directly after make (main/mlterm) and it doesn't find those libraries then.
    Now bidi works fine, sorry.

    I got one error message by make install:
    libtool: install: warning: relinking `libim-kbd.la'
    (cd /cygdrive/d/home/opt/mlterm-3.1.2/inputmethod/kbd; /bin/sh ../../libtool --mode=relink gcc -L/cygdrive/d/home/usr/lib -o libim-kbd.la im_kbd.lo -rpath /usr/local/lib/mlterm -module -avoid-version -no-undefined -L../../kiklib/src -lkik -L../../mkf/lib -lmkf )
    /bin/mv: cannot stat `libim-kbd.dll.a': No such file or directory
    libtool: install: error: relink `libim-kbd.la' with the above command before installing it
    Makefile:51: recipe for target `install' failed
    make[1]: *** [install] Error 1
    make[1]: Leaving directory `/cygdrive/d/home/opt/mlterm-3.1.2/inputmethod/kbd'
    Makefile:9: recipe for target `install' failed

    One other note (might be a separate report):
    make install prefix=$HOME/usr
    does not work, it refuses to install:
    libtool: install: error: cannot install `libmkf.la' to a directory not ending in /usr/local/lib

    This is not good, installation should not require to use /usr/local. Especially on cygwin, e.g., this hierarchy is not normally used at all.

     
  • Thomas Wolff

    Thomas Wolff - 2012-05-21
    • status: open-fixed --> open
     
  • Araki Ken

    Araki Ken - 2012-06-01

    > I got one error message by make install:

    I coldn't still find the cause, sorry.

    > libtool: install: error: cannot install `libmkf.la' to a directory not ending in /usr/local/lib

    This is a specification of libtool.
    (Following is a comment in libtool.
    # Don't allow the user to place us outside of our expected
    # location b/c this prevents finding dependent libraries that
    # are installed to the same prefix.)

    If you want to install to a directory except /usr/local,
    please specify --prefix=... to configure script.
    (I think "cp .libs/*.dll [a directory you want to install to]"
    instead of "make install" will work, though.)

     
  • Thomas Wolff

    Thomas Wolff - 2013-09-15

    Retried with 3.2.2:
    Although there exists the precompiled cygwin binary,
    I can't build it from the source package:
    configure: error: C++ preprocessor "/lib/cpp" fails sanity check
    (tried on 2 systems).

     
  • Araki Ken

    Araki Ken - 2013-09-16

    Just in case, do you install gcc-g++ package which is necessary to build mlterm ?

     
  • Thomas Wolff

    Thomas Wolff - 2013-09-17

    Right, that fixed configure. (I wonder, by the way, why bidi is disabled by default...)

    Compilation doesn't work, though;

    cygwin 32 bit:
    gcc -I../../kiklib/include -g -O2 -I/usr/include/fribidi -I/usr/local/include -o .libs/mlimgloader .libs/gdiplus.o -L/cygdrive/d/home/usr/lib ../../kiklib/src/.libs/libkik.dll.a -L/usr/local/lib -L/usr/local/lib
    .libs/gdiplus.o: In function create_cardinals_from_file': /cygdrive/d/home/downloads/32/mlterm-3.2.2/tool/mlimgloader/gdiplus.cpp:77: undefined reference toGdiplusStartup@12'
    ... (lots more)

    cygwin 64 bit:
    .libs/kik_dlfcn_win32.o: In function kik_dl_open': /cygdrive/d/home/downloads/64/mlterm-3.2.2/kiklib/src/kik_dlfcn_win32.c:53: undefined reference tocygwin_conv_to_win32_path'
    /cygdrive/d/home/downloads/64/mlterm-3.2.2/kiklib/src/kik_dlfcn_win32.c:53:(.text+0x6e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol cygwin_conv_to_win32_path' /cygdrive/d/home/downloads/64/mlterm-3.2.2/kiklib/src/kik_dlfcn_win32.c:78: undefined reference tocygwin_conv_to_win32_path'
    /cygdrive/d/home/downloads/64/mlterm-3.2.2/kiklib/src/kik_dlfcn_win32.c:78:(.text+0xcc): relocation truncated to fit: R_X86_64_PC32 against undefined symbol cygwin_conv_to_win32_path' collect2: error: ld returned 1 exit status Makefile:94: recipe for targetlibkik.la' failed

     
  • Thomas Wolff

    Thomas Wolff - 2013-09-20

    Result on cygwin 64:
    ../xwindow/libxwindow.a(x_dnd.o): In function x_dnd_filter_event': /home/towo/arakiken-mlterm-2651893d8616/xwindow/../xwindow/win32/x_dnd.c:93: undefined reference tocygwin_conv_to_posix_path'
    /home/towo/arakiken-mlterm-2651893d8616/xwindow/../xwindow/win32/x_dnd.c:93:(.text+0x13b): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cygwin_conv_to_posix_path'

    Google reveals that this function was deprecated.

     
  • Thomas Wolff

    Thomas Wolff - 2013-09-20

    Result on cygwin 32:
    compiles well now, but runs with some problems:
    By default, mlterm selects an unsuitable font (looks like Fixedsys) which doesn't even containt the € sign. I think it should at least default to Courier New, or check whether something like Lucida Console or even DejaVu Sans Mono is available.
    On exit (or ^D in shell), mlterm does not just terminate but aborts, with a stackdump (of size 40 bytes).
    Question: How can I check Indic support? I would at least need a fixed-width Indic font but couldn't find any for download.
    Further question: Would you like mlterm as a regular cygwin package?

     
  • Araki Ken

    Araki Ken - 2013-09-21

    By default, mlterm selects an unsuitable font (looks like Fixedsys) which doesn't even containt the € sign. I think it should at least default to Courier New, or check whether something like Lucida Console or even DejaVu Sans Mono is available.

    I fixed to use Courier New by default.

    On exit (or ^D in shell), mlterm does not just terminate but aborts, with a stackdump (of size 40 bytes).

    I couldn't reproduce it on Cygwin 1.7.22 / Windows 7 starter.
    Will you send me the mlterm binaries in $PREFIX/bin with debug symbols ?

    Question: How can I check Indic support? I would at least need a fixed-width Indic font but couldn't find any for download.

    I'm sorry but it's not easy.

    1) Download http://mlterm.sf.net/DVYG0ntt.ttf and install it.
    2) Add a following line to ~/.mlterm/font
    ISCII_HINDI = DV-TTYogesh 23
    3) ./configure --with-gui=win32 --enable-ind ... ; make ; make install
    4) Start mlterm with following options.
    mlterm -E utf8 -w 16 --im=kbd:isciihindi --lsp 3 --bi=false --ind

    Further question: Would you like mlterm as a regular cygwin package?
    OK. I'll try it. (I've never make a cygwin package.)

     
  • Araki Ken

    Araki Ken - 2013-09-21

    Result on cygwin 64:

    Thanks. I'm sorry but I didn't notice it.

     

Log in to post a comment.