[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] [Chicken-announce] CHICKEN 4.9.0rc1 is available
From: |
Peter Bex |
Subject: |
Re: [Chicken-hackers] [Chicken-announce] CHICKEN 4.9.0rc1 is available |
Date: |
Fri, 2 May 2014 15:52:24 +0200 |
User-agent: |
Mutt/1.4.2.3i |
On Fri, Apr 18, 2014 at 01:38:42PM -0400, John Cowan wrote:
> And this one eliminates the following complaint from the assembler:
> apply-hack.x86-64.S: Assembler messages:
> apply-hack.x86-64.S:32: Warning: .type pseudo-op used outside of .def/.endef
> ignored.
> apply-hack.x86-64.S:32: Error: junk at end of line, first unrecognized
> character is `_'
> rules.make:184: recipe for target 'apply-hack.x86-64.o' failed
>
> --- apply-hack.x86-64.S 2014-04-18 13:15:27.088722500 -0400
> +++ apply-hack.x86-64.S.orig 2014-04-18 13:12:09.893443600 -0400
> @@ -28,8 +28,7 @@
> .text
>
> .globl _C_do_apply_hack
> -#if defined(__APPLE__) || defined(__CYGWIN__)
> -#else
> +#ifndef __APPLE__
> .type _C_do_apply_hack, @function
> #endif
I don't see this code; my version already has #ifndef __APPLE__.
Even 4.8.0.5 already seems to have this. What's this patch made against?
> With those in place, all goes well until the attempt to build
> cygchicken-0.dll,
> which fails with:
>
> runtime.o:runtime.c:(.text+0x24c67): undefined reference to `C_do_apply_hack'
Now I'm having some time at the Viking CHICKEN event, I looked into this
again. I still have no access to Win64, so I can't test it, but perhaps
you can test this:
It seems to me that your change to the apply-hack.x86-64.S file must
be matched with a change to runtime.c, around line 130 there's this part:
#ifdef C_HACKED_APPLY
# if defined(C_MACOSX) || defined(__MINGW32__) || defined(__CYGWIN__)
extern void C_do_apply_hack(void *proc, C_word *args, int count) C_noret;
# else
extern void _C_do_apply_hack(void *proc, C_word *args, int count) C_noret;
# define C_do_apply_hack _C_do_apply_hack
# endif
#endif
I guess you'll need to append "|| defined(__CYGWIN64__)" to that. I am
unsure why this extra level of indirection is used, though. Probably has
something to do with the way the linker's and/or C's name mangling work.
Cheers,
Peter
--
http://www.more-magic.net
- Re: [Chicken-hackers] [Chicken-announce] CHICKEN 4.9.0rc1 is available,
Peter Bex <=