delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/05/31/06:00:11

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=2.5 required=5.0 tests=AWL,BAYES_00,TW_UU,T_RP_MATCHES_RCVD
X-Spam-Check-By: sourceware.org
From: "Ingram, Clyde" <clyde DOT ingram AT hp DOT com>
To: "cygwin AT cygwin DOT com" <cygwin AT cygwin DOT com>
Date: Tue, 31 May 2011 09:58:02 +0000
Subject: Making gvim with Make_cyg.mak: /usr/bin/ld: cannot find crt2.o, -lmingw32, -lmoldname, etc.
Message-ID: <468073C26B25C94DB432334038835B361D63AFCD5B@GVW1349EXA.americas.hpqcorp.net>
MIME-Version: 1.0
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id p4VA07o8019484

Hi,

I am trying to compile vim 7.3.206 from source on Cygwin, according to the advice on:
http://users.skynet.be/antoine.mechelynck/vim/compile.htm

but get the following linker failures:

~/vim/build/vim73/src
# make  -f Make_cyg.mak ARCH=i686  PERL_VER=512 DYNAMIC_PERL=no GUI=yes
gcc -O3 -fomit-frame-pointer -freg-struct-return -fno-strength-reduce -DWIN32 -DHAVE_PATHDEF -DFEAT_BIG -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DDYNAMIC_GETTEXT -DDYNAMIC_ICONV -DFEAT_MBYTE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 -DFEAT_CLIPBOARD -march=i686 -Iproto -s -mno-cygwin -o gvim.exe gobj/blowfish.o gobj/buffer.o gobj/charset.o gobj/diff.o gobj/digraph.o gobj/edit.o gobj/eval.o gobj/ex_cmds.o gobj/ex_cmds2.o gobj/ex_docmd.o gobj/ex_eval.o gobj/ex_getln.o gobj/fileio.o gobj/fold.o gobj/getchar.o gobj/hardcopy.o gobj/hashtab.o gobj/main.o gobj/mark.o gobj/memfile.o gobj/memline.o gobj/menu.o gobj/message.o gobj/misc1.o gobj/misc2.o gobj/move.o gobj/mbyte.o gobj/normal.o gobj/ops.o gobj/option.o gobj/os_win32.o gobj/os_mswin.o gobj/pathdef.o gobj/popupmnu.o gobj/quickfix.o gobj/regexp.o gobj/screen.o gobj/search.o gobj/sha256.o gobj/spell.o gobj/syntax.o gobj/tag.o gobj/term.o gobj/ui.o gobj/undo.o gobj/version.o gobj/vimrc.o gobj/window.o gobj/if_cscope.o gobj/netbeans.o gobj/gui.o gobj/gui_w32.o gobj/gui_beval.o gobj/os_w32exe.o  -luuid -lole32 -lwsock32 -mwindows -lcomctl32 -lversion
/usr/bin/ld: cannot find crt2.o: No such file or directory
/usr/bin/ld: cannot find -lmingw32
/usr/bin/ld: cannot find -lmoldname
/usr/bin/ld: cannot find -lmingwex
/usr/bin/ld: cannot find -lmsvcrt
/usr/bin/ld: cannot find -lmingw32
/usr/bin/ld: cannot find -lmingw32
/usr/bin/ld: cannot find -lmoldname
/usr/bin/ld: cannot find -lmingwex
/usr/bin/ld: cannot find -lmsvcrt
collect2: ld returned 1 exit status
make: *** [gvim.exe] Error 1

These are the files in /usr/lib/mingw:

~/vim/build/vim73/src
# ls /usr/lib/mingw
CRT_fp10.o    dllcrt1.o      libmingwex.a        libmoldname80.a   libmsvcr71d.a
CRT_fp8.o     dllcrt2.o      libmingwthrd.a      libmoldname80d.a  libmsvcr80.a
CRT_noglob.o  gcrt0.o        libmingwthrd_old.a  libmoldname90.a   libmsvcr80d.a
binmode.o     libcoldname.a  libmoldname.a       libmoldname90d.a  libmsvcr90.a
crt1.o        libcrtdll.a    libmoldname70.a     libmoldnamed.a    libmsvcr90d.a
crt2.o        libgmon.a      libmoldname70d.a    libmsvcr70.a      libmsvcrt.a
crtmt.o       libm.a         libmoldname71.a     libmsvcr70d.a     libmsvcrtd.a
crtst.o       libmingw32.a   libmoldname71d.a    libmsvcr71.a      txtmode.o

How should I change the "make" command line to so that these files libraries are found?
I tried setting LD_LIBRARY_PATH:

# LD_LIBRARY_PATH=/usr/lib/mingw make  -f Make_cyg.mak ARCH=i686  PERL_VER=512 DYNAMIC_PERL=no GUI=yes

No difference.

The file Make_cyg.mak uses EXTRA_LIBS, so I tried setting that following the comment in the file:

# USEDLL        no or yes: set to yes to use the Runtime library DLL (no)
#               For USEDLL=yes the cygwin1.dll is required to run Vim.
#               "no" does not work with latest version of Cygwin, use
#               Make_ming.mak instead.  Or set CC to gcc-3 and add
#               -L/lib/w32api to EXTRA_LIBS.

# EXTRA_LIBS="-L/usr/lib/w32api" make -f Make_cyg.mak ARCH=i686 PERL_VER=512 DYNAMIC_PERL=no GUI=yes USEDLL=yes

But this fails with trace starting:

gcc -O3 -fomit-frame-pointer -freg-struct-return -fno-strength-reduce -DWIN32 -DHAVE_PATHDEF -DFEAT_BIG -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DDYNAMIC_GETTEXT -DDYNAMIC_ICONV -DFEAT_MBYTE -DFEAT_MBYTE_IME -DDYNAMIC_IME -D_MAX_PATH=256 -D__CYGWIN__ -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 -DFEAT_CLIPBOARD -march=i686 -Iproto -s -o gvim.exe gobj/blowfish.o gobj/buffer.o gobj/charset.o gobj/diff.o gobj/digraph.o gobj/edit.o gobj/eval.o gobj/ex_cmds.o gobj/ex_cmds2.o gobj/ex_docmd.o gobj/ex_eval.o gobj/ex_getln.o gobj/fileio.o gobj/fold.o gobj/getchar.o gobj/hardcopy.o gobj/hashtab.o gobj/main.o gobj/mark.o gobj/memfile.o gobj/memline.o gobj/menu.o gobj/message.o gobj/misc1.o gobj/misc2.o gobj/move.o gobj/mbyte.o gobj/normal.o gobj/ops.o gobj/option.o gobj/os_win32.o gobj/os_mswin.o gobj/pathdef.o gobj/popupmnu.o gobj/quickfix.o gobj/regexp.o gobj/screen.o gobj/search.o gobj/sha256.o gobj/spell.o gobj/syntax.o gobj/tag.o gobj/term.o gobj/ui.o gobj/undo.o gobj/version.o gobj/vimrc.o gobj/window.o gobj/if_cscope.o gobj/netbeans.o gobj/gui.o gobj/gui_w32.o gobj/gui_beval.o gobj/os_w32exe.o  -luuid -lole32 -L/usr/lib/w32api -lwsock32 -mwindows -lcomctl32 -lversion
gobj/buffer.o:buffer.c:(.text+0x2d7d): undefined reference to `__isctype'
gobj/buffer.o:buffer.c:(.text+0x2e7d): undefined reference to `__imp___pctype'
gobj/buffer.o:buffer.c:(.text+0x335f): undefined reference to `__flsbuf'
gobj/buffer.o:buffer.c:(.text+0x539d): undefined reference to `__isctype'

and ending later with:

gobj/gui_w32.o:gui_w32.c:(.text+0x67d7): undefined reference to `__isctype'
gobj/gui_w32.o:gui_w32.c:(.text+0x6a17): undefined reference to `__isctype'
collect2: ld returned 1 exit status
make: *** [gvim.exe] Error 1

Note, I earlier managed to compile vim to work in mintty with the UNIX configure/make method:

$ ./configure --with-tlib=libncurses  --enable-perlinterp=yes
$ make
$ make check
$ make install

This created the following files in /usr/local/bin:

1474048 May 30 02:44 vim.exe
   2084 May 30 02:44 vimtutor
      7 May 30 02:45 ex -> vim.exe
      7 May 30 02:45 view -> vim.exe
      7 May 30 02:45 rvim -> vim.exe
      7 May 30 02:45 rview -> vim.exe
      7 May 30 02:45 vimdiff -> vim.exe
  12288 May 30 02:45 xxd.exe

I'd be grateful for advice on compiling gvim under cygwin to work as a Windows application.

Regards,
Clyde

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019