mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Remove Microsoft/Cygwin import/export nonsense
Windows/Cygwin requires onerous special handling and the definition of additional _imp__* symbols to import/export symbols between dynamically linked binaries. Its support in AST used a lot of macros and code obfuscation. In the features/common test for this, AT&T called this the "Microsoft import/export nonsense". They're right, it's nonsense. Somehow, Microsoft's POSIX layer, SFU/Interix, always managed without it. No one has time to maintain this (especially considering how incredibly sluggish Cygwin is). And in fact, it had already fallen victim to bit rot; I confirmed this in my early experiments with reintroducing dynamic library support. No one has time to fix it, either. So, my apologies to any Cygwin fans; ksh 93u+m will never support dynamically loadable built-ins on Cygwin, even when I do manage to reintroduce dynamic linking properly.
This commit is contained in:
parent
4c0df0e617
commit
3de4da5afb
143 changed files with 125 additions and 1083 deletions
|
|
@ -63,10 +63,6 @@
|
|||
|
||||
/* entry point for shell special builtins */
|
||||
|
||||
#if defined(__EXPORT__)
|
||||
# define extern __EXPORT__
|
||||
#endif
|
||||
|
||||
extern int b_alias(int, char*[],Shbltin_t*);
|
||||
extern int b_break(int, char*[],Shbltin_t*);
|
||||
extern int b_dot_cmd(int, char*[],Shbltin_t*);
|
||||
|
|
@ -129,8 +125,6 @@ extern int b_times(int, char*[],Shbltin_t*);
|
|||
|
||||
extern short b_enum_nelem(Namfun_t*);
|
||||
|
||||
#undef extern
|
||||
|
||||
extern const char e_alrm1[];
|
||||
extern const char e_alrm2[];
|
||||
extern const char e_badfun[];
|
||||
|
|
|
|||
|
|
@ -59,9 +59,6 @@ extern int sh_iorenumber(int,int);
|
|||
extern void sh_pclose(int[]);
|
||||
extern int sh_rpipe(int[]);
|
||||
extern void sh_iorestore(int,int);
|
||||
#if defined(__EXPORT__) && defined(_BLD_DLL)
|
||||
__EXPORT__
|
||||
#endif
|
||||
extern Sfio_t *sh_iostream(int);
|
||||
extern int sh_redirect(struct ionod*,int);
|
||||
extern void sh_iosave(int,int,char*);
|
||||
|
|
|
|||
|
|
@ -237,9 +237,6 @@ struct Namval
|
|||
#define NV_DCADD 0 /* used to add named disciplines */
|
||||
#define NV_DCRESTRICT 1 /* variable that are restricted in rsh */
|
||||
|
||||
#if defined(__EXPORT__) && defined(_DLL)
|
||||
# define extern __EXPORT__
|
||||
#endif /* _DLL */
|
||||
/* prototype for array interface */
|
||||
extern Namarr_t *nv_arrayptr(Namval_t*);
|
||||
extern Namarr_t *nv_setarray(Namval_t*,void*(*)(Namval_t*,const char*,int));
|
||||
|
|
@ -289,10 +286,6 @@ extern Namval_t *nv_type(Namval_t*);
|
|||
extern void nv_addtype(Namval_t*,const char*, Optdisc_t*, size_t);
|
||||
extern const Namdisc_t *nv_discfun(int);
|
||||
|
||||
#ifdef _DLL
|
||||
# undef extern
|
||||
#endif /* _DLL */
|
||||
|
||||
#define nv_unset(np) _nv_unset(np,0)
|
||||
#define nv_size(np) nv_setsize((np),-1)
|
||||
#define nv_stack(np,nf) nv_disc(np,nf,0)
|
||||
|
|
|
|||
|
|
@ -83,12 +83,8 @@ extern char *path_fullname(const char*);
|
|||
extern int path_expand(const char*, struct argnod**);
|
||||
extern noreturn void path_exec(const char*,char*[],struct argnod*);
|
||||
extern pid_t path_spawn(const char*,char*[],char*[],Pathcomp_t*,int);
|
||||
#if defined(__EXPORT__) && defined(_BLD_DLL)
|
||||
# define extern __EXPORT__
|
||||
#endif
|
||||
extern int path_open(const char*,Pathcomp_t*);
|
||||
extern Pathcomp_t *path_get(const char*);
|
||||
#undef extern
|
||||
extern char *path_pwd(void);
|
||||
extern Pathcomp_t *path_nextcomp(Pathcomp_t*,const char*,Pathcomp_t*);
|
||||
extern int path_search(const char*,Pathcomp_t**,int);
|
||||
|
|
|
|||
|
|
@ -419,10 +419,6 @@ extern Libcomp_t *liblist;
|
|||
|
||||
#undef getenv /* -lshell provides its own */
|
||||
|
||||
#if defined(__EXPORT__) && defined(_DLL)
|
||||
# define extern __EXPORT__
|
||||
#endif /* _DLL */
|
||||
|
||||
extern void sh_subfork(void);
|
||||
extern Shell_t *sh_init(int,char*[],Shinit_f);
|
||||
extern int sh_reinit(char*[]);
|
||||
|
|
@ -472,10 +468,6 @@ extern int sh_exec(const Shnode_t*,int);
|
|||
extern Shell_t sh;
|
||||
#define sh_getinterp() (&sh)
|
||||
|
||||
#ifdef _DLL
|
||||
# undef extern
|
||||
#endif /* _DLL */
|
||||
|
||||
#define chdir(a) sh_chdir(a)
|
||||
#define fchdir(a) sh_fchdir(a)
|
||||
#ifndef defs_h_defined
|
||||
|
|
|
|||
|
|
@ -212,9 +212,6 @@ union Shnode_u
|
|||
extern void sh_freeup(void);
|
||||
extern void sh_funstaks(struct slnod*,int);
|
||||
extern Sfio_t *sh_subshell(Shnode_t*, volatile int, int);
|
||||
#if defined(__EXPORT__) && defined(_BLD_DLL)
|
||||
__EXPORT__
|
||||
#endif
|
||||
extern int sh_tdump(Sfio_t*, const Shnode_t*);
|
||||
extern Shnode_t *sh_trestore(Sfio_t*);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,9 +32,6 @@
|
|||
#include "timeout.h"
|
||||
|
||||
Shell_t sh = {0};
|
||||
#ifdef __IMPORT__
|
||||
Shell_t *_imp__sh = &sh;
|
||||
#endif
|
||||
|
||||
Dtdisc_t _Nvdisc =
|
||||
{
|
||||
|
|
|
|||
|
|
@ -135,10 +135,6 @@ void fcnotify(void (*fun)(Sfio_t*,const char*,int,void*),void* context)
|
|||
_Fcin.context = context;
|
||||
}
|
||||
|
||||
#ifdef __EXPORT__
|
||||
# define extern __EXPORT__
|
||||
#endif
|
||||
|
||||
#undef fcsave
|
||||
extern void fcsave(Fcin_t *fp)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -969,10 +969,6 @@ Sfdouble_t arith_strval(const char *s, char **end, Sfdouble_t(*convert)(const ch
|
|||
|
||||
#undef error
|
||||
|
||||
#if defined(__EXPORT__)
|
||||
#define extern __EXPORT__
|
||||
#endif
|
||||
|
||||
#ifndef DOMAIN
|
||||
#define DOMAIN _DOMAIN
|
||||
#endif
|
||||
|
|
@ -1010,6 +1006,4 @@ Sfdouble_t arith_strval(const char *s, char **end, Sfdouble_t(*convert)(const ch
|
|||
UNREACHABLE();
|
||||
}
|
||||
|
||||
#undef extern
|
||||
|
||||
#endif /* _mem_name_exception */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue