summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-07-21 07:15:54 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-07-21 07:15:54 +0000
commitdb15561cb83ed8e36f76d63e4283fc51c30fd71f (patch)
tree27633dd207e28c21b9b96dede3a5535513b13c37
parent42d3a99d28b720322fc7b50bd358ea47c49a9722 (diff)
downloadperl-db15561cb83ed8e36f76d63e4283fc51c30fd71f.tar.gz
fixes to enable PERL_OBJECT build with mingw32/egcs-1.0.2
p4raw-id: //depot/perl@1612
-rw-r--r--ext/Opcode/Opcode.xs2
-rw-r--r--proto.h2
-rw-r--r--win32/makedef.pl70
-rw-r--r--win32/makefile.mk10
-rw-r--r--win32/perlhost.h23
-rw-r--r--win32/win32.c6
-rw-r--r--win32/win32.h18
-rw-r--r--win32/win32sck.c4
8 files changed, 64 insertions, 71 deletions
diff --git a/ext/Opcode/Opcode.xs b/ext/Opcode/Opcode.xs
index 1da7794577..e853cf19a3 100644
--- a/ext/Opcode/Opcode.xs
+++ b/ext/Opcode/Opcode.xs
@@ -204,7 +204,7 @@ opmask_addlocal(SV *opset, char *op_mask_buf) /* Localise PL_op_mask then opmask
{
char *orig_op_mask = PL_op_mask;
SAVEPPTR(PL_op_mask);
-#if !(defined(PERL_OBJECT) && defined(__BORLANDC__))
+#if !defined(PERL_OBJECT)
/* XXX casting to an ordinary function ptr from a member function ptr
* is disallowed by Borland
*/
diff --git a/proto.h b/proto.h
index 2908222917..8b42914f0a 100644
--- a/proto.h
+++ b/proto.h
@@ -74,7 +74,7 @@ VIRTUAL char ** get_op_names _((void));
VIRTUAL char * get_no_modify _((void));
VIRTUAL U32 * get_opargs _((void));
VIRTUAL I32 cxinc _((void));
-VIRTUAL void deb _((const char* pat,...)) __attribute__((format(printf,1,2)));
+VIRTUAL void deb _((const char* pat,...)) /*__attribute__((format(printf,1,2)))*/;
VIRTUAL void deb_growlevel _((void));
VIRTUAL void debprofdump _((void));
VIRTUAL I32 debop _((OP* o));
diff --git a/win32/makedef.pl b/win32/makedef.pl
index c49c68dd72..f86029164e 100644
--- a/win32/makedef.pl
+++ b/win32/makedef.pl
@@ -76,8 +76,20 @@ sub emit_symbols
}
skip_symbols [qw(
-Perl_statusvalue_vms
-Perl_archpat_auto
+PL_statusvalue_vms
+PL_archpat_auto
+PL_cryptseen
+PL_DBcv
+PL_generation
+PL_in_clean_all
+PL_in_clean_objs
+PL_lastgotoprobe
+PL_linestart
+PL_modcount
+PL_pending_ident
+PL_sortcxix
+PL_sublex_info
+PL_timesbuf
Perl_block_type
Perl_additem
Perl_cast_ulong
@@ -85,9 +97,7 @@ Perl_check_uni
Perl_checkcomma
Perl_chsize
Perl_ck_aelem
-Perl_cryptseen
Perl_cx_dump
-Perl_DBcv
Perl_do_ipcctl
Perl_do_ipcget
Perl_do_msgrcv
@@ -112,16 +122,10 @@ Perl_fetch_io
Perl_force_ident
Perl_force_next
Perl_force_word
-Perl_generation
Perl_hv_stashpv
-Perl_in_clean_all
-Perl_in_clean_objs
Perl_intuit_more
Perl_init_thread_intern
Perl_know_next
-Perl_lastgotoprobe
-Perl_linestart
-Perl_modcount
Perl_modkids
Perl_mstats
Perl_my_bzero
@@ -134,7 +138,6 @@ Perl_no_fh_allowed
Perl_no_op
Perl_nointrp
Perl_nomem
-Perl_pending_ident
Perl_pp_cswitch
Perl_pp_entersubr
Perl_pp_evalonce
@@ -142,7 +145,6 @@ Perl_pp_interp
Perl_pp_map
Perl_pp_nswitch
Perl_q
-Perl_rcsid
Perl_reall_srchlen
Perl_same_dirent
Perl_saw_return
@@ -160,13 +162,10 @@ Perl_scan_word
Perl_setenv_getix
Perl_skipspace
Perl_sort_mutex
-Perl_sortcxix
Perl_sublex_done
-Perl_sublex_info
Perl_sublex_start
Perl_sv_ref
Perl_sv_setptrobj
-Perl_timesbuf
Perl_too_few_arguments
Perl_too_many_arguments
Perl_unlnk
@@ -181,16 +180,15 @@ mystack_mark
perl_init_ext
perl_requirepv
stack
-statusvalue_vms
Perl_safexcalloc
Perl_safexmalloc
Perl_safexfree
Perl_safexrealloc
Perl_my_memcmp
Perl_my_memset
-Perl_cshlen
-Perl_cshname
-Perl_opsave
+PL_cshlen
+PL_cshname
+PL_opsave
)];
@@ -216,28 +214,28 @@ else
unless ($define{'USE_THREADS'})
{
skip_symbols [qw(
+PL_thr_key
+PL_sv_mutex
+PL_svref_mutex
+PL_malloc_mutex
+PL_eval_mutex
+PL_eval_cond
+PL_eval_owner
+PL_threads_mutex
+PL_nthreads
+PL_nthreads_cond
+PL_threadnum
+PL_threadsv_names
+PL_thrsv
+Perl_vtbl_mutex
Perl_getTHR
Perl_setTHR
Perl_condpair_magic
-Perl_thr_key
-Perl_sv_mutex
-Perl_svref_mutex
-Perl_malloc_mutex
-Perl_eval_mutex
-Perl_eval_cond
-Perl_eval_owner
-Perl_threads_mutex
Perl_new_struct_thread
-Perl_nthreads
-Perl_nthreads_cond
Perl_per_thread_magicals
Perl_thread_create
-Perl_threadnum
Perl_find_threadsv
-Perl_threadsv_names
-Perl_thrsv
Perl_unlock_condpair
-Perl_vtbl_mutex
Perl_magic_mutexfree
Perl_sv_iv
Perl_sv_nv
@@ -249,7 +247,7 @@ Perl_sv_pvn
unless ($define{'FAKE_THREADS'})
{
- skip_symbols [qw(Perl_curthr)];
+ skip_symbols [qw(PL_curthr)];
}
sub readvar
@@ -261,7 +259,7 @@ sub readvar
{
# All symbols have a Perl_ prefix because that's what embed.h
# sticks in front of them.
- push(@syms,"Perl_".$1) if (/\bPERLVARI?C?\([IGT](\w+)/);
+ push(@syms,"PL_".$1) if (/\bPERLVARI?C?\([IGT](\w+)/);
}
close(VARS);
return \@syms;
@@ -284,7 +282,7 @@ if ($define{'PERL_GLOBAL_STRUCT'})
my $global = readvar("../perlvars.h");
skip_symbols $global;
emit_symbols [qw(Perl_GetVars)];
- emit_symbols [qw(Perl_Vars Perl_VarsPtr)] unless $CCTYPE eq 'GCC';
+ emit_symbols [qw(PL_Vars PL_VarsPtr)] unless $CCTYPE eq 'GCC';
}
unless ($define{'DEBUGGING'})
diff --git a/win32/makefile.mk b/win32/makefile.mk
index f93807d96a..95d36e45af 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -227,8 +227,8 @@ SUBSYS = console
CXX_FLAG = -xc++
LIBC = -lcrtdll
-LIBFILES = $(CRYPT_LIB) -ladvapi32 -luser32 -lnetapi32 -lwsock32 -lmingw32 \
- -lgcc -lmoldname $(LIBC) -lkernel32
+LIBFILES = $(CRYPT_LIB) -ladvapi32 -luser32 -lnetapi32 -lwsock32 \
+ -lmingw32 -lgcc -lmoldname $(LIBC) -lkernel32
.IF "$(CFG)" == "Debug"
OPTIMIZE = -g -O2 $(RUNTIME) -DDEBUGGING
@@ -410,7 +410,11 @@ CFGH_TMPL = config_H.bc
CFGSH_TMPL = config.gc
CFGH_TMPL = config_H.gc
-PERLIMPLIB *= ..\libperl$(a)
+.IF "$(OBJECT)" == "-DPERL_OBJECT"
+PERLIMPLIB = ..\libperlcore$(a)
+.ELSE
+PERLIMPLIB = ..\libperl$(a)
+.ENDIF
.ELSE
diff --git a/win32/perlhost.h b/win32/perlhost.h
index b8a59e409c..57e0d2fd25 100644
--- a/win32/perlhost.h
+++ b/win32/perlhost.h
@@ -652,23 +652,19 @@ public:
};
virtual char* GetBase(PerlIO* pf, int &err)
{
- FILE *f = (FILE*)pf;
- return FILE_base(f);
+ return (PerlIO_has_base(pf) ? PerlIO_get_base(pf) : Nullch);
};
virtual int GetBufsiz(PerlIO* pf, int &err)
{
- FILE *f = (FILE*)pf;
- return FILE_bufsiz(f);
+ return PerlIO_get_bufsiz(pf);
};
virtual int GetCnt(PerlIO* pf, int &err)
{
- FILE *f = (FILE*)pf;
- return FILE_cnt(f);
+ return PerlIO_get_cnt(pf);
};
virtual char* GetPtr(PerlIO* pf, int &err)
{
- FILE *f = (FILE*)pf;
- return FILE_ptr(f);
+ return PerlIO_get_ptr(pf);
};
virtual char* Gets(PerlIO* pf, char* s, int n, int& err)
{
@@ -738,14 +734,15 @@ public:
};
virtual void SetCnt(PerlIO* pf, int n, int &err)
{
- FILE *f = (FILE*)pf;
- FILE_cnt(f) = n;
+ if (PerlIO_canset_cnt(pf)) {
+ PerlIO_set_cnt(pf,n);
+ }
};
virtual void SetPtrCnt(PerlIO* pf, char * ptr, int n, int& err)
{
- FILE *f = (FILE*)pf;
- FILE_ptr(f) = ptr;
- FILE_cnt(f) = n;
+ if (PerlIO_canset_cnt(pf)) {
+ PerlIO_set_ptrcnt(pf,ptr,n);
+ }
};
virtual void Setlinebuf(PerlIO* pf, int &err)
{
diff --git a/win32/win32.c b/win32/win32.c
index 13f11e3cc7..dd9fa696b9 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -13,10 +13,6 @@
#include <tchar.h>
#ifdef __GNUC__
#define Win32_Winsock
-# ifdef __cplusplus
-#undef __attribute__ /* seems broken in 2.8.0 */
-#define __attribute__(p)
-# endif
#endif
#include <windows.h>
@@ -2194,7 +2190,7 @@ XS(w32_DomainName)
char dname[256];
DWORD dnamelen = sizeof(dname);
SID_NAME_USE snu;
- if (LookupAccountName(NULL, name, &sid, &sidlen,
+ if (LookupAccountName(NULL, name, (PSID)&sid, &sidlen,
dname, &dnamelen, &snu)) {
XSRETURN_PV(dname); /* all that for this */
}
diff --git a/win32/win32.h b/win32/win32.h
index 184372dffb..bfbaaed5dd 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -20,17 +20,15 @@
#ifdef __GNUC__
typedef long long __int64;
-#define Win32_Winsock
-# ifdef __cplusplus
-#undef __attribute__ /* seems broken in 2.8.0 */
-#define __attribute__(p)
-# endif
+# define Win32_Winsock
/* GCC does not do __declspec() - render it a nop
* and turn on options to avoid importing data
*/
-#define __declspec(x)
-#define PERL_GLOBAL_STRUCT
-#define MULTIPLICITY
+# define __declspec(x)
+# ifndef PERL_OBJECT
+# define PERL_GLOBAL_STRUCT
+# define MULTIPLICITY
+# endif
#endif
/* Define DllExport akin to perl's EXT,
@@ -216,6 +214,10 @@ typedef long gid_t;
#define flushall _flushall
#define fcloseall _fcloseall
+#ifdef PERL_OBJECT
+#define FUNC_NAME_TO_PTR(name) &(name)
+#endif
+
#ifndef _O_NOINHERIT
# define _O_NOINHERIT 0x0080
# ifndef _NO_OLDNAMES
diff --git a/win32/win32sck.c b/win32/win32sck.c
index 8929ea7d09..52dc128f9a 100644
--- a/win32/win32sck.c
+++ b/win32/win32sck.c
@@ -13,10 +13,6 @@
#define WIN32_LEAN_AND_MEAN
#ifdef __GNUC__
#define Win32_Winsock
-# ifdef __cplusplus
-#undef __attribute__ /* seems broken in 2.8.0 */
-#define __attribute__(p)
-# endif
#endif
#include <windows.h>
#include "EXTERN.h"