RE: Build broken -- Undefined references -- MinGW, vim with perl

2007-08-27 Fir de Conversatie Suresh Govindachar


.dll gurus,

  Latest response from Jan Dubois of ActiveState:
   On Fri, 24 Aug 2007, Suresh Govindachar wrote:
  
   Sisyphus suggested linking with C:/opt/perl/lib/CORE/perl58.lib
   (which does have the symbols in it) in the command that creates
   if_perl.o and/or in the command that builds gvim.exe (which is
   also the command that reports the missing references).
  
   But the build is supposed to use the library dynamically, rather
   than be statically linked. So perl58.dll must tell the linker
   that it will resolve the missing references at run time.
  
   Perhaps although ActiveState added code for the references, they
   are not exposing them to the linker for dynamic use via
   perl58.dll? Or is everything in a dll automatically visible?
  
   Perl_sv_2iv_flags is exported from perl58.dll.  This symbols is
   being used by virtually every Perl module containing XS code
   because the SvIV() macro will expand into a call to it:
   
 [in sv.h]
 #define SvIV(sv) (SvIOK(sv) ? SvIVX(sv) : sv_2iv(sv))
 ...
 #define sv_2iv(sv) sv_2iv_flags(sv, SV_GMAGIC)
   


--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



RE: Build broken -- Undefined references -- MinGW, vim with perl

2007-08-27 Fir de Conversatie Suresh Govindachar


  Earlier, I asked the dll gurus,

   Latest response from Jan Dubois of ActiveState:
   On Fri, 24 Aug 2007, Suresh Govindachar wrote:
  
   Sisyphus suggested linking with C:/opt/perl/lib/CORE/perl58.lib
   (which does have the symbols in it) in the command that creates
   if_perl.o and/or in the command that builds gvim.exe (which is
   also the command that reports the missing references).
  
   But the build is supposed to use the library dynamically, rather
   than be statically linked. So perl58.dll must tell the linker
   that it will resolve the missing references at run time.
  
   Perhaps although ActiveState added code for the references, they
   are not exposing them to the linker for dynamic use via
   perl58.dll? Or is everything in a dll automatically visible?
  
   Perl_sv_2iv_flags is exported from perl58.dll.  This symbols is
   being used by virtually every Perl module containing XS code
   because the SvIV() macro will expand into a call to it:
   
 [in sv.h]
 #define SvIV(sv) (SvIOK(sv) ? SvIVX(sv) : sv_2iv(sv))
 ...
 #define sv_2iv(sv) sv_2iv_flags(sv, SV_GMAGIC)

  Note:   grep -rl Perl_sv_2iv_flags  C:\opt\perl/lib/Core
  results in:

   C:\opt\perl/lib/Core/embed.h
   C:\opt\perl/lib/Core/perl58.lib
   C:\opt\perl/lib/Core/proto.h

  So added -lperl58 to the command that generates if_perl.o and to 
  the command that generates gvim.exe.  The first command reported:
  
gcc: -lperl58: linker input file unused because linking not done 

  The second command resulted in the same undefined reference error.

  Just to be sure, I added -lblah to the second command, and got the
  new error message:

 c:\opt\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: 
cannot find -lblah

  --Suresh


--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



RE: Build broken -- Undefined references -- MinGW, vim with perl

2007-08-27 Fir de Conversatie Suresh Govindachar

 

  Solved with help from Brian Dessent on the MinGW mailing list.

  Add -lperl58 at the very end (location matters) of the last command.

  --Suresh



--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Re: Build broken -- Undefined references -- MinGW, vim with perl

2007-08-27 Fir de Conversatie Tony Mechelynck

Suresh Govindachar wrote:
  
 
   Solved with help from Brian Dessent on the MinGW mailing list.
 
   Add -lperl58 at the very end (location matters) of the last command.
 
   --Suresh

This is understandable by assuming that the linker processes each object file 
or library once, in the order seen on the command line. Then any symbols 
unsatisfied so far will be looked for in the next lib at each step: and this 
implies that a symbol invoked only by a later lib won't be searched again in 
an earlier lib (unless, of course, its name is repeated further on).



Best regards,
Tony.
-- 
This message contains 78% recycled characters.

--~--~-~--~~~---~--~~
You received this message from the vim_dev maillist.
For more information, visit http://www.vim.org/maillist.php
-~--~~~~--~~--~--~---



Build broken -- Undefined references -- MinGW, vim with perl

2007-08-24 Fir de Conversatie Suresh Govindachar


Hello,

  Attached below is the result of issuing the following command
  (command has been written in multiple lines to make it easy to
  read):

C:\home\suresh\develop\vim\vim7\src
 c:\opt\mingw\bin\mingw32-make.exe  -f Make_ming.mak 
 FEATURES=HUGE DEBUG=no  GUI=yes OLE=yes 
 PERL=C:/opt/perl PERL_VER=58 
 CC=c:/opt/MinGW/bin/gcc  -Ic:/opt/MinGW/include 
 -Lc:/opt/MinGW/lib

  Versions:

  VIM Source:  Output of the update command
 
 C:\home\suresh\develop\vim\vim7
  c:\opt\svn\svn-win32-1.4.4\bin\svn update
   is  
 At revision 482.


   MinGW:  c:\opt\MinGW\bin\mingw32-make.exe --version
  GNU Make 3.81
  Copyright (C) 2006  Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.
  There is NO warranty; not even for MERCHANTABILITY
  or FITNESS FOR A PARTICULAR PURPOSE.

  This program built for i386-pc-mingw32

   perl:  C:\home\suresh\develop\vim\vim7perl --version
  
  This is perl, v5.8.8 built for MSWin32-x86-multi-thread
  (with 18 registered patches, see perl -V for more detail)
  
  Copyright 1987-2007, Larry Wall
  
  Binary build 822 [280952] provided by ActiveState
  http://www.ActiveState.com Built Jul 31 2007 19:34:48
  

  The Error Message:

c:/opt/MinGW/bin/gcc  -Ic:/opt/MinGW/include -Lc:/opt/MinGW/lib -Iproto 
-DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -D
HAVE_PATHDEF -DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -DDYNAMIC_GETTEXT 
-DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG
-DFEAT_GUI_W32 -DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME -DDYNAMIC_IME 
-DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -
IC:/opt/perl/lib/Core -DFEAT_PERL -LC:/opt/perl/lib/Core -DDYNAMIC_PERL 
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-fra
me-pointer -freg-struct-return -s -mwindows -o gvim.exe gobj/buffer.o 
gobj/charset.o gobj/diff.o gobj/digraph.o gobj/edi
t.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/mes
sage.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/spell.o gobj/synt
ax.o gobj/tag.o gobj/term.o gobj/ui.o gobj/undo.o gobj/version.o 
gobj/vimrc.o gobj/window.o gobj/if_perl.o gobj/if_cscop
e.o gobj/netbeans.o gobj/gui.o gobj/gui_w32.o gobj/gui_beval.o 
gobj/os_w32exe.o gobj/if_ole.o -lkernel32 -luser32 -lgdi3
2 -ladvapi32 -lcomdlg32 -lcomctl32 -lversion -lwsock32 -loleaut32 -lstdc++ 
-lole32 -luuid
gobj/buffer.o:buffer.c:(.text+0x117f): undefined reference to 
`perl_buf_free'
gobj/buffer.o:buffer.c:(.text+0x207e): undefined reference to 
`perl_buf_free'
gobj/eval.o:eval.c:(.text+0x4359): undefined reference to `perl_enabled'
gobj/ex_docmd.o:ex_docmd.c:(.data+0xe5c): undefined reference to `ex_perl'
gobj/ex_docmd.o:ex_docmd.c:(.data+0xe68): undefined reference to `ex_perldo'
gobj/main.o:main.c:(.text+0x614): undefined reference to `perl_end'
gobj/window.o:window.c:(.text+0x108f): undefined reference to 
`perl_win_free'
collect2: ld returned 1 exit status
mingw32-make: *** [gvim.exe] Error 1
C:\home\suresh\develop\vim

  Any idea what's happening?

  Thanks,

  --Suresh

Full log:


C:\home\suresh\develop\vim\vim7\srcc:\opt\mingw\bin\mingw32-make.exe  -f 
Make_ming.mak FEATURES=HUGE DEBUG=no  GUI=yes
OLE=yes PERL=C:/opt/perl PERL_VER=58 CC=c:/opt/MinGW/bin/gcc  
-Ic:/opt/MinGW/include -Lc:/opt/MinGW/lib
mkdir gobj
c:/opt/MinGW/bin/gcc  -Ic:/opt/MinGW/include -Lc:/opt/MinGW/lib -c -Iproto 
-DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400
 -DHAVE_PATHDEF -DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -DDYNAMIC_GETTEXT 
-DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_IN
TG -DFEAT_GUI_W32 -DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME -DDYNAMIC_IME 
-DDYNAMIC_ICONV -pipe -w -march=i386 -Wal
l -IC:/opt/perl/lib/Core -DFEAT_PERL -LC:/opt/perl/lib/Core -DDYNAMIC_PERL 
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-
frame-pointer -freg-struct-return -s buffer.c -o gobj/buffer.o
c:/opt/MinGW/bin/gcc  -Ic:/opt/MinGW/include -Lc:/opt/MinGW/lib -c -Iproto 
-DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400
 -DHAVE_PATHDEF -DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -DDYNAMIC_GETTEXT 
-DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_IN
TG -DFEAT_GUI_W32 -DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME -DDYNAMIC_IME 
-DDYNAMIC_ICONV -pipe -w -march=i386 -Wal
l -IC:/opt/perl/lib/Core -DFEAT_PERL -LC:/opt/perl/lib/Core -DDYNAMIC_PERL 
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-
frame-pointer 

Re: Build broken -- Undefined references -- MinGW, vim with perl

2007-08-24 Fir de Conversatie Suresh Govindachar


  [Yongwei Wu drew attention to if_perl.c]

  Make clean was not removing an earlier, bad if_perl.c.  In the
  output I reported, if_perl.c was size 0.  I manually deleted
  if_perl.c, and now get other errors.  Before telling what the
  errors were, here's more background info:

  It is a new hard-drive -- everything (tools, utilities,
  sources etc.) is a fresh install from the internet.

  I _can_ use perl with Bram's build of vim 7.1

  I know that the svn location for the sources was changed;  is
  the address given at vim.org the new address or the old one?

svn co https://vim.svn.sourceforge.net/svnroot/vim/vim7 

   I am able to build gvim with MinGW GCC 3.4.5 without problems.
   I tried with:

  The gcc version with the latest MinGW is (gcc --version)
 gcc (GCC) 3.4.2 (mingw-special)

  The command I used was:

C:\home\suresh\develop\vim\vim7\src
mingw32-make.exe -f Make_ming.mak  FEATURES=HUGE GUI=yes 
OLE=yes PERL=C:\opt\perl PERL_VER=58

  Could the issue be with the latest release of perl (v5.8.8 built 
  for MSWin32-x86-multi-threade with 18 registered patches)?  But 
  this perl works with Bram's build of vim 7.1.

  The error message is now (entire log is appended below):  

 gobj/if_perl.o:if_perl.c:(.text+0x1c1f): undefined reference to 
`Perl_sv_2iv_flags'

  Thanks,

  --Suresh


C:\home\suresh\develop\vim\vim7\srcmingw32-make.exe -f Make_ming.mak  
FEATURES=HUGE GUI=yes OLE=yes PERL=C:\opt\perl PE
RL_VER=58
mkdir gobj
gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -
DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE
_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall 
-IC:\opt\perl/lib/Core -DFEAT_PERL -LC:\opt\perl/lib/Core
-DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer 
-freg-struct-return -s buffer.c -o gobj/buffer
.o
gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -
DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE
_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall 
-IC:\opt\perl/lib/Core -DFEAT_PERL -LC:\opt\perl/lib/Core
-DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer 
-freg-struct-return -s charset.c -o gobj/chars
et.o
gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -
DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE
_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall 
-IC:\opt\perl/lib/Core -DFEAT_PERL -LC:\opt\perl/lib/Core
-DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer 
-freg-struct-return -s diff.c -o gobj/diff.o
gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -
DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE
_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall 
-IC:\opt\perl/lib/Core -DFEAT_PERL -LC:\opt\perl/lib/Core
-DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer 
-freg-struct-return -s digraph.c -o gobj/digra
ph.o
gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -
DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE
_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall 
-IC:\opt\perl/lib/Core -DFEAT_PERL -LC:\opt\perl/lib/Core
-DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer 
-freg-struct-return -s edit.c -o gobj/edit.o
gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -
DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE
_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall 
-IC:\opt\perl/lib/Core -DFEAT_PERL -LC:\opt\perl/lib/Core
-DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer 
-freg-struct-return -s eval.c -o gobj/eval.o
gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H -
DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE
_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall 
-IC:\opt\perl/lib/Core -DFEAT_PERL -LC:\opt\perl/lib/Core
-DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer 
-freg-struct-return -s ex_cmds.c -o gobj/ex_cm
ds.o
gcc -c -Iproto -DWIN32 -DWINVER=0x0400 

RE: Build broken -- Undefined references -- MinGW, vim with perl

2007-08-24 Fir de Conversatie Suresh Govindachar

 
  Tony suggested looking at other builds -- however, 
  I have been getting sources and building by own vim 
  for over a year.  My hard-drive crashed;  have a 
  new hard-drive.  I am doing the exact same thing I 
  used to do -- expcept I now have the latest release
  of ActiveState perl and MinGW.  ActiveState changed
  the directory structure for this release, but I 
  don't think that is the cause of the problem.

  Have attached a cleaner looking log below.

  --Suresh

  Versions:
  
  
  Perl v5.8.8 built for MSWin32-x86-multi-thread (with 18
  registered patches).  Built Jul 31 2007 19:34:48.
  I tried a few perl commands from inside the pre-built 
  version of vim 7.1 with dynamic perl support and the 
  commands worked.
  
  VIM Source:  Output of the update command 
 C:\home\suresh\develop\vim\vim7
  c:\opt\svn\svn-win32-1.4.4\bin\svn update
   is  
 At revision 482.

   MinGW:  c:\opt\MinGW\bin\mingw32-make.exe --version
  GNU Make 3.81

   gcc --version reports:  gcc (GCC) 3.4.2 (mingw-special)


  C:\home\suresh\develop\vim\vim7\srcmingw32-make.exe -f Make_ming.mak 
FEATURES=HUGE GUI=yes OLE=yes PERL=C:\opt\perl PERL_VER=58 

  mkdir gobj

  gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H
-DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME
-DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -IC:\opt\perl/lib/Core 
-DFEAT_PERL -LC:\opt\perl/lib/Core -DDYNAMIC_PERL
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer -freg-struct-return 
-s buffer.c -o gobj/buffer.o

  gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H
-DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME
-DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -IC:\opt\perl/lib/Core 
-DFEAT_PERL -LC:\opt\perl/lib/Core -DDYNAMIC_PERL
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer -freg-struct-return 
-s charset.c -o gobj/charset.o

  gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H
-DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME
-DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -IC:\opt\perl/lib/Core 
-DFEAT_PERL -LC:\opt\perl/lib/Core -DDYNAMIC_PERL
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer -freg-struct-return 
-s diff.c -o gobj/diff.o

  gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H
-DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME
-DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -IC:\opt\perl/lib/Core 
-DFEAT_PERL -LC:\opt\perl/lib/Core -DDYNAMIC_PERL
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer -freg-struct-return 
-s digraph.c -o gobj/digraph.o

  gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H
-DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME
-DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -IC:\opt\perl/lib/Core 
-DFEAT_PERL -LC:\opt\perl/lib/Core -DDYNAMIC_PERL
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer -freg-struct-return 
-s edit.c -o gobj/edit.o

  gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H
-DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME
-DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -IC:\opt\perl/lib/Core 
-DFEAT_PERL -LC:\opt\perl/lib/Core -DDYNAMIC_PERL
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer -freg-struct-return 
-s eval.c -o gobj/eval.o

  gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H
-DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME
-DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -IC:\opt\perl/lib/Core 
-DFEAT_PERL -LC:\opt\perl/lib/Core -DDYNAMIC_PERL
-DDYNAMIC_PERL_DLL=\perl58.dll\ -O3 -fomit-frame-pointer -freg-struct-return 
-s ex_cmds.c -o gobj/ex_cmds.o

  gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF 
-DFEAT_HUGE -DHAVE_GETTEXT -DHAVE_LOCALE_H
-DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_GUI_W32 
-DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME
-DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w