Permalink
Browse files

The Borland Chainsaw Massacre

Remove support for the Borland C++ compiler on Win32, as agreed here:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2011-09/msg00034.html
  • Loading branch information...
1 parent 528bd3c commit 378eeda70cc27194f0f718b4c65b8ba147259910 @steve-m-hay steve-m-hay committed Sep 10, 2011
View
@@ -5252,12 +5252,10 @@ win32/ce-helpers/compile.bat WinCE port
win32/ce-helpers/comp.pl WinCE port
win32/ce-helpers/makedist.pl WinCE port
win32/ce-helpers/registry.bat WinCE port
-win32/config.bc Win32 base line config.sh (Borland C++ build)
win32/config.ce WinCE port
win32/config.gc Win32 base line config.sh (MinGW build)
win32/config.gc64 Win64 base line config.sh (MinGW build)
win32/config.gc64nox Win64 base line config.sh (MinGW build)
-win32/config_H.bc Win32 config header (Borland C++ build)
win32/config_H.ce WinCE port
win32/config_H.gc Win32 config header (MinGW build)
win32/config_H.gc64 Win64 config header (MinGW build)
@@ -5292,7 +5290,6 @@ win32/perlmaince.c WinCE port
win32/perl.rc WinCE port
win32/pod.mak Win32 port
win32/runperl.c Win32 port
-win32/sync_ext.pl Win32 port
win32/vdir.h Perl "host" virtual directory manager for CE
win32/vmem.h Perl "host" memory manager for CE
win32/win32.c Win32 port
View
@@ -864,8 +864,7 @@ all : .cleanoldfiles .\nwconfig.h $(CONFIGPM) $(NLM_NAME) $(EXTENSION_NLM) $(EXT
$(MINIPERL) -I..\lib config_sh.PL $(NW_CFG_VARS) config.nw5 > ..\config.sh
# this target is for when changes to the main config.sh happen
-# edit config.{b,v,g,w}c and make this target once for each supported
-# compiler (e.g. `dmake CCTYPE=BORLAND regen_config_h`)
+# edit config.wc and make this target
regen_config_h:
perl config_sh.PL $(NW_CFG_VARS) $(NW_CFGSH_TMPL) > ..\config.sh
cd ..
View
@@ -191,14 +191,6 @@ END_EXTERN_C
#undef uname
#undef wait
-#ifdef __BORLANDC__
-#undef ungetc
-#undef getc
-#undef putc
-#undef getchar
-#undef putchar
-#undef fileno
-#endif
#define environ (*nw_environ())
View
@@ -154,7 +154,7 @@ typedef unsigned long perl_mutex;
#endif //#if 0
//Following has to be defined CHKSGP
-#if defined(PERLDLL) && defined(USE_DECLSPEC_THREAD) && (!defined(__BORLANDC__) || defined(_DLL))
+#if defined(PERLDLL) && defined(USE_DECLSPEC_THREAD)
extern __declspec(thread) void *PL_current_context;
#define PERL_SET_CONTEXT(t) (PL_current_context = t)
#define PERL_GET_CONTEXT PL_current_context
@@ -40,7 +40,6 @@ sub usage
"uconfig.sh",
"uconfig64.sh",
"plan9/config_sh.sample",
- "win32/config.bc",
"win32/config.gc",
"win32/config.gc64",
"win32/config.gc64nox",
@@ -52,7 +52,7 @@ sub END {
cflags => ['', 'CCFLAGS=-Dperl=rules -Dzzz'],
Deq => ['', '-Dbeer=foamy'],
D => ['', '-DPERL_IMPLICIT_SYS'],
- cctype => ['', map {"CCTYPE=$_"} qw (MSVC60 GCC BORLAND)],
+ cctype => ['', map {"CCTYPE=$_"} qw (MSVC60 GCC)],
filetype => ['', 'FILETYPE=def', 'FILETYPE=imp'],
targ_dir => ['', 'TARG_DIR=t/../'],
);
View
@@ -155,7 +155,6 @@ my @writables = qw(
win32/Makefile
win32/Makefile.ce
win32/makefile.mk
- win32/config_H.bc
win32/config_H.gc
win32/config_H.vc
utils/Makefile
View
@@ -39,7 +39,6 @@ additional software to run (other than what came with your operating
system). Currently, this port is capable of using one of the
following compilers on the Intel x86 architecture:
- Borland C++ version 5.02 or later
Microsoft Visual C++ version 6.0 or later
Gcc by mingw.org gcc version 3.2 or later
Gcc by mingw-w64.sf.net gcc version 4.4.3 or later
@@ -62,14 +61,11 @@ that are also supported by perl's makefile.
=back
-The Borland C++ and Microsoft Visual C++ compilers are also now being given
-away free. The Borland compiler is available as "Borland C++ Compiler Free
-Command Line Tools" and is the same compiler that ships with the full
-"Borland C++ Builder" product. The Microsoft compiler is available as
-"Visual C++ Toolkit 2003" or "Visual C++ 2005/2008/2010 Express Edition" (and
-also as part of the ".NET Framework SDK") and is the same compiler that ships
-with "Visual C++ .NET 2003 Professional" or "Visual C++ 2005/2008/2010
-Professional" respectively.
+The Microsoft Visual C++ compilers are also now being given away free. They are
+available as "Visual C++ Toolkit 2003" or "Visual C++ 2005/2008/2010 Express
+Edition" (and also as part of the ".NET Framework SDK") and are the same
+compilers that ship with "Visual C++ .NET 2003 Professional" or "Visual C++
+2005/2008/2010 Professional" respectively.
This port can also be built on IA64/AMD64 using:
@@ -100,7 +96,7 @@ See L<Usage Hints for Perl on Windows> below for general hints about this.
You need a "make" program to build the sources. If you are using
Visual C++ or the Windows SDK tools, nmake will work. Builds using
-the Borland compiler or gcc need dmake.
+the gcc need dmake.
dmake is a freely available make that has very nice macro features
and parallelability.
@@ -111,16 +107,6 @@ L<http://search.cpan.org/dist/dmake/>
Fetch and install dmake somewhere on your path.
-There exists a minor coexistence problem with dmake and Borland C++
-compilers. Namely, if a distribution has C files named with mixed
-case letters, they will be compiled into appropriate .obj-files named
-with all lowercase letters, and every time dmake is invoked
-to bring files up to date, it will try to recompile such files again.
-For example, Tk distribution has a lot of such files, resulting in
-needless recompiles every time dmake is invoked. To avoid this, you
-may use the script "sync_ext.pl" after a successful build. It is
-available in the win32 subdirectory of the Perl source distribution.
-
=item Command Shell
Use the default "cmd" shell that comes with Windows. Some versions of the
@@ -131,14 +117,6 @@ shell.
Make sure the path to the build directory does not contain spaces. The
build usually works in this circumstance, but some tests will fail.
-=item Borland C++
-
-If you are using the Borland compiler, you will need dmake.
-(The make that Borland supplies is seriously crippled and will not
-work for MakeMaker builds.)
-
-See L</"Make"> above.
-
=item Microsoft Visual C++
The nmake that comes with Visual C++ will suffice for building.
@@ -409,20 +387,6 @@ spaces. So don't do that.
If you are running the tests from a emacs shell window, you may see
failures in op/stat.t. Run "dmake test-notty" in that case.
-If you're using the Borland compiler, you may see a failure in op/taint.t
-arising from the inability to find the Borland Runtime DLLs on the system
-default path. You will need to copy the DLLs reported by the messages
-from where Borland chose to install it, into the Windows system directory
-(usually somewhere like C:\WINDOWS\SYSTEM32) and rerun the test.
-
-If you're using Borland compiler versions 5.2 and below, you may run into
-problems finding the correct header files when building extensions. For
-example, building the "Tk" extension may fail because both perl and Tk
-contain a header file called "patchlevel.h". The latest Borland compiler
-(v5.5) is free of this misbehaviour, and it even supports an
-option -VI- for backward (bugward) compatibility for using the old Borland
-search algorithm to locate header files.
-
If you run the tests on a FAT partition, you may see some failures for
C<link()> related tests (I<op/write.t>, I<op/stat.t> ...). Testing on
NTFS avoids these errors.
@@ -913,8 +877,6 @@ and borrowed from the Hip Communications port that was available
at the time. Various people have made numerous and sundry hacks
since then.
-Borland support was added in 5.004_01 (Gurusamy Sarathy).
-
GCC/mingw32 support was added in 5.005 (Nick Ing-Simmons).
Support for PERL_OBJECT was added in 5.005 (ActiveState Tool Corp).
@@ -925,6 +887,6 @@ Win9x support was added in 5.6 (Benjamin Stuhl).
Support for 64-bit Windows added in 5.8 (ActiveState Corp).
-Last updated: 18 November 2010
+Last updated: 10 September 2011
=cut
View
@@ -861,10 +861,7 @@ Perl_nextargv(pTHX_ register GV *gv)
#ifdef HAS_FCHMOD
(void)fchmod(PL_lastfd,PL_filemode);
#else
-# if !(defined(WIN32) && defined(__BORLANDC__))
- /* Borland runtime creates a readonly file! */
(void)PerlLIO_chmod(PL_oldname,PL_filemode);
-# endif
#endif
if (fileuid != PL_statbuf.st_uid || filegid != PL_statbuf.st_gid) {
#ifdef HAS_FCHOWN
View
@@ -88,12 +88,7 @@
* information.
*/
#if defined(WIN64) || defined(USE_LARGE_FILES)
-# if defined(__BORLANDC__) /* buk */
-# include <sys\stat.h>
-# define Stat_t struct stati64
-# else
#define Stat_t struct _stati64
-# endif
#else
#if defined(UNDER_CE)
#define Stat_t struct xcestat
View
@@ -2,7 +2,7 @@ use ExtUtils::MakeMaker;
use Config;
use strict;
-our $VERSION = "1.13";
+our $VERSION = "1.14";
my %err = ();
my %wsa = ();
@@ -184,13 +184,7 @@ sub get_files {
die "Cannot exec $cpp";
}
- my $pat;
- if (($IsMSWin32 || $^O eq 'NetWare') and $Config{cc} =~ /^bcc/i) {
- $pat = '^/\*\s+(.+)\s+\d+\s*:\s+\*/';
- }
- else {
- $pat = '^#\s*(?:line)?\s*\d+\s+"([^"]+)"';
- }
+ my $pat = '^#\s*(?:line)?\s*\d+\s+"([^"]+)"';
while(<CPPO>) {
if ($^O eq 'os2' or $IsMSWin32 or $^O eq 'NetWare') {
if (/$pat/o) {
@@ -4,10 +4,10 @@ use Config;
BEGIN {
require Test::More;
if (!$Config{'d_fork'}
- # open2/3 supported on win32 (but not Borland due to CRT bugs)
- && (($^O ne 'MSWin32' && $^O ne 'NetWare') || $Config{'cc'} =~ /^bcc/i))
+ # open2/3 supported on win32
+ && $^O ne 'MSWin32' && $^O ne 'NetWare')
{
- Test::More->import(skip_all => 'open2/3 not available with MSWin32+Netware+cc=bcc');
+ Test::More->import(skip_all => 'open2/3 not available with MSWin32+Netware');
exit 0;
}
# make warnings fatal
@@ -3,8 +3,8 @@
BEGIN {
require Config; import Config;
if (!$Config{'d_fork'}
- # open2/3 supported on win32 (but not Borland due to CRT bugs)
- && (($^O ne 'MSWin32' && $^O ne 'NetWare') || $Config{'cc'} =~ /^bcc/i))
+ # open2/3 supported on win32
+ && $^O ne 'MSWin32' && $^O ne 'NetWare')
{
print "1..0\n";
exit 0;
View
@@ -160,9 +160,6 @@ char *tzname[] = { "" , "" };
# define ttyname(a) (char*)not_here("ttyname")
# define sigset_t long
# define pid_t long
-# ifdef __BORLANDC__
-# define tzname _tzname
-# endif
# ifdef _MSC_VER
# define mode_t short
# endif
@@ -4,7 +4,7 @@ use warnings;
our ($AUTOLOAD, %SIGRT);
-our $VERSION = '1.25';
+our $VERSION = '1.26';
require XSLoader;
View
@@ -46,8 +46,7 @@
# __UWIN__ added so it could be used in ext/POSIX/POSIX.xs
# to protect against either tzname definition. According to Dave Korn
-#dgk gcc on uwin also predefined _UWIN as does the borland and digital
-#dgk mars compiler.
+#dgk gcc on uwin also predefined _UWIN as does the digital mars compiler.
#dgk
#dgk Only ncc does not define _UWIN and this is intentional. ncc is used
#dgk to build binaries that do not require the uwin runtime.
@@ -20,7 +20,6 @@ $| = 1;
print "1..9\n";
my $cc = $Config{'cc'};
my $cl = ($^O eq 'MSWin32' && $cc eq 'cl');
-my $borl = ($^O eq 'MSWin32' && $cc eq 'bcc32');
my $skip_exe = $^O eq 'os2' && $Config{ldflags} =~ /(?<!\S)-Zexe\b/;
my $exe = 'embed_test';
$exe .= $Config{'exe_ext'} unless $skip_exe; # Linker will auto-append it
@@ -57,9 +56,6 @@ if ($^O eq 'VMS') {
if ($cl) {
push(@cmd,$cc,"-Fe$exe");
}
- elsif ($borl) {
- push(@cmd,$cc,"-o$exe");
- }
else {
push(@cmd,$cc,'-o' => $exe);
}
@@ -94,9 +90,6 @@ if ($^O eq 'VMS') {
if $^O eq 'os2' and $Config{ldflags} =~ /(?<!\S)-Zomf\b/;
push(@cmd,ldopts());
}
- if ($borl) {
- @cmd = ($cmd[0],(grep{/^-[LI]/}@cmd[1..$#cmd]),(grep{!/^-[LI]/}@cmd[1..$#cmd]));
- }
if ($^O eq 'aix') { # AIX needs an explicit symbol export list.
my ($perl_exp) = grep { -f } qw(perl.exp ../perl.exp);
View
@@ -9,7 +9,7 @@
package File::DosGlob;
-our $VERSION = '1.04';
+our $VERSION = '1.05';
use strict;
use warnings;
@@ -291,11 +291,6 @@ only twice as slow as perlglob.exe (GSAR 28-MAY-97)
=item *
-Several cleanups prompted by lack of compatible perlglob.exe
-under Borland (GSAR 27-MAY-97)
-
-=item *
-
Initial version (GSAR 20-FEB-97)
=back
View
@@ -965,9 +965,6 @@ sub readvar {
win32_getchar
win32_putchar
));
- if ($ARGS{CCTYPE} eq "BORLAND") {
- try_symbols('_matherr');
- }
}
elsif ($ARGS{PLATFORM} eq 'vms') {
try_symbols(qw(
@@ -1305,7 +1302,7 @@ sub readvar {
print "LIBRARY $dll\n";
# The DESCRIPTION module definition file statement is not supported
# by VC7 onwards.
- if ($ARGS{CCTYPE} =~ /^(?:MSVC60|GCC|BORLAND)$/) {
+ if ($ARGS{CCTYPE} =~ /^(?:MSVC60|GCC)$/) {
print "DESCRIPTION 'Perl interpreter'\n";
}
print "EXPORTS\n";
@@ -1349,7 +1346,6 @@ sub readvar {
foreach my $symbol (sort keys %export) {
if ($ARGS{PLATFORM} =~ /^win(?:32|ce)$/) {
- $symbol = "_$symbol" if $ARGS{CCTYPE} eq 'BORLAND';
print "\t$symbol\n";
}
elsif ($ARGS{PLATFORM} eq 'os2') {
View
@@ -155,23 +155,6 @@ perlsio_binmode(FILE *fp, int iotype, int mode)
#else
if (PerlLIO_setmode(fileno(fp), mode) != -1) {
#endif
-# if defined(WIN32) && defined(__BORLANDC__)
- /*
- * The translation mode of the stream is maintained independent
-of
- * the translation mode of the fd in the Borland RTL (heavy
- * digging through their runtime sources reveal). User has to
-set
- * the mode explicitly for the stream (though they don't
-document
- * this anywhere). GSAR 97-5-24
- */
- fseek(fp, 0L, 0);
- if (mode & O_BINARY)
- fp->flags |= _F_BIN;
- else
- fp->flags &= ~_F_BIN;
-# endif
return 1;
}
else
@@ -3241,9 +3224,7 @@ PerlIOStdio_invalidate_fileno(pTHX_ FILE *f)
f->_file = -1;
return 1;
# elif defined(WIN32)
-# if defined(__BORLANDC__)
- f->fd = PerlLIO_dup(fileno(f));
-# elif defined(UNDER_CE)
+# if defined(UNDER_CE)
/* WIN_CE does not have access to FILE internals, it hardly has FILE
structure at all
*/
Oops, something went wrong.

0 comments on commit 378eeda

Please sign in to comment.