GCC builds perl.dll and perl.exe on Win32
Nick Ing-Simmons [Thu, 27 Nov 1997 19:13:36 +0000 (19:13 +0000)]
p4raw-id: //depot/ansiperl@326

win32/makedef.pl
win32/makegcc.mk

index 55b3e29..d87cbed 100644 (file)
@@ -31,10 +31,13 @@ warn join(' ',keys %define)."\n";
 
 my $CCTYPE = shift || "MSVC";
 
-print "LIBRARY Perl\n";
-print "DESCRIPTION 'Perl interpreter, export autogenerated'\n";
-print "CODE LOADONCALL\n";
-print "DATA LOADONCALL NONSHARED MULTIPLE\n";
+if ($CCTYPE ne 'GCC') 
+ {
+  print "LIBRARY Perl\n";
+  print "DESCRIPTION 'Perl interpreter, export autogenerated'\n";
+  print "CODE LOADONCALL\n";
+  print "DATA LOADONCALL NONSHARED MULTIPLE\n";
+ }
 print "EXPORTS\n";
 
 $skip_sym=<<'!END!OF!SKIP!';
@@ -214,6 +217,8 @@ if ($define{'USE_THISPTR'} || $define{'USE_THREADS'})
 unless ($define{'USE_THREADS'})
  {
   $skip_sym .= "Perl_thread_create\n";
+  $skip_sym .= "Perl_find_threadsv\n";
+  $skip_sym .= "Perl_threadsv_names\n";
  }
 
 # All symbols have a Perl_ prefix because that's what embed.h
index 668f9b5..a61d4be 100644 (file)
@@ -288,14 +288,8 @@ $(DYNALOADER).obj : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
 #------------------------------------------------------------
 
 $(GLOBEXE): perlglob.obj
-.IF "$(CCTYPE)" == "BORLAND"
-       $(CC) -c -w -v -tWM -I$(CCINCDIR) perlglob.c
-       $(LINK32) -Tpe -ap $(LINK_FLAGS) c0x32.obj perlglob.obj \
-           $(CCLIBDIR)\32BIT\wildargs.obj,$@,,import32.lib cw32mt.lib,
-.ELSE
-       $(LINK32) $(LINK_FLAGS) $(LIBFILES) -out:$@ -subsystem:$(SUBSYS) \
-           perlglob.obj setargv.obj 
-.ENDIF
+       $(LINK32) $(LINK_FLAGS) -o $@  \
+           perlglob.obj $(LIBFILES) 
 
 $(GLOBBAT) : ..\lib\File\DosGlob.pm $(MINIPERL)
        $(MINIPERL) $(PL2BAT) - < ..\lib\File\DosGlob.pm > $(GLOBBAT)
@@ -351,10 +345,17 @@ perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym makedef.pl
        $(MINIPERL) -w makedef.pl $(DEFINES) $(CCTYPE) > perldll.def
 
 $(PERLDLL): perldll.def $(CORE_OBJ) $(WIN32_OBJ) $(DLL_OBJ)
-       $(LINK32) -dll -o $@ $(LINK_FLAGS) \
+       $(LINK32) -dll -o $@ -Wl,--base-file -Wl,perl.base $(LINK_FLAGS) \
            $(mktmp $(LKPRE) $(CORE_OBJ:s,\,\\) \
                $(WIN32_OBJ:s,\,\\) $(DLL_OBJ:s,\,\\) $(LIBFILES) $(LKPOST))
-       dlltool --output-lib $(PERLIMPLIB) --def perldll.def --dll perl.dll --base-file $(PERLDLL) 
+       dlltool --output-lib $(PERLIMPLIB) \
+                --dllname perl.dll \
+                --def perldll.def \
+                --base-file perl.base \
+                --output-exp perl.exp
+       $(LINK32) -dll -o $@ $(LINK_FLAGS) \
+           $(mktmp $(LKPRE) $(CORE_OBJ:s,\,\\) \
+               $(WIN32_OBJ:s,\,\\) $(DLL_OBJ:s,\,\\) $(LIBFILES) perl.exp $(LKPOST))
        $(XCOPY) $(PERLIMPLIB) ..\lib\CORE
 
 perl.def  : $(MINIPERL) makeperldef.pl