> I discovered 'make languages' yesterday. The enclosed patch cleans up a > lot of small nits I found in the build process. In a number of cases, the > Makefiles were running perl scripts as > ./script > rather than as > $(PERL) script > > A few other places called a plain 'perl' instead of $(PERL).
Thanks for cleaning these up. Applied. > Second, Configure.pl was putting the wrong flags in to build a shared > library. (Or, more precisely, it was apparently unconditionally using > flags that work for GNU binutils.) I have replaced ld_shared by what I > suspect is the appropriate perl5 Config variable. I left ld_shared_flags > empty because I don't know what is supposed to go there, but the value > Configure.pl used to use is definitely not right for Solaris's linker. I applied the ld_shared_flags portion of this. When I went to get things working on win32/cygwin, I didn't know what "-Wl,-soname,libparrot$(SO)" was for, so I left it in. Taking it out as your patch had, seems to work fine. However, I did not apply the following: > - ld_shared => '-shared', > + ld_shared => $Config{lddlflags}, With that bit applied, I get the following error during "make shared" make[1]: Leaving directory `/cygdrive/d/p/parrot-manfree/parrot/classes' gcc -s -L/usr/local/lib -s -L/usr/local/lib -o blib/lib/libparrot.so exceptions.o ...(lots of .o files)... chartypes/usascii.o -lcrypt /usr/lib/libcygwin.a(libcmain.o)(.text+0x6a): undefined reference to `WinMain@16' collect2: ld returned 1 exit status Where LD_SHARED = -shared -L/usr/local/lib It seems that cygwin GCC does not like the -s, and would much rather prefer -shared to work properly. The Makefile was built using cygwin perl (that's why its using cygwin GCC), so perhaps cygwin perl's $Config{lddlflags} is incorrect? Any ideas on how to resolve this? Thanks, Mike Lambert