From: john_r_velman AT mail DOT hac DOT com Subject: Problems compiling Perl 23 Oct 1998 14:04:48 -0700 Message-ID: <0F1800M1NQP4E4.cygnus.gnu-win32@mail.hac.com> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1 Content-Transfer-Encoding: 7BIT To: gnu-win32 AT cygnus DOT com First let me say I'm not basically a developer. I use make files that someone else has put together, but don't create them myself, for example. When I try to build a complex package I only know vaguely what I'm doing and count on the instructions to work. ;-) Following up on a threat :-) I made a few days ago I down-loaded the latest_tar.gz perl source and set out to compile it. My environment is NT4Sp3, gcc version egcs-2.91.57 19980901 (egcs-1.1 release), and from uname, version 19.3 of cygwin32. My entire development and working tree is within a single C:\xx\xx\ directory, mounted binary as /. I've moved executables, libraries, include file (and everything else) into a unix/linux like directory structure. (/bin, /usr/bin, /usr/include, /usr/local/ etc.). I'm using Michael Hirmke's April version of Vim for any file editing involved in making this work. So much for background. Some problems I had -- following the cygwin 32 instructions that came with the perl release. I got around most of them, but.. 1. Running Configure, it only stopped at every other question. This is reported to happen on win95/98, but not on NT. I have NT. It happened. I followed the alternative procedure of putting in the hint/ suggestion for config.sh, manually editing it. (It didn't seem to have nearly enough questions.) Then I ran sh Configure -d (non interactive version). 2. When I tried running make, I found that the make files had pathnames of the form C:\\xxx\\xxx\\xx instead of /bin, /usr/include, and so on, as intended. *** Make (or gcc or?) couldn't find these files*** I edited appropriate GNUMakefile files to replace all C:'s with//c's, and all \\ with /. Now (a lot of it) worked. 3. Eventually, when it tried to call gcc thru gcc2 (a shell script wrapper that comes with the perl distribution for use with cyg-win), the path built into gcc2 turned out to be wrong. Fixed that, and got by that step. 4. During my edit sessions, vim sometimes hung. Somehow, key strokes were not getting to vim, or in some cases, even to the window (i.e., bash wouldn't respond after killing vim from bash running in another window). This clearly is not a problem with the perl distribution, but this is the first time I had this problem that I recall. (By the way, I have TERM=linux; I don't have tty set in CYGWIN since, when I do, nothing that uses curses works right.) 5. OK. I finally got it to compile. There seems to be a working perl. At least it processes a perl file with a single print statement correctly. 6. Finally, we come to compiling the extensions. There we have a hang up I can't seem to resolve. Here is the output from make that bombed: ---- Making B (dynamic) LD_RUN_PATH="" ld2 -o ../../lib/auto/B/B.dll -L/usr/local/lib B.o gcc -c fixup.c gcc -c init.cc echo EXPORTS > B.def nm B.o init.o fixup.o | grep '^........ [TCD] _' | sed 's/[^_]*_//' >> B.def ld --base-file B.base --dll -o B.dll B.o init.o fixup.o -L/usr/local/lib -e _dl l_entry AT 12 B.o(.text+0x16d):B.c: undefined reference to `__imp_Perl_opargs' B.o(.text+0x2ec):B.c: undefined reference to `__imp_Perl_op_name' B.o(.text+0x2f9):B.c: undefined reference to `Perl_warn'