Skip to content

Commit 881dcf0

Browse files
committed
dynamically-loading collfs working on BG/P
1 parent e3d3668 commit 881dcf0

File tree

6 files changed

+2317
-8
lines changed

6 files changed

+2317
-8
lines changed

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ MPICC = mpicc
77
CFLAGS = -std=c99 -fPIC -Wall -Wextra ${CFLAGS_DEBUG} -D_LARGEFILE64_SOURCE
88
CFLAGS_DEBUG = -g3 -DDEBUG=1
99
#LDFLAGS = -Wl,-Bdynamic -Wl,-rpath,/home/aron/sys/lib -L/home/aron/sys/lib ${LIBDL}
10-
LDFLAGS = -dynamic -Wl,-Bdynamic -Wl,-rpath,/home/aron/bgpsys/lib -L/home/aron/bgsys/lib ${LIBDL}
10+
LDFLAGS = -dynamic -Wl,-Bdynamic -Wl,-rpath,/home/aron/bgpsys/lib -L/home/aron/bgpsys/lib ${LIBDL}
1111
LIBDL = -ldl
1212
COLLFS_SRC_C = collfs.c
1313
COLLFS_SRC_O = $(COLLFS_SRC_C:.c=.o)
@@ -23,7 +23,8 @@ libthefunc.so : thefunc.o
2323
thefunc.o : thefunc.c
2424
${CC} ${CFLAGS} -c -fPIC $^
2525

26-
main : main.o libfoo.so libcollfs.so libc-collfs.so
26+
main : main.o libfoo.so libcollfs.so
27+
#main : main.o libfoo.so libcollfs.so libc-collfs.so
2728
${MPICC} -g3 -o $@ $^ ${LDFLAGS}
2829
.c.o :
2930
${CC} ${CFLAGS} -fPIC -c $^

glibc-2.4-bgp-patches/elf/Versions

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ libc {
2424
_dl_open_hook;
2525
__libc_dlopen_mode; __libc_dlsym; __libc_dlclose;
2626
libc_collfs_finalize; libc_collfs_initialize;
27+
__collfs_mmap; __collfs_lseek; __collfs_xstat64; __collfs_read;
28+
__collfs_open; __collfs_munmap; __collfs_close; __collfs_fxstat64;
2729
}
2830
}
2931

glibc-2.4-bgp-patches/elf/dl-close.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@
3333
#ifndef IS_IN_rtld
3434
int __collfs_munmap(__ptr_t addr, size_t len);
3535
#undef DL_UNMAP
36-
#define DL_UNMAP(map) __collfs_unmap (map)
36+
# define DL_UNMAP(map) \
37+
__collfs_munmap ((void *) (map)->l_map_start, \
38+
(map)->l_map_end - (map)->l_map_start)
3739
#endif
3840

3941
/* Type of the constructor functions. */

glibc-2.4-bgp-patches/elf/dl-libc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
#include <dlfcn.h>
2222
#include <stdlib.h>
2323
#include <ldsodefs.h>
24-
2524
#include "libc-collfs.h"
2625
#include "libc-collfs-private.h"
2726
#include <stdarg.h>
@@ -311,6 +310,7 @@ int libc_collfs_initialize(collfs_debug_vprintf_fp vprintf_, const struct libc_c
311310
return 0;
312311
}
313312

313+
314314
/* Disable collfs redirect. */
315315
int libc_collfs_finalize(void)
316316
{

main.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ int main(int argc, char *argv[])
4848
MPI_Init(&argc,&argv);
4949
}
5050
if (!getcwd(path,sizeof path)) ERR("getcwd failed");
51-
/* strcat(path,"/libthefunc.so"); */
52-
/* err = run_tests(path, path);CHK(err); */
53-
/* err = foo(path);CHK(err); */
54-
/* err = foo2("alphabet.txt");CHK(err); */
51+
strcat(path,"/libthefunc.so");
52+
err = run_tests(path, path);CHK(err);
53+
err = foo(path);CHK(err);
54+
err = foo2("alphabet.txt");CHK(err);
5555
if (MPI_Finalize) MPI_Finalize();
5656
return 0;
5757
}

0 commit comments

Comments
 (0)