1
1

* remove module flag from linking romio - it should be in the romio component

(which it is) and not romio itself
* Work around dark, evil linker voodoo that prevented building both shared
  and static libraries on OS X.  The global variables in ad_init.c were
  not initialized, and so were marked as tentative definitions, which caused
  much pain for the linker later on.  Initializing them makes them
  actual definitions and the problem goes away.  I hate linkers.

This commit was SVN r6439.
Этот коммит содержится в:
Brian Barrett 2005-07-12 18:06:15 +00:00
родитель 032fef3eac
Коммит 29b6112358
2 изменённых файлов: 14 добавлений и 14 удалений

Просмотреть файл

@ -29,4 +29,3 @@ libromio_dist_la_LIBADD = \
$(MCA_io_romio_STATIC_LTLIBS)
libromio_dist_la_DEPENDENCIES = \
$(libromio_dist_la_LIBADD)
libromio_dist_la_LDFLAGS = -module -avoid-version

Просмотреть файл

@ -7,32 +7,33 @@
*/
#include "adio.h"
#include "adio_extern.h"
ADIOI_Flatlist_node *ADIOI_Flatlist;
ADIOI_Async_node *ADIOI_Async_list_head, *ADIOI_Async_list_tail;
ADIOI_Flatlist_node *ADIOI_Flatlist = NULL;
ADIOI_Async_node *ADIOI_Async_list_head = NULL, *ADIOI_Async_list_tail = NULL;
/* list of outstanding asynchronous requests */
ADIOI_Async_node *ADIOI_Async_avail_head, *ADIOI_Async_avail_tail;
ADIOI_Async_node *ADIOI_Async_avail_head = NULL, *ADIOI_Async_avail_tail = NULL;
/* list of available (already malloced) nodes for above async list */
ADIOI_Malloc_async *ADIOI_Malloc_async_head, *ADIOI_Malloc_async_tail;
ADIOI_Malloc_async *ADIOI_Malloc_async_head = NULL, *ADIOI_Malloc_async_tail = NULL;
/* list of malloced areas for async_list, which must be freed in ADIO_End */
ADIOI_Req_node *ADIOI_Req_avail_head, *ADIOI_Req_avail_tail;
ADIOI_Req_node *ADIOI_Req_avail_head = NULL, *ADIOI_Req_avail_tail = NULL;
/* list of available (already malloced) request objects */
ADIOI_Malloc_req *ADIOI_Malloc_req_head, *ADIOI_Malloc_req_tail;
ADIOI_Malloc_req *ADIOI_Malloc_req_head = NULL, *ADIOI_Malloc_req_tail = NULL;
/* list of malloced areas for requests, which must be freed in ADIO_End */
/* for f2c and c2f conversion */
ADIO_File *ADIOI_Ftable;
int ADIOI_Ftable_ptr, ADIOI_Ftable_max;
ADIO_Request *ADIOI_Reqtable;
int ADIOI_Reqtable_ptr, ADIOI_Reqtable_max;
ADIO_File *ADIOI_Ftable = NULL;
int ADIOI_Ftable_ptr = 0, ADIOI_Ftable_max = 0;
ADIO_Request *ADIOI_Reqtable = NULL;
int ADIOI_Reqtable_ptr = 0, ADIOI_Reqtable_max = 0;
#ifndef HAVE_MPI_INFO
MPI_Info *MPIR_Infotable;
int MPIR_Infotable_ptr, MPIR_Infotable_max;
MPI_Info *MPIR_Infotable = NULL;
int MPIR_Infotable_ptr = 0, MPIR_Infotable_max = 0;
#endif
#ifdef XFS
int ADIOI_Direct_read, ADIOI_Direct_write;
int ADIOI_Direct_read = 0, ADIOI_Direct_write = 0;
#endif
int ADIO_Init_keyval=MPI_KEYVAL_INVALID;