1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

x86: Build and pass all tests on 32 bit cygwin

* check/lightning.c: Add workaround to conflicting global
	optind variable in cygwin binutils that have an internal
	getopt* implementation.

	* lib/jit_x86-cpu.c: Add a simple define ffsl ffs if building
	for 32 bit and there is no ffsl function.
This commit is contained in:
Paulo Andrade 2014-09-24 14:32:49 -03:00
parent f469a5c87b
commit 4d0e4b32a1
3 changed files with 24 additions and 1 deletions

View file

@ -1,3 +1,12 @@
2014-09-24 Paulo Andrade <pcpa@gnu.org>
* check/lightning.c: Add workaround to conflicting global
optind variable in cygwin binutils that have an internal
getopt* implementation.
* lib/jit_x86-cpu.c: Add a simple define ffsl ffs if building
for 32 bit and there is no ffsl function.
2014-09-24 Paulo Andrade <pcpa@gnu.org> 2014-09-24 Paulo Andrade <pcpa@gnu.org>
* check/lightning.c: Add a hopefully temporary kludge to not use * check/lightning.c: Add a hopefully temporary kludge to not use

View file

@ -3952,6 +3952,16 @@ main(int argc, char *argv[])
int opt_short; int opt_short;
char cmdline[8192]; char cmdline[8192];
#if __WORDSIZE == 32 && defined(__CYGWIN__)
/* Cause a compile warning about redefinition without dllimport
* attribute, *but* cause correct linkage if liblightning.a is
* linked to binutils (that happens to have an internal
* getopt* implementation and an apparently conflicting
* optind global variable) */
extern int optind;
optind = 1;
#endif
progname = argv[0]; progname = argv[0];
init_jit(progname); init_jit(progname);

View file

@ -639,8 +639,12 @@ static void _prolog(jit_state_t*, jit_node_t*);
static void _epilog(jit_state_t*, jit_node_t*); static void _epilog(jit_state_t*, jit_node_t*);
# define patch_at(node, instr, label) _patch_at(_jit, node, instr, label) # define patch_at(node, instr, label) _patch_at(_jit, node, instr, label)
static void _patch_at(jit_state_t*, jit_node_t*, jit_word_t, jit_word_t); static void _patch_at(jit_state_t*, jit_node_t*, jit_word_t, jit_word_t);
# if __WORDSIZE == 64 && !defined(HAVE_FFSL) # if !defined(HAVE_FFSL)
# if __WORDSIZE == 32
# define ffsl(i) ffs(i)
# else
static int ffsl(long); static int ffsl(long);
# endif
# endif # endif
#endif #endif