[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: MinGW build fixes
From: |
Ludovic Courtès |
Subject: |
Re: MinGW build fixes |
Date: |
Sat, 27 Jun 2009 02:03:08 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.90 (gnu/linux) |
Hello!
Neil Jerram <address@hidden> writes:
> - MinGW can't export/import struct variables from/to a DLL, so wrap
> the ones needed by inline.h in exported/imported pointer variables.
[...]
> * libguile/gc.h (scm_i_freelist_ptr, scm_i_freelist2_ptr,
> scm_i_master_freelist_ptr, scm_i_master_freelist2_ptr): New global
> variable declarations.
>
> * libguile/inline.h (scm_cell): Use scm_i_freelist_ptr and
> scm_i_master_freelist_ptr instead of scm_i_freelist and
> scm_i_master_freelist.
> (scm_double_cell): Use scm_i_freelist2_ptr and
> scm_i_master_freelist2_ptr instead of scm_i_freelist2 and
> scm_i_master_freelist2.
>
> * libguile/threads.c (scm_i_freelist_ptr, scm_i_freelist2_ptr): New
> global variables.
[...]
> SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist;
> +SCM_API struct scm_t_cell_type_statistics *scm_i_master_freelist_ptr;
> SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist2;
> +SCM_API struct scm_t_cell_type_statistics *scm_i_master_freelist2_ptr;
I don't understand why this fixes anything, since the `_ptr' variables
are declared as `SCM_API' just like the non-`_ptr' variables.
Also, it adds an indirection, which may impact performance.
Other than that, I think this is good news!
Thanks,
Ludo'.