mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-08 13:10:19 +02:00
2003-05-29 Stefan Jahn <stefan@lkcc.org>
* configure.in: Removed -lm check and added a cached check for __libc_stack_end to get it building for mingw32 hosts. 2003-05-29 Stefan Jahn <stefan@lkcc.org> * win32-dirent.c: Use malloc() instead of scm_malloc(). * stime.c (s_scm_strftime): Add a type cast to avoid compiler warning. * posix.c (s_scm_putenv): Disable use of unsetenv() for the mingw32 build. * modules.c (s_scm_module_import_interface): Renamed local variable interface to _interface. Seems like 'interface' is a special compiler directive for the mingw32 compiler. * mkstemp.c: Provide prototype to avoid compiler warning. * load.c (s_scm_search_path): Fixed absolute and relative path detections for native Windows platforms. * gc.h, threads.h: Export some more symbols using SCM_API (necessary to build on mingw32). * gc-freelist.c ("s_scm_map_free_list", "s_scm_gc_set_debug_check_freelist_x"): Fixed use of FUNC_NAME. * fports.c (fport_fill_input): Disable use of fport_wait_for_input() on Win32 platforms. * filesys.c (s_scm_basename): Fixed __MINGW32__ code. * Makefile.am: Modified some rules for cross compiling. 2003-05-29 Stefan Jahn <stefan@lkcc.org> * raw-ltdl.c: Some more modifications for mingw32 platforms. 2003-05-29 Stefan Jahn <stefan@lkcc.org> * Makefile.am (libguile_srfi_srfi_1_la_LDFLAGS, libguile_srfi_srfi_4_la_LDFLAGS, libguile_srfi_srfi_13_14__la_LDFLAGS): Added the -no-undefined option for the mingw32 build. 2003-05-29 Stefan Jahn <stefan@lkcc.org> * standalone/Makefile.am: Setup to build on mingw32.
This commit is contained in:
parent
42ad901d04
commit
2e945bccca
21 changed files with 150 additions and 45 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2003-05-29 Stefan Jahn <stefan@lkcc.org>
|
||||||
|
|
||||||
|
* configure.in: Removed -lm check and added a cached check for
|
||||||
|
__libc_stack_end to get it building for mingw32 hosts.
|
||||||
|
|
||||||
2003-05-19 Kevin Ryde <user42@zip.com.au>
|
2003-05-19 Kevin Ryde <user42@zip.com.au>
|
||||||
|
|
||||||
* README (Cross building Guile): Remove --with-cc-for-build in favour
|
* README (Cross building Guile): Remove --with-cc-for-build in favour
|
||||||
|
|
17
configure.in
17
configure.in
|
@ -483,7 +483,9 @@ AC_TYPE_GETGROUPS
|
||||||
AC_TYPE_SIGNAL
|
AC_TYPE_SIGNAL
|
||||||
AC_TYPE_MODE_T
|
AC_TYPE_MODE_T
|
||||||
|
|
||||||
AC_CHECK_LIB(m, main)
|
if test $MINGW32 = no; then
|
||||||
|
AC_CHECK_LIB(m, main)
|
||||||
|
fi
|
||||||
AC_CHECK_FUNCS(gethostbyname)
|
AC_CHECK_FUNCS(gethostbyname)
|
||||||
if test $ac_cv_func_gethostbyname = no; then
|
if test $ac_cv_func_gethostbyname = no; then
|
||||||
AC_CHECK_LIB(nsl, gethostbyname)
|
AC_CHECK_LIB(nsl, gethostbyname)
|
||||||
|
@ -594,13 +596,14 @@ AC_CHECK_FUNCS(sethostent gethostent endhostent dnl
|
||||||
inet_pton inet_ntop)
|
inet_pton inet_ntop)
|
||||||
|
|
||||||
AC_MSG_CHECKING(for __libc_stack_end)
|
AC_MSG_CHECKING(for __libc_stack_end)
|
||||||
AC_TRY_LINK([extern char *__libc_stack_end;],
|
AC_CACHE_VAL(guile_cv_have_libc_stack_end,
|
||||||
[char *p = __libc_stack_end;],
|
[AC_TRY_LINK([extern char *__libc_stack_end;],
|
||||||
have_libc_stack_end=yes,
|
[char *p = __libc_stack_end;],
|
||||||
have_libc_stack_end=no)
|
guile_cv_have_libc_stack_end=yes,
|
||||||
AC_MSG_RESULT($have_libc_stack_end)
|
guile_cv_have_libc_stack_end=no)])
|
||||||
|
AC_MSG_RESULT($guile_cv_have_libc_stack_end)
|
||||||
|
|
||||||
if test $have_libc_stack_end = yes; then
|
if test $guile_cv_have_libc_stack_end = yes; then
|
||||||
AC_DEFINE(HAVE_LIBC_STACK_END, 1,
|
AC_DEFINE(HAVE_LIBC_STACK_END, 1,
|
||||||
[Define if you have the __libc_stack_end variable.])
|
[Define if you have the __libc_stack_end variable.])
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2003-05-29 Stefan Jahn <stefan@lkcc.org>
|
||||||
|
|
||||||
|
* raw-ltdl.c: Some more modifications for mingw32 platforms.
|
||||||
|
|
||||||
2003-03-24 Marius Vollmer <marius.vollmer@uni-dortmund.de>
|
2003-03-24 Marius Vollmer <marius.vollmer@uni-dortmund.de>
|
||||||
|
|
||||||
* raw-ltdl.c: Include <config.h> instead of
|
* raw-ltdl.c: Include <config.h> instead of
|
||||||
|
|
|
@ -163,11 +163,11 @@ static lt_ptr lt_erealloc LT_PARAMS((lt_ptr addr, size_t size));
|
||||||
#define rpl_realloc realloc
|
#define rpl_realloc realloc
|
||||||
|
|
||||||
/* These are the pointers that can be changed by the caller: */
|
/* These are the pointers that can be changed by the caller: */
|
||||||
SCMLTSTATIC LT_GLOBAL_DATA lt_ptr (*lt_dlmalloc) LT_PARAMS((size_t size))
|
SCMLTSTATIC lt_ptr (*lt_dlmalloc) LT_PARAMS((size_t size))
|
||||||
= (lt_ptr (*) LT_PARAMS((size_t))) malloc;
|
= (lt_ptr (*) LT_PARAMS((size_t))) malloc;
|
||||||
SCMLTSTATIC LT_GLOBAL_DATA lt_ptr (*lt_dlrealloc) LT_PARAMS((lt_ptr ptr, size_t size))
|
SCMLTSTATIC lt_ptr (*lt_dlrealloc) LT_PARAMS((lt_ptr ptr, size_t size))
|
||||||
= (lt_ptr (*) LT_PARAMS((lt_ptr, size_t))) rpl_realloc;
|
= (lt_ptr (*) LT_PARAMS((lt_ptr, size_t))) rpl_realloc;
|
||||||
SCMLTSTATIC LT_GLOBAL_DATA void (*lt_dlfree) LT_PARAMS((lt_ptr ptr))
|
SCMLTSTATIC void (*lt_dlfree) LT_PARAMS((lt_ptr ptr))
|
||||||
= (void (*) LT_PARAMS((lt_ptr))) free;
|
= (void (*) LT_PARAMS((lt_ptr))) free;
|
||||||
|
|
||||||
/* The following macros reduce the amount of typing needed to cast
|
/* The following macros reduce the amount of typing needed to cast
|
||||||
|
@ -1185,7 +1185,6 @@ sys_wll_open (loader_data, filename)
|
||||||
{
|
{
|
||||||
lt_dlhandle cur;
|
lt_dlhandle cur;
|
||||||
lt_module module = NULL;
|
lt_module module = NULL;
|
||||||
const char *errormsg = NULL;
|
|
||||||
char *searchname = NULL;
|
char *searchname = NULL;
|
||||||
char *ext;
|
char *ext;
|
||||||
char self_name_buf[MAX_PATH];
|
char self_name_buf[MAX_PATH];
|
||||||
|
|
|
@ -1,3 +1,35 @@
|
||||||
|
2003-05-29 Stefan Jahn <stefan@lkcc.org>
|
||||||
|
|
||||||
|
* win32-dirent.c: Use malloc() instead of scm_malloc().
|
||||||
|
|
||||||
|
* stime.c (s_scm_strftime): Add a type cast to avoid compiler
|
||||||
|
warning.
|
||||||
|
|
||||||
|
* posix.c (s_scm_putenv): Disable use of unsetenv() for the
|
||||||
|
mingw32 build.
|
||||||
|
|
||||||
|
* modules.c (s_scm_module_import_interface): Renamed local
|
||||||
|
variable interface to _interface. Seems like 'interface'
|
||||||
|
is a special compiler directive for the mingw32 compiler.
|
||||||
|
|
||||||
|
* mkstemp.c: Provide prototype to avoid compiler warning.
|
||||||
|
|
||||||
|
* load.c (s_scm_search_path): Fixed absolute and relative
|
||||||
|
path detections for native Windows platforms.
|
||||||
|
|
||||||
|
* gc.h, threads.h: Export some more symbols using SCM_API (necessary
|
||||||
|
to build on mingw32).
|
||||||
|
|
||||||
|
* gc-freelist.c ("s_scm_map_free_list",
|
||||||
|
"s_scm_gc_set_debug_check_freelist_x"): Fixed use of FUNC_NAME.
|
||||||
|
|
||||||
|
* fports.c (fport_fill_input): Disable use of
|
||||||
|
fport_wait_for_input() on Win32 platforms.
|
||||||
|
|
||||||
|
* filesys.c (s_scm_basename): Fixed __MINGW32__ code.
|
||||||
|
|
||||||
|
* Makefile.am: Modified some rules for cross compiling.
|
||||||
|
|
||||||
2003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
2003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||||
|
|
||||||
* eval.c (SCM_CEVAL): In case of an application, all checks for a
|
* eval.c (SCM_CEVAL): In case of an application, all checks for a
|
||||||
|
|
|
@ -42,15 +42,24 @@ gen_scmconfig_SOURCES = gen-scmconfig.c
|
||||||
## For some reason, OBJEXT does not include the dot
|
## For some reason, OBJEXT does not include the dot
|
||||||
gen-scmconfig.$(OBJEXT): gen-scmconfig.c
|
gen-scmconfig.$(OBJEXT): gen-scmconfig.c
|
||||||
if [ "$(cross_compiling)" = "yes" ]; then \
|
if [ "$(cross_compiling)" = "yes" ]; then \
|
||||||
$(CC_FOR_BUILD) -c -o $@ $<; \
|
$(CC_FOR_BUILD) $(DEFS) $(INCLUDES) -c -o $@ $<; \
|
||||||
else \
|
else \
|
||||||
$(COMPILE) -c -o $@ $<; \
|
$(COMPILE) -c -o $@ $<; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
scmconfig.h: ${top_builddir}/config.h gen-scmconfig
|
## Override default rule; this should run on BUILD host.
|
||||||
|
gen-scmconfig$(EXEEXT): $(gen_scmconfig_OBJECTS) $(gen_scmconfig_DEPENDENCIES)
|
||||||
|
@rm -f gen-scmconfig$(EXEEXT)
|
||||||
|
if [ "$(cross_compiling)" = "yes" ]; then \
|
||||||
|
$(CCLD_FOR_BUILD) -o $@ $(gen_scmconfig_OBJECTS); \
|
||||||
|
else \
|
||||||
|
$(LINK) $(gen_scmconfig_OBJECTS) $(LDADD) $(LIBS); \
|
||||||
|
fi
|
||||||
|
|
||||||
|
scmconfig.h: ${top_builddir}/config.h gen-scmconfig$(EXEEXT)
|
||||||
rm -f scmconfig.h.tmp
|
rm -f scmconfig.h.tmp
|
||||||
cat $(srcdir)/scmconfig.h.top > scmconfig.h.tmp
|
cat $(srcdir)/scmconfig.h.top > scmconfig.h.tmp
|
||||||
./gen-scmconfig >> scmconfig.h.tmp
|
./gen-scmconfig$(EXEEXT) >> scmconfig.h.tmp
|
||||||
chmod 444 scmconfig.h.tmp
|
chmod 444 scmconfig.h.tmp
|
||||||
rm -f scmconfig.h
|
rm -f scmconfig.h
|
||||||
mv scmconfig.h.tmp scmconfig.h
|
mv scmconfig.h.tmp scmconfig.h
|
||||||
|
@ -61,7 +70,7 @@ guile_filter_doc_snarfage_SOURCES = c-tokenize.c
|
||||||
## For some reason, OBJEXT does not include the dot
|
## For some reason, OBJEXT does not include the dot
|
||||||
c-tokenize.$(OBJEXT): c-tokenize.c
|
c-tokenize.$(OBJEXT): c-tokenize.c
|
||||||
if [ "$(cross_compiling)" = "yes" ]; then \
|
if [ "$(cross_compiling)" = "yes" ]; then \
|
||||||
$(CC_FOR_BUILD) -c -o $@ $<; \
|
$(CC_FOR_BUILD) $(DEFS) $(INCLUDES) -c -o $@ $<; \
|
||||||
else \
|
else \
|
||||||
$(COMPILE) -c -o $@ $<; \
|
$(COMPILE) -c -o $@ $<; \
|
||||||
fi
|
fi
|
||||||
|
@ -271,10 +280,10 @@ alldotdocfiles = $(DOT_DOC_FILES) $(EXTRA_DOT_DOC_FILES)
|
||||||
snarf2checkedtexi = GUILE="$(GUILE_FOR_BUILD)" $(top_srcdir)/scripts/snarf-check-and-output-texi
|
snarf2checkedtexi = GUILE="$(GUILE_FOR_BUILD)" $(top_srcdir)/scripts/snarf-check-and-output-texi
|
||||||
dotdoc2texi = cat $(alldotdocfiles) | $(snarf2checkedtexi)
|
dotdoc2texi = cat $(alldotdocfiles) | $(snarf2checkedtexi)
|
||||||
|
|
||||||
guile.texi: $(alldotdocfiles) guile
|
guile.texi: $(alldotdocfiles) guile$(EXEEXT)
|
||||||
$(dotdoc2texi) --manual > $@ || { rm $@; false; }
|
$(dotdoc2texi) --manual > $@ || { rm $@; false; }
|
||||||
|
|
||||||
guile-procedures.texi: $(alldotdocfiles) guile
|
guile-procedures.texi: $(alldotdocfiles) guile$(EXEEXT)
|
||||||
$(dotdoc2texi) > $@ || { rm $@; false; }
|
$(dotdoc2texi) > $@ || { rm $@; false; }
|
||||||
|
|
||||||
if HAVE_MAKEINFO
|
if HAVE_MAKEINFO
|
||||||
|
|
|
@ -1503,14 +1503,14 @@ SCM_DEFINE (scm_basename, "basename", 1, 1, 0,
|
||||||
if (j == -1)
|
if (j == -1)
|
||||||
end = i;
|
end = i;
|
||||||
#ifdef __MINGW32__
|
#ifdef __MINGW32__
|
||||||
while (i >= 0 && (f[i] != '/' || f[i] != '\\')) --i;
|
while (i >= 0 && f[i] != '/' && f[i] != '\\') --i;
|
||||||
#else
|
#else
|
||||||
while (i >= 0 && f[i] != '/') --i;
|
while (i >= 0 && f[i] != '/') --i;
|
||||||
#endif /* ndef __MINGW32__ */
|
#endif /* ndef __MINGW32__ */
|
||||||
if (i == end)
|
if (i == end)
|
||||||
{
|
{
|
||||||
#ifdef __MINGW32__
|
#ifdef __MINGW32__
|
||||||
if (len > 0 && (f[0] == '/' || f[i] == '\\'))
|
if (len > 0 && (f[0] == '/' || f[0] == '\\'))
|
||||||
#else
|
#else
|
||||||
if (len > 0 && f[0] == '/')
|
if (len > 0 && f[0] == '/')
|
||||||
#endif /* ndef __MINGW32__ */
|
#endif /* ndef __MINGW32__ */
|
||||||
|
|
|
@ -513,6 +513,7 @@ fport_print (SCM exp, SCM port, scm_print_state *pstate SCM_UNUSED)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __MINGW32__
|
||||||
/* thread-local block for input on fport's fdes. */
|
/* thread-local block for input on fport's fdes. */
|
||||||
static void
|
static void
|
||||||
fport_wait_for_input (SCM port)
|
fport_wait_for_input (SCM port)
|
||||||
|
@ -537,6 +538,7 @@ fport_wait_for_input (SCM port)
|
||||||
while (n == -1 && errno == EINTR);
|
while (n == -1 && errno == EINTR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* !__MINGW32__ */
|
||||||
|
|
||||||
static void fport_flush (SCM port);
|
static void fport_flush (SCM port);
|
||||||
|
|
||||||
|
@ -549,7 +551,9 @@ fport_fill_input (SCM port)
|
||||||
scm_t_port *pt = SCM_PTAB_ENTRY (port);
|
scm_t_port *pt = SCM_PTAB_ENTRY (port);
|
||||||
scm_t_fport *fp = SCM_FSTREAM (port);
|
scm_t_fport *fp = SCM_FSTREAM (port);
|
||||||
|
|
||||||
|
#ifndef __MINGW32__
|
||||||
fport_wait_for_input (port);
|
fport_wait_for_input (port);
|
||||||
|
#endif /* !__MINGW32__ */
|
||||||
SCM_SYSCALL (count = read (fp->fdes, pt->read_buf, pt->read_buf_size));
|
SCM_SYSCALL (count = read (fp->fdes, pt->read_buf, pt->read_buf_size));
|
||||||
if (count == -1)
|
if (count == -1)
|
||||||
scm_syserror ("fport_fill_input");
|
scm_syserror ("fport_fill_input");
|
||||||
|
|
|
@ -48,16 +48,17 @@ is unset before allocation. --hwn
|
||||||
SCM_DEFINE (scm_map_free_list, "map-free-list", 0, 0, 0,
|
SCM_DEFINE (scm_map_free_list, "map-free-list", 0, 0, 0,
|
||||||
(),
|
(),
|
||||||
"DEPRECATED\n")
|
"DEPRECATED\n")
|
||||||
#define FUNC_NAME s_scm_map_free_list
|
#define FUNC_NAME "s_scm_map_free_list"
|
||||||
{
|
{
|
||||||
scm_c_issue_deprecation_warning ("map-free-list has been removed from GUILE. Doing nothing\n");
|
scm_c_issue_deprecation_warning ("map-free-list has been removed from GUILE. Doing nothing\n");
|
||||||
return SCM_UNSPECIFIED;
|
return SCM_UNSPECIFIED;
|
||||||
}
|
}
|
||||||
|
#undef FUNC_NAME
|
||||||
|
|
||||||
SCM_DEFINE (scm_gc_set_debug_check_freelist_x, "gc-set-debug-check-freelist!", 1, 0, 0,
|
SCM_DEFINE (scm_gc_set_debug_check_freelist_x, "gc-set-debug-check-freelist!", 1, 0, 0,
|
||||||
(SCM flag),
|
(SCM flag),
|
||||||
"DEPRECATED.\n")
|
"DEPRECATED.\n")
|
||||||
#define FUNC_NAME s_scm_gc_set_debug_check_freelist_x
|
#define FUNC_NAME "s_scm_gc_set_debug_check_freelist_x"
|
||||||
{
|
{
|
||||||
scm_c_issue_deprecation_warning ("gc-set-debug-check-freelist! has been removed from GUILE. Doing nothing\n");
|
scm_c_issue_deprecation_warning ("gc-set-debug-check-freelist! has been removed from GUILE. Doing nothing\n");
|
||||||
return SCM_UNSPECIFIED;
|
return SCM_UNSPECIFIED;
|
||||||
|
|
|
@ -235,7 +235,7 @@ void scm_i_expensive_validation_check (SCM cell);
|
||||||
SCM_API int scm_block_gc;
|
SCM_API int scm_block_gc;
|
||||||
SCM_API int scm_gc_heap_lock;
|
SCM_API int scm_gc_heap_lock;
|
||||||
SCM_API unsigned int scm_gc_running_p;
|
SCM_API unsigned int scm_gc_running_p;
|
||||||
extern scm_t_rec_mutex scm_i_sweep_mutex;
|
SCM_API scm_t_rec_mutex scm_i_sweep_mutex;
|
||||||
|
|
||||||
|
|
||||||
#if (SCM_ENABLE_DEPRECATED == 1)
|
#if (SCM_ENABLE_DEPRECATED == 1)
|
||||||
|
@ -260,10 +260,10 @@ SCM_API size_t scm_max_segment_size;
|
||||||
*ls = SCM_EOL; \
|
*ls = SCM_EOL; \
|
||||||
scm_setspecific ((key), ls); } while (0)
|
scm_setspecific ((key), ls); } while (0)
|
||||||
#define SCM_FREELIST_LOC(key) ((SCM *) scm_getspecific (key))
|
#define SCM_FREELIST_LOC(key) ((SCM *) scm_getspecific (key))
|
||||||
extern scm_t_key scm_i_freelist;
|
SCM_API scm_t_key scm_i_freelist;
|
||||||
extern scm_t_key scm_i_freelist2;
|
SCM_API scm_t_key scm_i_freelist2;
|
||||||
extern struct scm_t_cell_type_statistics scm_i_master_freelist;
|
SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist;
|
||||||
extern struct scm_t_cell_type_statistics scm_i_master_freelist2;
|
SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist2;
|
||||||
|
|
||||||
|
|
||||||
SCM_API unsigned long scm_gc_cells_swept;
|
SCM_API unsigned long scm_gc_cells_swept;
|
||||||
|
@ -288,9 +288,13 @@ SCM_API scm_t_c_hook scm_after_sweep_c_hook;
|
||||||
SCM_API scm_t_c_hook scm_after_gc_c_hook;
|
SCM_API scm_t_c_hook scm_after_gc_c_hook;
|
||||||
|
|
||||||
#if defined (GUILE_DEBUG) || defined (GUILE_DEBUG_FREELIST)
|
#if defined (GUILE_DEBUG) || defined (GUILE_DEBUG_FREELIST)
|
||||||
|
#if (SCM_ENABLE_DEPRECATED == 1)
|
||||||
|
SCM scm_map_free_list (void);
|
||||||
|
#else
|
||||||
#define scm_map_free_list deprecated
|
#define scm_map_free_list deprecated
|
||||||
#define scm_free_list_length deprecated
|
#define scm_free_list_length deprecated
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (SCM_ENABLE_DEPRECATED == 1) && defined (GUILE_DEBUG_FREELIST)
|
#if (SCM_ENABLE_DEPRECATED == 1) && defined (GUILE_DEBUG_FREELIST)
|
||||||
SCM_API SCM scm_gc_set_debug_check_freelist_x (SCM flag);
|
SCM_API SCM scm_gc_set_debug_check_freelist_x (SCM flag);
|
||||||
|
|
|
@ -188,7 +188,11 @@ scm_internal_parse_path (char *path, SCM tail)
|
||||||
do {
|
do {
|
||||||
/* Scan back to the beginning of the current element. */
|
/* Scan back to the beginning of the current element. */
|
||||||
do scan--;
|
do scan--;
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
while (scan >= path && *scan != ';');
|
||||||
|
#else
|
||||||
while (scan >= path && *scan != ':');
|
while (scan >= path && *scan != ':');
|
||||||
|
#endif
|
||||||
tail = scm_cons (scm_mem2string (scan + 1, elt_end - (scan + 1)),
|
tail = scm_cons (scm_mem2string (scan + 1, elt_end - (scan + 1)),
|
||||||
tail);
|
tail);
|
||||||
elt_end = scan;
|
elt_end = scan;
|
||||||
|
@ -273,7 +277,16 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0,
|
||||||
filename_len = SCM_STRING_LENGTH (filename);
|
filename_len = SCM_STRING_LENGTH (filename);
|
||||||
|
|
||||||
/* If FILENAME is absolute, return it unchanged. */
|
/* If FILENAME is absolute, return it unchanged. */
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
if (((filename_len >= 1) &&
|
||||||
|
(filename_chars[0] == '/' || filename_chars[0] == '\\')) ||
|
||||||
|
((filename_len >= 3) && filename_chars[1] == ':' &&
|
||||||
|
((filename_chars[0] >= 'a' && filename_chars[0] <= 'z') ||
|
||||||
|
(filename_chars[0] >= 'A' && filename_chars[0] <= 'Z')) &&
|
||||||
|
(filename_chars[2] == '/' || filename_chars[2] == '\\')))
|
||||||
|
#else
|
||||||
if (filename_len >= 1 && filename_chars[0] == '/')
|
if (filename_len >= 1 && filename_chars[0] == '/')
|
||||||
|
#endif
|
||||||
return filename;
|
return filename;
|
||||||
|
|
||||||
/* Find the length of the longest element of path. */
|
/* Find the length of the longest element of path. */
|
||||||
|
@ -306,7 +319,11 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0,
|
||||||
extensions = SCM_EOL;
|
extensions = SCM_EOL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
else if (*endp == '/' || *endp == '\\')
|
||||||
|
#else
|
||||||
else if (*endp == '/')
|
else if (*endp == '/')
|
||||||
|
#endif
|
||||||
/* This filename has no extension, so keep the current list
|
/* This filename has no extension, so keep the current list
|
||||||
of extensions. */
|
of extensions. */
|
||||||
break;
|
break;
|
||||||
|
@ -351,7 +368,11 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0,
|
||||||
/* Concatenate the path name and the filename. */
|
/* Concatenate the path name and the filename. */
|
||||||
len = SCM_STRING_LENGTH (dir);
|
len = SCM_STRING_LENGTH (dir);
|
||||||
memcpy (buf, SCM_STRING_CHARS (dir), len);
|
memcpy (buf, SCM_STRING_CHARS (dir), len);
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
if (len >= 1 && buf[len - 1] != '/' && buf[len - 1] != '\\')
|
||||||
|
#else
|
||||||
if (len >= 1 && buf[len - 1] != '/')
|
if (len >= 1 && buf[len - 1] != '/')
|
||||||
|
#endif
|
||||||
buf[len++] = '/';
|
buf[len++] = '/';
|
||||||
memcpy (buf + len, filename_chars, filename_len);
|
memcpy (buf + len, filename_chars, filename_len);
|
||||||
len += filename_len;
|
len += filename_len;
|
||||||
|
@ -433,7 +454,12 @@ SCM_DEFINE (scm_primitive_load_path, "primitive-load-path", 1, 0, 0,
|
||||||
if (SCM_FALSEP (full_filename))
|
if (SCM_FALSEP (full_filename))
|
||||||
{
|
{
|
||||||
int absolute = (SCM_STRING_LENGTH (filename) >= 1
|
int absolute = (SCM_STRING_LENGTH (filename) >= 1
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
&& (SCM_STRING_CHARS (filename)[0] == '/' ||
|
||||||
|
SCM_STRING_CHARS (filename)[0] == '\\'));
|
||||||
|
#else
|
||||||
&& SCM_STRING_CHARS (filename)[0] == '/');
|
&& SCM_STRING_CHARS (filename)[0] == '/');
|
||||||
|
#endif
|
||||||
SCM_MISC_ERROR ((absolute
|
SCM_MISC_ERROR ((absolute
|
||||||
? "Unable to load file ~S"
|
? "Unable to load file ~S"
|
||||||
: "Unable to find file ~S in load path"),
|
: "Unable to find file ~S in load path"),
|
||||||
|
|
|
@ -47,6 +47,11 @@
|
||||||
#define TMP_MAX 16384
|
#define TMP_MAX 16384
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* We provide this prototype to avoid compiler warnings. If this ever
|
||||||
|
conflicts with a declaration in a system header file, we'll find
|
||||||
|
out, because we should include that header file here. */
|
||||||
|
int mkstemp (char *);
|
||||||
|
|
||||||
/* Generate a unique temporary file name from TEMPLATE.
|
/* Generate a unique temporary file name from TEMPLATE.
|
||||||
|
|
||||||
TEMPLATE has the form:
|
TEMPLATE has the form:
|
||||||
|
|
|
@ -401,25 +401,25 @@ SCM_DEFINE (scm_module_import_interface, "module-import-interface", 2, 0, 0,
|
||||||
uses = SCM_MODULE_USES (module);
|
uses = SCM_MODULE_USES (module);
|
||||||
while (SCM_CONSP (uses))
|
while (SCM_CONSP (uses))
|
||||||
{
|
{
|
||||||
SCM interface = SCM_CAR (uses);
|
SCM _interface = SCM_CAR (uses);
|
||||||
/* 1. Check module obarray */
|
/* 1. Check module obarray */
|
||||||
SCM b = scm_hashq_ref (SCM_MODULE_OBARRAY (interface), sym, SCM_BOOL_F);
|
SCM b = scm_hashq_ref (SCM_MODULE_OBARRAY (_interface), sym, SCM_BOOL_F);
|
||||||
if (SCM_BOUND_THING_P (b))
|
if (SCM_BOUND_THING_P (b))
|
||||||
return interface;
|
return _interface;
|
||||||
{
|
{
|
||||||
SCM binder = SCM_MODULE_BINDER (interface);
|
SCM binder = SCM_MODULE_BINDER (_interface);
|
||||||
if (!SCM_FALSEP (binder))
|
if (!SCM_FALSEP (binder))
|
||||||
/* 2. Custom binder */
|
/* 2. Custom binder */
|
||||||
{
|
{
|
||||||
b = scm_call_3 (binder, interface, sym, SCM_BOOL_F);
|
b = scm_call_3 (binder, _interface, sym, SCM_BOOL_F);
|
||||||
if (SCM_BOUND_THING_P (b))
|
if (SCM_BOUND_THING_P (b))
|
||||||
return interface;
|
return _interface;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* 3. Search use list recursively. */
|
/* 3. Search use list recursively. */
|
||||||
interface = scm_module_import_interface (interface, sym);
|
_interface = scm_module_import_interface (_interface, sym);
|
||||||
if (!SCM_FALSEP (interface))
|
if (!SCM_FALSEP (_interface))
|
||||||
return interface;
|
return _interface;
|
||||||
uses = SCM_CDR (uses);
|
uses = SCM_CDR (uses);
|
||||||
}
|
}
|
||||||
return SCM_BOOL_F;
|
return SCM_BOOL_F;
|
||||||
|
|
|
@ -1162,6 +1162,7 @@ SCM_DEFINE (scm_putenv, "putenv", 1, 0, 0,
|
||||||
|
|
||||||
SCM_VALIDATE_STRING (1, str);
|
SCM_VALIDATE_STRING (1, str);
|
||||||
|
|
||||||
|
#ifndef __MINGW32__
|
||||||
if (strchr (SCM_STRING_CHARS (str), '=') == NULL)
|
if (strchr (SCM_STRING_CHARS (str), '=') == NULL)
|
||||||
{
|
{
|
||||||
/* No '=' in argument means we should remove the variable from
|
/* No '=' in argument means we should remove the variable from
|
||||||
|
@ -1170,6 +1171,7 @@ SCM_DEFINE (scm_putenv, "putenv", 1, 0, 0,
|
||||||
unsetenv (SCM_STRING_CHARS (str));
|
unsetenv (SCM_STRING_CHARS (str));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
/* must make a new copy to be left in the environment, safe from gc. */
|
/* must make a new copy to be left in the environment, safe from gc. */
|
||||||
ptr = scm_malloc (SCM_STRING_LENGTH (str) + 1);
|
ptr = scm_malloc (SCM_STRING_LENGTH (str) + 1);
|
||||||
|
|
|
@ -561,7 +561,7 @@ SCM_DEFINE (scm_strftime, "strftime", 2, 0, 0,
|
||||||
environment. interrupts and thread switching must be deferred
|
environment. interrupts and thread switching must be deferred
|
||||||
until TZ is restored. */
|
until TZ is restored. */
|
||||||
char **oldenv = NULL;
|
char **oldenv = NULL;
|
||||||
SCM *velts = SCM_VELTS (stime);
|
SCM *velts = (SCM *) SCM_VELTS (stime);
|
||||||
int have_zone = 0;
|
int have_zone = 0;
|
||||||
|
|
||||||
if (!SCM_FALSEP (velts[10]) && *SCM_STRING_CHARS (velts[10]) != 0)
|
if (!SCM_FALSEP (velts[10]) && *SCM_STRING_CHARS (velts[10]) != 0)
|
||||||
|
|
|
@ -238,7 +238,7 @@ extern scm_t_key scm_i_thread_key;
|
||||||
They really refer to the root state of the running thread. */
|
They really refer to the root state of the running thread. */
|
||||||
#define SCM_THREAD_LOCAL_DATA (scm_i_plugin_getspecific (scm_i_root_state_key))
|
#define SCM_THREAD_LOCAL_DATA (scm_i_plugin_getspecific (scm_i_root_state_key))
|
||||||
#define SCM_SET_THREAD_LOCAL_DATA(x) scm_i_set_thread_data(x)
|
#define SCM_SET_THREAD_LOCAL_DATA(x) scm_i_set_thread_data(x)
|
||||||
extern scm_t_key scm_i_root_state_key;
|
SCM_API scm_t_key scm_i_root_state_key;
|
||||||
SCM_API void scm_i_set_thread_data (void *);
|
SCM_API void scm_i_set_thread_data (void *);
|
||||||
|
|
||||||
#endif /* SCM_THREADS_H */
|
#endif /* SCM_THREADS_H */
|
||||||
|
|
|
@ -33,7 +33,7 @@ opendir (const char * name)
|
||||||
|
|
||||||
if (!name || !*name)
|
if (!name || !*name)
|
||||||
return NULL;
|
return NULL;
|
||||||
file = scm_malloc (strlen (name) + 3);
|
file = malloc (strlen (name) + 3);
|
||||||
strcpy (file, name);
|
strcpy (file, name);
|
||||||
if (file[strlen (name) - 1] != '/' && file[strlen (name) - 1] != '\\')
|
if (file[strlen (name) - 1] != '/' && file[strlen (name) - 1] != '\\')
|
||||||
strcat (file, "/*");
|
strcat (file, "/*");
|
||||||
|
@ -46,10 +46,10 @@ opendir (const char * name)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
dir = scm_malloc (sizeof (DIR));
|
dir = malloc (sizeof (DIR));
|
||||||
dir->mask = file;
|
dir->mask = file;
|
||||||
dir->fd = (int) hnd;
|
dir->fd = (int) hnd;
|
||||||
dir->data = scm_malloc (sizeof (WIN32_FIND_DATA));
|
dir->data = malloc (sizeof (WIN32_FIND_DATA));
|
||||||
dir->allocation = sizeof (WIN32_FIND_DATA);
|
dir->allocation = sizeof (WIN32_FIND_DATA);
|
||||||
dir->size = dir->allocation;
|
dir->size = dir->allocation;
|
||||||
dir->filepos = 0;
|
dir->filepos = 0;
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2003-05-29 Stefan Jahn <stefan@lkcc.org>
|
||||||
|
|
||||||
|
* Makefile.am (libguile_srfi_srfi_1_la_LDFLAGS,
|
||||||
|
libguile_srfi_srfi_4_la_LDFLAGS,
|
||||||
|
libguile_srfi_srfi_13_14__la_LDFLAGS): Added the -no-undefined
|
||||||
|
option for the mingw32 build.
|
||||||
|
|
||||||
2003-05-13 Kevin Ryde <user42@zip.com.au>
|
2003-05-13 Kevin Ryde <user42@zip.com.au>
|
||||||
|
|
||||||
* srfi-1.scm (delete): Fix predicate arg order to match srfi-1 spec.
|
* srfi-1.scm (delete): Fix predicate arg order to match srfi-1 spec.
|
||||||
|
|
|
@ -41,17 +41,17 @@ BUILT_SOURCES = srfi-1.x srfi-4.x srfi-13.x srfi-14.x
|
||||||
|
|
||||||
libguile_srfi_srfi_1_la_SOURCES = srfi-1.x srfi-1.c
|
libguile_srfi_srfi_1_la_SOURCES = srfi-1.x srfi-1.c
|
||||||
libguile_srfi_srfi_1_la_LIBADD = ../libguile/libguile.la
|
libguile_srfi_srfi_1_la_LIBADD = ../libguile/libguile.la
|
||||||
libguile_srfi_srfi_1_la_LDFLAGS = -export-dynamic \
|
libguile_srfi_srfi_1_la_LDFLAGS = -no-undefined -export-dynamic \
|
||||||
-version-info @LIBGUILE_SRFI_SRFI_1_INTERFACE@
|
-version-info @LIBGUILE_SRFI_SRFI_1_INTERFACE@
|
||||||
|
|
||||||
libguile_srfi_srfi_4_la_SOURCES = srfi-4.x srfi-4.c
|
libguile_srfi_srfi_4_la_SOURCES = srfi-4.x srfi-4.c
|
||||||
libguile_srfi_srfi_4_la_LIBADD = ../libguile/libguile.la
|
libguile_srfi_srfi_4_la_LIBADD = ../libguile/libguile.la
|
||||||
libguile_srfi_srfi_4_la_LDFLAGS = -export-dynamic \
|
libguile_srfi_srfi_4_la_LDFLAGS = -no-undefined -export-dynamic \
|
||||||
-version-info @LIBGUILE_SRFI_SRFI_4_INTERFACE@
|
-version-info @LIBGUILE_SRFI_SRFI_4_INTERFACE@
|
||||||
|
|
||||||
libguile_srfi_srfi_13_14_la_SOURCES = srfi-13.x srfi-13.c srfi-14.x srfi-14.c
|
libguile_srfi_srfi_13_14_la_SOURCES = srfi-13.x srfi-13.c srfi-14.x srfi-14.c
|
||||||
libguile_srfi_srfi_13_14_la_LIBADD = ../libguile/libguile.la
|
libguile_srfi_srfi_13_14_la_LIBADD = ../libguile/libguile.la
|
||||||
libguile_srfi_srfi_13_14_la_LDFLAGS = -export-dynamic \
|
libguile_srfi_srfi_13_14_la_LDFLAGS = -no-undefined -export-dynamic \
|
||||||
-version-info @LIBGUILE_SRFI_SRFI_13_14_INTERFACE@
|
-version-info @LIBGUILE_SRFI_SRFI_13_14_INTERFACE@
|
||||||
|
|
||||||
srfidir = $(datadir)/guile/$(GUILE_EFFECTIVE_VERSION)/srfi
|
srfidir = $(datadir)/guile/$(GUILE_EFFECTIVE_VERSION)/srfi
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2003-05-29 Stefan Jahn <stefan@lkcc.org>
|
||||||
|
|
||||||
|
* standalone/Makefile.am: Setup to build on mingw32.
|
||||||
|
|
||||||
2003-05-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
2003-05-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||||
|
|
||||||
* tests/elisp.test: Added missing quote around vector constants.
|
* tests/elisp.test: Added missing quote around vector constants.
|
||||||
|
|
|
@ -11,7 +11,7 @@ TESTS_ENVIRONMENT = "${top_builddir}/pre-inst-guile-env"
|
||||||
test_cflags := \
|
test_cflags := \
|
||||||
-I$(top_srcdir)/test-suite/standalone \
|
-I$(top_srcdir)/test-suite/standalone \
|
||||||
-I$(top_srcdir) \
|
-I$(top_srcdir) \
|
||||||
-I$(top_srcdir)/libguile-ltdl
|
-I$(top_srcdir)/libguile-ltdl $(EXTRA_DEFS)
|
||||||
|
|
||||||
snarfcppopts = $(DEFS) $(DEFAULT_INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
snarfcppopts = $(DEFS) $(DEFAULT_INCLUDES) $(CPPFLAGS) $(CFLAGS)
|
||||||
%.x: %.c
|
%.x: %.c
|
||||||
|
@ -39,7 +39,7 @@ TESTS += test-gh
|
||||||
noinst_LTLIBRARIES += libtest-asmobs.la
|
noinst_LTLIBRARIES += libtest-asmobs.la
|
||||||
libtest_asmobs_la_SOURCES = test-asmobs-lib.c test-asmobs-lib.x
|
libtest_asmobs_la_SOURCES = test-asmobs-lib.c test-asmobs-lib.x
|
||||||
libtest_asmobs_la_CFLAGS = ${test_cflags}
|
libtest_asmobs_la_CFLAGS = ${test_cflags}
|
||||||
libtest_asmobs_la_LDFLAGS = -rpath `pwd` # so libtool will really build an .so
|
libtest_asmobs_la_LDFLAGS = -no-undefined -rpath `pwd` # so libtool will really build an .so
|
||||||
libtest_asmobs_la_LIBADD = ${top_builddir}/libguile/libguile.la
|
libtest_asmobs_la_LIBADD = ${top_builddir}/libguile/libguile.la
|
||||||
BUILT_SOURCES += test-asmobs-lib.x
|
BUILT_SOURCES += test-asmobs-lib.x
|
||||||
check_SCRIPTS += test-asmobs
|
check_SCRIPTS += test-asmobs
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue