{
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
*/
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));
}
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
Perl_checkcomma
Perl_chsize
Perl_ck_aelem
-Perl_cryptseen
Perl_cx_dump
-Perl_DBcv
Perl_do_ipcctl
Perl_do_ipcget
Perl_do_msgrcv
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
Perl_no_op
Perl_nointrp
Perl_nomem
-Perl_pending_ident
Perl_pp_cswitch
Perl_pp_entersubr
Perl_pp_evalonce
Perl_pp_map
Perl_pp_nswitch
Perl_q
-Perl_rcsid
Perl_reall_srchlen
Perl_same_dirent
Perl_saw_return
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
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
)];
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
unless ($define{'FAKE_THREADS'})
{
- skip_symbols [qw(Perl_curthr)];
+ skip_symbols [qw(PL_curthr)];
}
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;
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'})
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
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
};
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)
{
};
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)
{
#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>
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 */
}
#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,
#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
#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"